Anda di halaman 1dari 15

Plaintext : FARHAN RASYID

Kunci : 12 Byte
Ciphertext : ?
Jawab :

 Enkripsi:
1. Mengenkripsi mode 12 byte :
- S-Box yang dimiliki dengan panjang 4 byte, dengan S[0]=0,
S[1]=1, S[2]=2 dan S[3]=3 sehingga array S menjadi: 0 1 2 3 4 5 6 7 8 9 10
11 ( Langkah ke 1)

- 4 byte kunci array : K = 2 5 7 3 1 6 8 9 4 0 10 11(ini sesuai keinginan,


harus dirahasiakan). (Langkak ke 2)

- Plainteks/pesan asli yang akan dienkripsi : FARHAN RASYID


2. Membuat ekspansi key, perlu membangkitkan kunci terlebih dahulu untuk
mendapatkan keystream. Lakukan KAS (Key State Array) dan PRGA (pseudo-
random generation Automaton).

- Rumus KAS (Key State Array)


0
0
for i
j

ij
0 to 255 do
( j+S[j]+U[i]) mod 256 swap(S[i], S[j])
endfor lakukan sebanyak 4
iterasi:

1. Iterasi 1
i=0
j = (0+S[0]+K[0])mod 12
= (0+0+2) mod 12
=2
Swap (S[0],S[2])
Hasil Array S
2 1 0 3 4 5 6 7 8 9 10 11

2. Iterasi 2
i=1
j = (2+S[1]+K[1])mod 12
= (2+1+5) mod 12
= 8
Swap (S[1],S[8])
Hasil Array S
2 8 0 3 4 5 6 7 1 9 10 11

3. Iterasi 3
i=2
j = (8+S[2]+K[2]) mod 12
= (8+0+7) mod 12
= 3
Swap (S[2],S[3])
Hasil Array S
2 8 3 0 4 5 6 7 1 9 10 11

4. Iterasi 4
i=3
j = (3+S[3]+K[3])mod 12
= (3+0+3) mod 12
= 6
Swap (S[3],S[6])
Hasil Array S
2 8 3 6 4 5 0 7 1 9 10 11

5. Iterasi 5
i=4
j = (6+S[4]+K[4])mod 12
= (6+4+1) mod 12
= 11
Swap (S[4],S[11])
Hasil Array S
2 8 3 6 11 5 0 7 1 9 10 4
6. Iterasi 6
i=5
j = (11+S[5]+K[5])mod 12
= (11+5+6) mod 12
= 10
Swap (S[5],S[10])
Hasil Array S
2 8 3 6 11 10 0 7 1 9 5 4

7. Iterasi 7
i=6
j = (10+S[6]+K[6])mod 12
= (10+0+8) mod 12
= 6
Swap (S[6],S[6])
Hasil Array S
2 8 3 6 11 10 0 7 1 9 5 4

8. Iterasi 8
i=7
j = (6+S[7]+K[7])mod 12
= (6+7+9) mod 12
= 10
Swap (S[7],S[10])
Hasil Array S
2 8 3 6 11 10 0 5 1 9 7 4

9. Iterasi 9
i=8
j = (10+S[8]+K[8])mod 12
= (10+1+4) mod 12
= 3
Swap (S[8],S[3])
Hasil Array S
2 8 3 1 11 10 0 5 6 9 7 4
10. Iterasi 10
i=9
j = (3+S[9]+K[9])mod 12
= (3+9+11) mod 12
= 11
Swap (S[9],S[11])
Hasil Array S
2 8 3 1 11 10 0 5 6 4 7 9

11. Iterasi 11
i = 10
j = (0+S[10]+K[10])mod 12
= (0+7+10) mod 12
= 5
Swap (S[10],S[5])
Hasil Array S
9 8 3 1 11 7 0 5 6 2 10 4

12. Iterasi 12
i = 11
j = (5+S[11]+K[11]) mod 12
= (5+4+11) mod 12
= 8
Swap (S[11],S[8])
Hasil Array S
9 8 3 1 11 7 0 5 4 2 10 6

Rumus PRGA (pseudo-random generation Automaton)


