Door Mark Timmer

Cryptografie-uitleg aan de hand van RSA

17-12-2000 • 21:34

53

Singlepage-opmaak

RSA

Om een goed beeld te krijgen van hoe een algoritme nu precies werkt, ging ik op zoek naar een gedetailleerde beschrijving van eentje. Ik koos hierbij voor een asymmetrische, aangezien deze het ingewikkeldste en daardoor ook het interessantste zijn.

De keuze is gevallen op de RSA-beveiliging. Hiervan vond ik de volgende informatie:

RSA is a public-key cryptosystem for both encryption and authentication; it was invented in 1977 by Ron Rivest, Adi Shamir, and Leonard Adleman. It works as follows: take two large primes, p and q, and find their product n=pq; n is called the modulus. Choose a number, e, less than n and relatively prime to (p-1)(q-1), which means that e and (p-1)(q-1) have no common factors except 1. Find another number d such that (ed - 1) is divisible by (p-1)(q-1). The values e and d are called the public and private exponents, respectively. The public key is the pair (n,e); the private key is (n,d). The factors p and q maybe kept with the private key, or destroyed.

RSA privacy encryption: Suppose Alice wants to send a message m to Bob. Alice creates the ciphertext c by exponentiating: c=me mod n,
where e and n are Bob’s public key. She sends c to Bob. To decrypt, Bob also exponentiates: m=cd mod n; the relationship between e
and d ensures that Bob correctly recovers m. Since only Bob knows d, only Bob can decrypt.

Aangezien dit behoorlijk ingewikkeld lijkt heb ik zelf een iets duidelijkere beschrijving gemaakt. Overigens werkt het in het echt zelfs nog iets ingewikkelder, maar dit is te lastig om duidelijk uit te leggen. Hierom zal ik mij beperken tot de voor velen waarschijnlijk toch al behoorlijk lastige basis.

Om te beginnen is het belangrijk te snappen hoe de basisprincipes in elkaar zitten. De ontvanger van de boodschap heeft een tweetal sleutels (in dit geval e en n) die public zijn, wat wil zeggen dat iedereen deze codes mag weten. Deze keys worden door de zender gebruikt om het bericht te coderen. Verder heeft de ontvanger ook nog een private key (in dit geval d), waarmee de via de public keys versleutelde boodschap weer te ontcijferen is.