Anda di halaman 1dari 15

Rivest Shamir Adleman Algorithm

Dr. Mardi Hardjianto, M.Kom.


Rivest Shamir Adleman Algorithm
 RSA Algorithm merupakan algoritme kriptografi
kunci-public yang paling terkenal.
 Algoritme RSA dibuat oleh 3 orang peneliti dari MIT
pada tahun 1976, yaitu: Ron (R)ivest, Adi (S)hamir
dan Leonard (A)dleman.
 Keamanan algoritme RSA terletak pada sulitnya
memfaktorkan bilangan yang besar menjadi faktor-
faktor prima.
 Pemfaktoran dilakukan untuk memperoleh kunci
privat.
 Selama pemfaktoran bilangan besar menjadi faktor-
faktor prima belum ditemukan algoritma yang
mangkus, maka selama itu pula keamanan algoritma
RSA tetap terjamin
Besaran yang Digunakan Pada RSA

 p dan q bilangan prima (rahasia)


 n=p.q (tidak rahasia)
 ɸ(n) = (p-1)(q-1) (rahasia)
 e (kunci enkripsi/kunci publik) (tidak rahasia)
 d (kunci dekripsi/kunci rahasia) (rahasia)
 m (plaintext) (rahasia)
 c (ciphertext) (tidak rahasia)

Euler
Private Key dan Public Key
 Membuat private key dan public key

1. Tentukan dua buah bilangan prima p dan q (p ≠ q)


(disarankan p dan q bernilai besar)
2. Hitung n = p * q
3. Hitung ɸ(n) = (p - 1) * (q - 1)
4. Pilih kunci publik e, yang relatif prima terhadap ɸ(n) (2 s/d ɸ-1)
5. Bangkitkan kunci privat d, menggunakan (d * e) mod ɸ(n) = 1

 (d * e) mod ɸ(n) = 1 ekuivalen d * e = 1 + k ɸ(n)


akan terdapat bilangan bulat k yang memberikan bilangan bulat d

Public key: (e, n)


Private key: (d, n)
PBB = Pembagi Bersama terBesar
PBB(20,5) = 5
20=1, 2, 4, 5, 10, 20
5 =1, 5

PBB(36, 20) = 4
36=1,2,3,4,6,9,12,18,36
20=1,2,4,5,10,20

Apakah 17 relative prima dengan 20 ?


17=1, 17
20=1, 2,4,5,10,20
PBB(17, 20)=1
PBB(17, 17)=17

PBB(19, 27) = 1
19 = 1, 19
27 = 1, 3, 9, 27
Private Key dan Public Key
Contoh:

p = 47 dan q = 71 (keduanya prima)

n = p . q = 47 x 71 = 3337

ɸ(n) = (p - 1) * (q - 1) = 46 x 70 = 3220

e dipilih angka 79, karena 79 relatif prima dengan 3220


e  2 s/d 3219
 

Dengan mencoba nilai-nilai k = 1, 2, 3, … diperoleh nilai d


yang bulat adalah 1019

Public Key = (79, 3337)


Private Key = (1019, 3337)
Private Key dan Public Key
 

K=1  (1 + 1 x 3220) / 79 = 40,77


K=2  (1 + 2 x 3220) / 79 = 81,53
K=3  (1 + 3 x 3220) / 79 = 122, 29
K=4  (1 + 4 x 3220) / 79 = 163,05
.
.
K=25  (1 + 25x3220) / 79 = 1.019 (bil. Bulat)

d = 1019
Enkripsi dan Dekripsi RSA
Enkripsi
1. Ambil kunci kunci publik penerima pesan: e dan n
2. Nyatakan plainteks m menjadi blok-blok m1, m2, …
sedemikan sehingga setiap blok merepresentasikan
nilai di dalam selang [0, n - 1]
3. Setiap blok mi, dienkripsi menjadi blok ci, dengan
rumus
ci = mie mod n

Dekripsi
4. Setiap blok ciphertext ci didekripsi kembali menjadi
blok mi dengan rumus
mi = cid mod n
M = “PAGI” 80^79 mod 3337
M1= “P” = 80 (kode ASCII)
M2= “A” = 65 80 X 80 mod 3337 = n
M3= “G” = 71 n X 80 mod 3337 = n
M4= “I” = 73 n X 80 mod 3337 = n
Dst…
Sampai jumlah angka 80nya ada
Public Key = (79, 3337)
sebanyak 79

