En cryptographie, RC2 est un chiffrement par blocs à clés symétriques. Il a été conçu par Ronald Rivest en 1987. "RC" signifie "Rivest Cipher", ou alternativement, "Ron's Code".

RC2 est un code à blocs de 64 bits avec une taille de clé variable et utilisant 18 tours.

Les rondes sont disposées comme un réseau de feistel à la source, avec 16 rondes d'un type appelé "rondes de mélange" intercalées par deux rondes d'un autre type appelé "rondes d'écrasement".

Les 18 tours sont effectués en utilisant la séquence entrelacée suivante :

RC2 utilise un algorithme d'expansion de clé par lequel une clé étendue composée de 64 (mots de 16 bits) est produite en fonction de chaque bit de la clé d'entrée "à longueur variable" fournie, de manière compliquée. Un tour de mixage consiste en quatre applications de la transformation "mix-up", comme le montre le schéma. Un tour est "écrasé" en y ajoutant un des mots de 16 bits de la clé étendue (RFC 2268).

RC2 est susceptible d'être attaqué par des clés apparentées en utilisant 234 attaques à texte choisi (Kelsey et al., 1997).

Le développement de RC2 a été parrainé par Lotus, qui cherchait à exporter un code personnalisé dans le cadre de son logiciel Lotus Notes, après évaluation par la NSA. La NSA a suggéré quelques modifications, que Ronald Rivest a incorporées. Après d'autres négociations, l'exportation du code a été approuvée en 1989.

Avec le RC4, le RC2 avec une taille de clé de 40 bits a été traité dans le cadre de la réglementation américaine sur les exportations de cryptographie. Aujourd'hui, tous les algorithmes de cryptage 40 bits sont obsolètes car ils sont dangereusement susceptibles de faire l'objet d'attaques par force brute.

Au départ, les détails de l'algorithme ont été gardés secrets - propriété de RSA Security - mais le 29 janvier 1996, le code source de RC2 a été posté anonymement sur Internet sur le forum Usenet, sci.crypt. Un message similaire avait déjà été publié pour RC4. Il n'est pas clair si l'auteur du poster avait accès aux spécifications ou s'il avait fait de l'ingénierie inverse.