i 0
j 0
for idx 0 to PanjangPlaintext-1 do
i (i+1) mod 256
j (j+S[i]) mod 256
Swap(S[i], S[j])
t (S[i]+S[j]) mod 256
K S[t] (*keystream*)
c KP[idx]
endfor
lakukan sebanyak 4 iterasi:

13. Iterasi 1
i=0
j=0
i = (i+1) mod 12
i = (0+1) mod 12
= 1
j = (0+S[i]) mod 12
j = (0+S[1]) mod 12
j = (0+8) mod 12
= 8
Swap(S[i],S[j])
Swap(S[1],S[8])
Array Awal : 9 8 3 1 11 7 0 5 4 2 10 6
Hasil setelah Swap : 9 4 3 1 11 7 0 5 8 2 10 6
t ( S[1]+S[8]) mod 12
(4+8) mod 12
= 0
K S[t] = 00000000

14. Iterasi 2
i=1
j=8
i = (i+1) mod 12
i = (1+1) mod 12
= 2
j = (8+S[i]) mod 12
j = (8+S[2]) mod 12
j = (8+3) mod 12
= 11
Swap(S[i],S[j])
Swap(S[2],S[11])
Array Awal : 9 4 3 1 11 7 0 5 8 2 10 6
Hasil setelah Swap : 9 4 6 1 11 7 0 5 8 2 10 3
t ( S[2]+S[11]) mod 12
(6+3) mod 12
= 1
K S[t] = 00001001

15. Iterasi 3
i=2
j = 11
i = (i+1) mod 12
i = (2+1) mod 12
= 3
j = (11+S[i]) mod 12
j = (11+S[3]) mod 12
j = (11+9) mod 12
= 8
Swap(S[i],S[j])
Swap(S[3],S[8])
Array Awal : 7 6 10 9 11 4 0 5 8 1 2 3
Hasil setelah Swap : 7 6 10 8 11 4 0 5 9 1 2 3
t ( S[3]+S[8]) mod 12
(8+9) mod 12
= 5
K S[t] = 00000101

16. Iterasi 4
i=3
j=8
i = (i+1) mod 12
i = (3+1) mod 12
= 4
j = (8+S[i]) mod 12
j = (8+S[4]) mod 12
j = (8+11) mod 12
= 7
Swap(S[i],S[j])
Swap(S[4],S[7])
Array Awal : 7 6 10 8 11 4 0 5 9 1 2 3
Hasil setelah Swap : 7 6 10 8 5 4 0 11 9 1 2 3
t ( S[4]+S[7]) mod 12
(5+11) mod 12
= 4
K S[t] = 00000100

17. Iterasi 5
i=4
j=7
i = (i+1) mod 12
i = (4+1) mod 12
= 5
j = (7+S[i]) mod 12
j = (7+S[5]) mod 12
j = (7+4) mod 12
= 11
Swap(S[i],S[j])
Swap(S[5],S[11])
Array Awal : 7 6 10 8 5 4 0 11 9 1 2 3
Hasil setelah Swap : 7 6 10 8 5 3 0 11 9 1 2 4
t ( S[5]+S[11]) mod 12
(3+4) mod 12
=7
K S[t] = 00000111

