RC2: symmetrisch blokcijfer van Rivest — werking, geschiedenis en kwetsbaarheden

Lees alles over RC2: het symmetrische blokcijfer van Rivest — werking, geschiedenis, sleuteluitbreiding en bekende kwetsbaarheden inclusief relevante aanvalsvectoren.

Schrijver: Leandro Alegsa

Algemene kenmerken

In de cryptografie is RC2 een symmetrisch-key-coderingssysteem dat in 1987 werd ontworpen door Ronald Rivest. "RC" staat voor "Rivest Cipher" (of informeel "Ron's Code"). RC2 is een blokkencoderingsalgoritme met een blokgrootte van 64-bits en een variabele sleutelgrootte. De standaardimplementatie gebruikt 18 rondes.

Structuur en rondes

RC2 is opgezet als een bron-zwaar Feistel-achtig netwerk. De 18 rondes bestaan uit twee verschillende rondetypen: de zogenaamde mix-rondes en de mash-rondes. In de praktijk worden deze rondes in de volgende volgorde uitgevoerd:

  1. voer 5 mix-rondes uit.
  2. Voer 1 mash-ronde uit.
  3. voer 6 mix-rondes uit.
  4. Voer 1 mash-ronde uit.
  5. voer 5 mix-rondes uit.

Een mix-ronde combineert eenvoudige rekenkundige en bitlogische bewerkingen (zoals optelling modulo 2^16, bitwise-AND/NOT en rotaties) op de vier 16-bits woorden van de datablokken. Een mash-ronde voegt waarden uit de uitgebreide sleutel direct aan deze woorden toe om extra niet-lineariteit en sleutelafhankelijkheid te brengen. Door afwisseling van mix- en mash-rondes ontstaat de volledige 18-ronde transformatie.

Sleuteluitbreiding

RC2 gebruikt een sleuteluitbreidingsalgoritme waarmee uit de ingevoerde, variabele-lengte sleutel een uitgebreide sleutel wordt afgeleid. Die uitgebreide sleutel bestaat uit 64 woorden van 16 bit (dus 64 × 16 = 1024 bits = 128 bytes) en wordt op een gefaseerde manier geproduceerd, afhankelijk van elk bit van de invoersleutel. De sleuteluitbreiding (zoals gedetailleerd in RFC 2268) maakt gebruik van een vaste permutatietabel en een procedure om een eventueel opgegeven effectieve sleutellengte te forceren, zodat zowel korte als langere sleutels in hetzelfde formaat verwerkt kunnen worden.

Geschiedenis en export

De ontwikkeling van RC2 werd gesponsord door Lotus, dat een aanpasbare code nodig had die geëxporteerd kon worden als onderdeel van hun Lotus Notes-software. De broncode en het ontwerp werden beoordeeld door de NSA, die enkele wijzigingen voorstel heeft gedaan; deze voorstellen werden door Ronald Rivest overgenomen. Na verdere onderhandelingen werd de aangepaste versie in 1989 goedgekeurd voor export.

Samen met RC4 werd RC2 met een 40-bits sleutelgrootte behandeld onder de Amerikaanse exportregels voor cryptografie. Tegenwoordig worden alle 40-bits encryptie-algoritmen als onveilig beschouwd omdat ze relatief eenvoudig te kraken zijn met brute-force-aanvallen.

Aanvankelijk hield RSA Security de details van RC2 vertrouwelijk; de specificatie was niet publiek. Op 29 januari 1996 werd de broncode voor RC2 echter anoniem op het internet geplaatst op het Usenet-forum sci.crypt (een soortgelijke gebeurtenis vond eerder plaats met RC4). Het is onduidelijk of die publicatie gebaseerd was op gelekte specificaties of op reverse-engineering.

Kwetsbaarheden en huidige beoordeling

RC2 is inmiddels verouderd en wordt door de meeste deskundigen niet meer aanbevolen voor gebruik in nieuwe systemen. Belangrijke punten met betrekking tot de veiligheid:

  • Gerelateerde-sleutel-aanval: RC2 is vatbaar voor een gerelateerde-sleutel-aanval van Kelsey et al. (1997). Voor de volledige 18-ronde versie is een aanval beschreven die ongeveer 2^34 gekozen teksten vereist om informatie over de sleutel te verkrijgen. Een gerelateerde-sleutel-aanval maakt gebruik van omstandigheden waarin aanvallers encrypties onder meerdere verwante sleutels kunnen verkrijgen.
  • Korte sleutels zijn kwetsbaar: vanwege de historische exportbeperkingen werden vaak 40-bits sleutels gebruikt; dergelijke sleutels zijn triviaal te breken met brute force op moderne hardware.
  • Algemene veroudering: sinds de introductie van krachtiger en beter geanalyseerde standaarden (zoals AES) wordt RC2 niet langer als voldoende veilig beschouwd voor moderne toepassingen en protocollen.

Aanbeveling

Voor nieuwe ontwerpen en toepassingen wordt aangeraden moderne, goed geanalyseerde en gestandaardiseerde blokchiffers te gebruiken (bijv. AES). RC2 mag alleen nog voorkomen in legacy-systemen om compatibiliteit te waarborgen; in dat geval moeten passende mitigerende maatregelen worden genomen (zoals het vermijden van korte sleutels en het beperken van de blootstelling aan mogelijke gerelateerde-sleutel-scenario's).

Voor technische details en de exacte specificatie van de rondes en de sleuteluitbreiding kan men RFC 2268 (de officiële beschrijving van RC2) raadplegen.

De mix-up transformatie van RC2; Een mengronde bestaat uit het vier keer toepassen van de "mix-up" transformatie.Zoom
De mix-up transformatie van RC2; Een mengronde bestaat uit het vier keer toepassen van de "mix-up" transformatie.

Vragen en antwoorden

V: Wat is RC2?


A: RC2 is een symmetrisch-key blokcijfer ontworpen door Ronald Rivest in 1987. Het gebruikt een blokgrootte van 64 bits en 18 versleutelingsronden.

V: Waar staat "RC" voor?


A: "RC" staat voor "Rivest Cipher", of anders voor "Ron's Code".

V: Hoeveel rondes worden er uitgevoerd bij gebruik van RC2?


A: Bij gebruik van RC2 worden 18 rondes uitgevoerd - 16 mengrondes afgewisseld met twee maskeerrondes.

V: Hoe werkt het sleuteluitbreidingsalgoritme?


A: Het sleuteluitbreidingsalgoritme produceert een uitgebreide sleutel die bestaat uit 64 (16-bits woorden), afhankelijk van elke bit van de geleverde invoersleutel met variabele lengte.

V: Voor welk type aanval is RC2 gevoelig?


A: RC2 is gevoelig voor een related-key aanval met 234 chosen-plaintext aanvallen.

V: Wie heeft de ontwikkeling van RC2 gesponsord?



A: De ontwikkeling van RC2 werd gesponsord door Lotus, die op zoek was naar een aangepaste code om te exporteren als onderdeel van hun Lotus Notes-software.


Zoek in de encyclopedie
AlegsaOnline.com - 2020 / 2025 - License CC3