En cryptographie, RC5 est un simple code à blocs à clés symétriques. Conçu par Ronald Rivest en 1994, RC5 est un algorithme paramétré avec une taille de bloc variable, une taille de clé variable et un nombre de tours variable. "RC" signifie "Rivest Cipher", ou alternativement, "Ron's Code".

Afin de fournir des niveaux de sécurité et d'efficacité variés, le RC5 a une taille de bloc variable (32, 64 ou 128 bits), une taille de clé variable (0 à 2040 bits) et un nombre de tours variable (0 à 255). Le choix initial des paramètres proposés était une taille de bloc de 64 bits, une clé de 128 bits et 12 tours.

L'une des principales caractéristiques de la RC5 est l'utilisation de rotations dépendantes des données ; l'un des objectifs de la RC5 était d'étudier et d'évaluer les opérations de chiffrement par blocs en tant que primitive cryptographique. La RC5 consiste également en un certain nombre d'ajouts modulaires et de OU (Xor) exclusifs. La structure générale de l'algorithme est un réseau de type Feistel. Les routines de cryptage et de décryptage peuvent être spécifiées en quelques lignes de code. Le schéma de la clé, cependant, est plus complexe, la clé étant étendue à l'aide d'une fonction essentiellement unidirectionnelle, les expansions binaires de e et du nombre d'or étant les sources de "rien dans ma manche". La simplicité de l'algorithme et la nouveauté des rotations dépendantes des données ont fait de RC5 un sujet d'étude intéressant pour les cryptanalystes.