Vous êtes sur la page 1sur 12

Algoritma RSA(Rivest,Shamir &Adelman)

Key Generation:

Cari bilangan prima p dan q


Hitung n = p x q
Hitung (n) = (p 1) x (q 1)
Pilih d secara random dalam range[max(p,q)+1, (n) 1];
sedemikian hingga d relatif prima terhadap (n)
Hitung e d-1 mod ((n)) dengan langkah-langkah sbb:
1.
2.
3.
4.
5.
6.
7.
8.

Bentuk Array A[3x2] dimana A[1,1] = (n) dan A[1,2] = d


Isikan A[2,1] .. A[3,2] dengan matriks Identitas
Hitung bilangan bulat m dengan kondisi m * A[1,2] A[1,1]; usahakan m maksimum
Hitung X = A[1,1] - m * A[1,2]
Ubah nilai A[1,1] = A{1,2] dan A[1,2] = X
Lakukan langkah 4 dan 5 untuk baris kedua dan ketiga dari array A
Ulang langkah 3 sampai 5 hingga elemen terakhir dari baris 1 = 0
Jika A[3,1] 0 maka e = A[3,1] sebaliknya e = A[3,1] + (n)

Publikasikan n dan e sebagai kunci publik; Simpan nilai p, q


dan d tetap rahasia
1/20/15

Encryption:
Ubah Pesan m ke biner
Bagi bit-bit biner menjadi blok dengan
ukuran b, dimana b dapat dihitung dgn 2 b n
Konversikan tiap blok (blok-1 .. blok-z)
menjadi bilangan desimal (M1 .. Mz)
Untuk I=1 to z; lakukan Ci = Mie mod n
C1 .. Cz adalah ciphertext
1/20/15

Decryption:
Untuk setiap Ci; hitung Mi = Cid mod n
Konversikan masing-masing Mi ke
bilangan biner yang akan menghasilkan
block of b
Gabungkan semua bit dan bagi kembali
menjadi block of 8, maka diperoleh
pesan m semula
1/20/15

Contoh
Key Generation:
Mis : p = 31; q = 47 n = 31.47 = 1457
(n) = 30.46 =1380
Pilih d secara random dalam range (48,1379);
misalkan : d = 107
e d-1 mod ((n)):dari tabel berikut diperoleh e = 503

12

A[1,*] 1380 107 96 11 8 3 2 1


A[2,*] 1 0 1 -1 9 -10 29 -39
A[3,*] 0 1 -12 13 -116 129 -374 503

1/20/15

Encryption:
Misalkan Pesan : CRYPTOLOGY
Konversikan masing-masing karakter ke biner:
C = 67 = 01000011R = 82 = 01010010
Y = 89 = 01011001 P = 80 = 01010000
T = 84 = 01010100O = 79 = 01001111
L = 76 = 01001100 O = 79 = 01001111
G = 71 = 01000111Y = 89 = 01011001
Pilih b sedemikian hingga 2b 1457 b =10
1/20/15

Bagi barisan biner atas block 0f 10:


M1= 0100001101 = 269; M2= 0100100101 = 293
M3= 1001010100 = 596; M4= 0001010100 = 84
M5= 0100111101 = 317; M6= 0011000100 = 196
M7= 1111010001 = 977; M8= 1101011001 = 857
Hitung C1 .. C8 dengan rumus :Ci = Mie mod n
C1= 269503
C3= 596503
C5= 317503
C7= 977503
1/20/15

mod 1457 = 1226


mod 1457 = 0444
mod 1457 = 1064
mod 1457 = 0159

C2= 293503
C4= 084503
C6= 196503
C8= 857503

mod 1457 = 1103


mod 1457 = 0065
mod 1457 = 0169
mod 1457 = 1197
6

Decryption:
Rumus :Mi =Cid mod n
M1=1226107 mod 1457 = 269
M2=1103107 mod 1457 = 293
M3=0444107 mod 1457 = 596
M4=0065107 mod 1457 = 084
M5=1064107 mod 1457 = 317
M6=0169107 mod 1457 = 196
M7=0159107 mod 1457 = 977
M8=1197107 mod 1457 = 857
M1 .. M8 diubah kembali ke biner, dan diperoleh sbb:
1/20/15

M1 = 269 = 0100001101 M2 = 293 = 0100100101


M3 = 596 = 1001010100 M4 = 084 =
0001010100
M5 = 317 = 0100111101 M6 = 196 = 0011000100
M7 = 977 = 1111010001 M8 = 857 = 1101011001
M1 .. M8 dibagi atas block of 8 diperoleh
01000011 = 67 = C01010010 = 82 = R
01011001 = 89 = Y 01010000 = 80 = P
01010100 = 84 = T 01001111 = 79 = O
01001100 = 76 = L 01001111 = 79 = O
01000111
= 71 = G01011001 = 89 = Y
1/20/15
8

Algoritma : Fast Exponentiation


am mod n dapat dihitung dengan jumlah perkalian

paling banyak 2(2 log (m+1)) dengan cara sebagai


berikut :
Konversikan m ke biner : bk bk-1b1 b0
{Initialisasi} I:=k; Product := a
While I>= 0 Do Begin
If bI = 0 Then Product := Product^2
Else Product := Product* a;
Product := Product Mod n; I:=I 1
End
1/20/15

Algoritma GCD(A,B)
Begin
P :=A; Q :=B;
While Q0 Do Begin
R := P Mod Q;
P := Q;
Q := R

End
GCD(A,B) := P

End
1/20/15

10

Algoritma Euclidean untuk Invers a mod n


BEGIN
{INITIALIZE}
{SET} G0 := N; G1 := A; U0 := 1; U1 := 0;
V0 := 0; V1 := 1; I := 1;
WHILE GI <> 0 DO BEGIN
Y := Gi-1 DIV GI; GI+1 := Gi-1 Y . GI;
UI+1 := UI-1 Y .UI; VI+1 := VI-1 Y .VI;
I := I + 1
END;
{SET} X := VI+1;
IF X >= 0 THEN INVERS := X ELSE INVERS := X + N
END;
1/20/15

11

Teorema
Jika GCD(a,n) = 1 maka b a.b 1 mod n ; dimana 0<a<n
Jika n adalah perkalian dua bilangan prima p dan q, maka
(n)= (p 1) (q 1)= (p) (q)
Untuk setiap a0 Zn* GCD(a,n) = 1,
a ^ (n) 1 mod n atau
Jika a^p = a. a^(p-1) 1 mod p
Maka a^(p-1) adalah invers dari a
Mis g = GCD(a,n). Maka Jika g|b, persamaan ax b (mod n)
memiliki solusi berbentuk
x (b/g)x0 + t(n/g) (mod n); t = 0 g-1
1/20/15

12

Vous aimerez peut-être aussi