18. Iterasi 6
i=5
j = 11
i = (i+1) mod 12
i = (5+1) mod 12
= 6
j = (11+S[i]) mod 12
j = (11+S[6]) mod 12
j = (11+0) mod 12
= 11
Swap(S[i],S[j])
Swap(S[6],S[11])
Array Awal : 7 6 10 8 5 3 0 11 9 1 2 4
Hasil setelah Swap : 7 6 10 8 5 3 4 11 9 1 2 0
t ( S[6]+S[11]) mod 12
(4+0) mod 12
=4
K S[t] = 00000100
19. Iterasi 7
i=6
j = 11
i = (i+1) mod 12
i = (6+1) mod 12
= 7
j = (11+S[i]) mod 12
j = (11+S[7]) mod 12
j = (11+11) mod 12
= 10
Swap(S[i],S[j])
Swap(S[7],S[10])
Array Awal : 7 6 10 8 5 3 4 11 9 1 2 0
Hasil setelah Swap : 7 6 10 8 5 3 4 2 9 1 11 0
t ( S[7]+S[10]) mod 12
(2+11) mod 12
=1
K S[t] = 00000001
20. Iterasi 8
i=7
j = 10
i = (i+1) mod 12
i = (7+1) mod 12
= 8
j = (10+S[i]) mod 12
j = (10+S[8]) mod 12
j = (10+9) mod 12
= 7
Swap(S[i],S[j])
Swap(S[8],S[7])
Array Awal : 7 6 10 8 5 3 4 2 9 1 11 0
Hasil setelah Swap : 7 6 10 8 5 3 4 9 2 1 11 0
t ( S[8]+S[7]) mod 12
(2+9) mod 12
= 11
K S[t] = 00001011
21. Iterasi 9
i=8
j=7
i = (i+1) mod 12
i = (8+1) mod 12
= 9
j = (7+S[i]) mod 12
j = (7+S[9]) mod 12
j = (7+1) mod 12
= 8
Swap(S[i],S[j])
Swap(S[9],S[8])
Array Awal : 7 6 10 8 5 3 4 9 2 1 11 0
Hasil setelah Swap : 7 6 10 8 5 3 4 9 1 2 11 0
t ( S[9]+S[8]) mod 12
(2+1) mod 12
=3
K S[t] = 00000011
22. Iterasi 10
i=9
j=8
i = (i+1) mod 12
i = (9+1) mod 12
= 10
j = (8+S[i]) mod 12
j = (8+S[10]) mod 12
j = (8+11) mod 12
= 7
Swap(S[i],S[j])
Swap(S[10],S[7])
Array Awal : 7 6 10 8 5 3 4 9 1 2 11 0
Hasil setelah Swap : 7 6 10 8 5 3 4 11 1 2 9 0
t ( S[10]+S[7]) mod 12
(9+11) mod 12
=8
K S[t] = 00001000
23. Iterasi 11
i = 10
j=7
i = (i+1) mod 12
i = (10+1) mod 12
= 11
j = (7+S[i]) mod 12
j = (7+S[11]) mod 12
j = (7+0) mod 12
= 7
Swap(S[i],S[j])
Swap(S[11],S[7])
Array Awal : 7 6 10 8 5 3 4 11 1 2 9 0
Hasil setelah Swap : 7 6 10 8 5 3 4 0 1 2 9 11
t ( S[11]+S[7]) mod 12
(11+0) mod 12
= 11
K S[t] = 00001011
24. Iterasi 12
i = 11
j=7
i = (i+1) mod 12
i = (11+1) mod 12
= 0
j = (7+S[i]) mod 12
j = (7+S[0]) mod 12
j = (7+7) mod 12
= 2
Swap(S[i],S[j])
Swap(S[0],S[2])
Array Awal : 7 6 10 8 5 3 4 0 1 2 9 11
Hasil setelah Swap : 10 6 7 8 5 3 4 0 1 2 9 11
t ( S[0]+S[2]) mod 12
(10+7) mod 12
=5
K S[t] = 00000101

3. Enkripsi pesan dengan proses pengXORan dari plainteks dengan key yang telah
didapat:
Plaintext : FARHAN RASYID
F = 01000110

A = 01000001

R = 01010010
H = 01001000
A = 01000001
N = 01001110
R = 01010010
A = 01000001
S = 01010011
Y = 01011001
I = 01001001
D = 01000100
Kunci : 4 Byte
1. 01000110+00000010 = 01001000
2. 01000001+00000001 = 01000010
3. 01010010+00000101= 01010111
4. 01001000+00000100 = 01001100
Ciphertext : 01001010 01000010 01001110 01001100
: (J B N L )

 Dekripsi:
1. Proses XOR pseudo random byte dengan cipherteks pada dekripsi
yaitu:
Ciphertext : H
JBNL
J = 01001010
B = 01000010
N = 01001110
L = 01001100
Kunci : 4 Byte
1. 01001010+00000010 = 01001000
2. 01000010+00000011 = 01000001
3. 01001110+00000010 = 01001100
4. 01001100+00000011 = 01001111
5.
Plaintext : 01001000 01000001 01001100 01001111
: (H A L O )

• Rivest Shamir Adleman (RSA)