C1 = M1 ^ E Mod N
80^79 MOD 3337 0 mod 4 = 0
2670 1 mod 4 = 1
C2 = M2 ^ E Mod N 2 mod 4 = 2  2/4=0 sisa 2
3 mod 4 = 3  3/4=0 sisa 3
= 65^79 Mod 3337
4 mod 4 = 0  4/4=0 sisa 0
= 541 5 mod 4 = 1  5/4=1 sisa 1
C3 = M3 ^ E Mod N 6 mod 4 = 2  6/4=1 sisa 2
71^79 Mod 3337 7 mod 4 = 3  7/4=1 sisa 3
1988 8 mod 4 = 0
C4 = M4 ^ E Mod N
73^79 Mod 3337
725
Ciphertext: 2670 541 1988 725
Ciphertext: 2670 541 1988 725
Private Key = (1019, 3337)

M1 = C1 ^ D Mod N
2670^1019 Mod 3337
= 80
M2 = C2 ^ D Mod N
541^1019 Mod 3337
= 65
M3 = C3 ^ D Mod N
1988^1019 Mod 3337
= 71
M4 = C4 ^ D Mod N
725^1019 Mod 3337
= 73

Plaintext = 80 65 71 73 (PAGI)
Enkripsi dan Dekripsi RSA
Contoh

m = HARI INI

Dalam sistem decimal (pengkodean ASCII) adalah

4841524920494E49 (48=H; 41=A; 52=R; dst)  Hexa

Pesan m dipecah menjadi blok yang lebih kecil, misalnya setiap


blok berukuran tiga digit:
m1 = 484 m4 = 049
m2 = 152 m5 = 4E4  Hexadesimal semua
m3 = 492 m6 = 009

Nilai-nilai mi masih terletak dalam selang [0, 3337 - 1]


Enkripsi dan Dekripsi RSA
Enkripsi dilakukan setiap blok plaintext sebagai berikut:

e = 79 dan n = 3337

c1 = 48479 mod 3337 = 897 c4 = 04979 mod 3337 = 725


c2 = 15279 mod 3337 = 806 c5 = 4E479 mod 3337 = 818
c3 = 49279 mod 3337 = 1187 c6 = 00979 mod 3337 = 1605
(yang dicetak tebal adalah bilangan hexadesimal)
Jadi, ciphertext yang dihasilkan adalah

c = 897 806 1187 725 818 1605


Enkripsi dan Dekripsi RSA
Dekripsi dilakukan menggunakan private key

d = 1019 dan n = 3337 c = 897 806 1187 725 818 1605

Blok-blok ciphertext didekripsikan sebagai berikut:

m1 = 8971019 mod 3337 = 484 m4 = 7251019 mod 3337 =


049
m2 = 8061019 mod 3337 = 152 m5 = 8181019 mod 3337 =
4E4
m3 = 11871019 mod 3337 = 492 m6 = 16051019 mod 3337 =
009

Jadi, diperoleh hasil dekripsinya adalah

m =4841524920494E49
(perlu disimpan informasi mengenai panjang plaintext agar dekripsi
blok terakhir tidak mengalami kesalahan)
P=11 Q=17
N=PxQ = 11x17 = 187
S(euler) = 10x16 = 160
E = 29
D=149 (149x29) mod 160=1

Public Key = (29, 187)


Private Key=(149, 187)

M = “AB” A=65; B=66


M1=65
M2=66

Enkripsi
C1=65^29 mod 187 = 175
C2=66^29 mod 187 = 121
Ciphertext = 175 121

Dekripsi
M1=175^149 mod 187 = 65
M2=121^149 mod 187 = 66
Plaintext = 65 66 (AB)
P=7 Q=5
N=PxQ = 7x5 = 35
S(euler) = 6x4 = 24
E = 19
D=43 (43x19) mod 24=1

Public Key = (19, 35)


Private Key=(43, 35)

M = “AB” A=65; B=66


M1=65
M2=66

Enkripsi
C1=65^19 mod 35 = 30
C2=66^19 mod 35 = 31
Ciphertext = 30 31

Dekripsi
M1=30^43 mod 35 = 30
M2=31^43 mod 35 = 31
Plaintext = 30 31  salah!!! Tidak balik lagi pesannya

Anda mungkin juga menyukai