RSA di bidang kriptografi adalah sebuah algoritme pada enkripsi public key. RSA merupakan
algoritme pertama yang cocok untuk digital signature seperti halnya enkripsi, dan salah satu yang
paling maju dalam bidang kriptografi public key. RSA masih digunakan secara luas dalam protokol
electronic commerce, dan dipercaya dalam mengamankan dengan menggunakan kunci yang cukup
panjang. Perhitungan manual enkripsi dan dekripsi menggunakan algoritma RSA. Dimana
sebelumnya harus ditentukan dulu Public Key Dan Private Key-nya, berikut langkah-langkah untuk
mendapatkan Public Key dan Private Key :

• Pertama, menentukan 2 buah bilangan prima untuk p dan q :

p = 11 q = 13

• Selanjutnya mendapatkan nilai n dimana rumusnya n = p * q dan akan

menjadi seperti ini :

n = 11 * 13 n = 143

• Mendapatkan nilai m dimana rumusnya m = (p - 1) * (q - 1) dan akan

menjadi seperti ini : m = (11 - 1) * (13 - 1) m = (10) * (12) m = 120

• Menentukan nilai e dengan syarat e = e > 1 and GCD(m,e) = 1 Dimana

"17" adalah nilai yang memenuhi syarat untuk nilai e adalah e =

GCD(120,17) = 1

• Menentukan nilai d dengan syarat d = (d * e) mod m = 1 Dimana "473" adalah nilai


yang memenuhi syarat untuk nilai d adalah d = (473 * 17) mod 120 = 1

• Dari proses diatas, maka akan mendapatkan kunci public dan kunci privat dimana :

public key = (e,n) private key = (d,n)

Dan kunci akan menjadi seperti ini :

public key = (17,143) private key = (473,143)

Setelah mendapatkan public key dan private key, proses selanjutnya melakukan Enkripsi dan
Dekripsi, yaitu kata “Malam". Berikut prosesnya :

Masukkan tabel ASCII untuk melihat Decimal-nya:


Cara ini diambil dari materi kedua, sama dengan rumusnya:

Enkripsi “Malam”

Text ASCII Proses Enkripsi

M 77 = 717 mod 143 = 232630513987207 mod 143 = 50

= 717 mod 143 = 232630513987207 mod 143 = 50 =


50.50

a 97 = 917 mod 143 = 16677181699666569 mod 143 = 81

= 717 mod 143 = 232630513987207 mod 143 = 50 =


81.50

l 108 = 117 mod 143 = 1 mod 143 = 1

= 017 mod 143 = 0 mod 143 = 0

= 817 mod 143 = 2251799813685248 mod 143 = 112


= 1.0.112

a 97 = 917 mod 143 = 16677181699666569 mod 143 = 81

= 717 mod 143 = 232630513987207 mod 143 = 50 =


81.50

m 109 = 117 mod 143 = 1 mod 143 = 1

= 017 mod 143 = 0 mod 143 = 0

= 917 mod 143 = 16677181699666569 mod 143 = 81


= 1.0.81

Enkripsi : 50.5081.501.0.11281.501.0.81

Dekripsi “50.5081.501.0.11281.501.0.81”
Proses Dekripsi Text ASCII

= 50473 mod 143 = 4,1002661789349906932317905205995e+803 mod M 77


143 = 7 = 50473 mod 143 = 4,1002661789349906932317905205995e+803
mod 143 = 7 = 77

= 81473 mod 143 = 5,1690880454662333032878628286711e+902 mod a 97


143 = 9 = 50473 mod 143 = 4,1002661789349906932317905205995e+803
mod 143 = 7 = 97

= 1473 mod 143 = 1 mod 143 = 1 l 108

= 0473 mod 143 = 0 mod 143 = 0

= 112473 mod 143 = 1,9060080168767016373213457279985e+969 mod


143 = 8 = 108

= 81473 mod 143 = 5,1690880454662333032878628286711e+902 mod a 97


143 = 9 = 50473 mod 143 = 4,1002661789349906932317905205995e+803
mod 143 = 7

= 97

= 1473 mod 143 = 1 mod 143 = 1 m 109

= 0473 mod 143 = 0 mod 143 = 0

= 81473 mod 143 = 5,1690880454662333032878628286711e+902 mod


143 = 9 = 109

Dekripsi : Malam

Anda mungkin juga menyukai