Anda di halaman 1dari 10

1.

Mekanisme Kerja Asymetric Encryption (RSA)


Pemilihan kunci RSA
 Pilih dua buah bilangan prima sembarang, p dan q. Untuk memperoleh tingkat keamanan
yang tinggi pilih p dan q yang berukuran besar, misalnya 1024 bit.
 Hitung m = (p-1)*(q-1)
 Hitung n = p*q
 Pilih d yang relatively prime terhadap m e relatively prime terhadap m artinya faktor
pembagi terbesar keduanya adalah 1, secara matematis disebut gcd(e,m) = 1. Untuk
mencarinya dapat digunakan algoritma Euclid.
 Cari d, sehingga e*d = 1 mod (m), atau d = (1+nm)/e Untuk bilangan besar, dapat digunakan
algoritma extended Euclid.
 Kunci publik : e, n Kunci private : d, n

Lagoritma Enkripsi dan Dekripsi


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

Latar belakang Pengembangan Asymetric Encription (RSA)


Keamanan algoritma RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi
faktor-faktor prima. Pemfaktoran dilakukan untuk memperoleh kunci pribadi. Selama
pemfaktoran bilangan besar menjadi faktor-faktor prima belum ditemukan algoritma yang
mangkus, maka selama itu pula keamanan algoritma RSA tetap terjamin.

Perumusan Algoritma RSA


· Algoritma RSA didasarkan pada teorema Euler yang menyatakan bahwa
a(n)  1 (mod n) (15.1)
yang dalam hal ini,
1. a harus relatif prima terhadap n
2. (n) = n(1 – 1/p1)(1 – 1/p2) … (1 – 1/pr), yang dalam hal ini p1, p2, …, pr adalah faktor prima dari
n.
· ø(n) adalah fungsi yang menentukan berapa banyak dari bilangan-bilangan 1, 2, 3, …, n yang relatif
prima terhadap n.
· Berdasarkan sifat ak  bk (mod n) untuk k bilangan bulat ≥ 1, maka persamaan (15.1) dapat ditulis
menjadi
a k(n) 1k (mod n)
atau
a k(n) 1 (mod n) (15.2)
· Bila a diganti dengan m, maka persamaan (15.2) menjadi
mk(n)  1 (mod n) (15.3)
· Berdasarkan sifat ac  bc (mod n), maka bila persamaan (15.3) dikali dengan m menjadi:
mk(n) + 1  m (mod n) (15.4)

Leo Adi Saputra | 08.11.2252


yang dalam hal ini m relatif prima terhadap n.

· Misalkan e dan d dipilih sedemikian sehingga


e . d 1 (mod (n)) (15.5)
atau
e .d = k(n) + 1 (15.6)
· Masukan persamaan (15.6) ke dalam persamaan (15.4) menjadi:
m e. d m (mod n) (15.7)
· Persamaan (15.7) dapat ditulis kembali menjadi
(m e)d m (mod n) (15.8)
yang artinya, perpangkatan m dengan e diikuti dengan perpangkatan dengan d menghasilkan
kembali m semula.
· Berdasarkan persamaan (15.8), maka enkripsi dan dekripsi dirumuskan sebagai berikut:
Ee(m) = c  me mod n (15.9)
Dd(c) = m  c mod n
d
(15.10)
· Karena e . d = d . e, maka enkripsi diikuti dengan dekripsi ekivalen dengan dekripsi diikuti enkripsi:
Dd(Ee(m)) = Ee(Dd(m)) md mod n (15.11)

· Oleh karena md mod n  (m + jn)d mod n untuk sembarang bilangan bulat j, maka tiap plainteks m,
m + n, m + 2n, …,
menghasilkan cipherteks yang sama. Dengan kata lain, transformasinya dari banyak ke satu. Agar
transformasinya satu-ke-satu, maka m harus dibatasi dalam himpunan {0, 1, 2, …, n – 1} sehingga
enkripsi dan dekripsi tetap benar seperti pada persamaan (15.8) dan (15.9).

Kelebihan Asymetric Encription (RSA)


 Kamanan algoritma RSA didasarkan pada sulitnya memfaktorkan bilangan besar menjadi
fakto-faktor primanya.
 Masalah pemfaktoran: Faktorkan n, yang dalam hal ini n adalah hasil kali dari dua atau lebih
bilangan prima.
 Pada RSA, masalah pemfaktoran berbunyi: Faktorkan n menjadi dua faktor primanya, p dan
q, sedemikian sehingga n = p × q.
 Sekali n berhasil difaktorkan menjadi p dan q, maka f(n) = (p – 1) (q – 1) dapat dihitung.
Selanjutnya, karena kunci enkrispi e diumumkan (tidak rahasia), maka kunci dekripsi d dapat
dihitung dari persamaan e × d º 1 (mod f(n)).
 Penemu algoritma RSA menyarankan nilai p dan q panjangnya lebih dari 100 digit. Dengan
demikian hasil kali n = p ´ q akan berukuran lebih dari 200 digit. Menurut Rivest dan kawan-
kawan, usaha untuk mencari faktor prima dari bilangan 200 digit membutuhkan waktu
komputasi selama 4 milyar tahun, sedangkan untuk bilangan 500 digit membutuhkan waktu
1025 tahun! (dengan asumsi bahwa algoritma pemfaktoran yang digunakan adalah algoritma
yang tercepat saat ini dan komputer yang dipakai mempunyai kecepatan 1 milidetik).
 Untunglah algoritma yang paling mangkus untuk memfaktorkan bilangan yang besar belum
ditemukan. Selama 300 tahun para matematikawan mencoba mencari faktor bilangan yang
besar namun tidak banyak membuahkan hasil. Semua bukti yang diketahui menunjukkan
bahwa upaya pemfaktoran itu lura biasa sulit.

2. Pada Source A. Pertama-tama pengirim mengenkripsi pesan dengan menggunakan Private key
pengirim sebagai tanda tangan digital kemudian pengirim mengenkripsi lagi dengan menggunakan
Public key penerima bertujuan agar ciphertext akhir hanya dapat dienkripsi oleh penerima yang
dituju yang juga memiliki Private key yang cocok. Pada Source B Pertama-tama penerima
Leo Adi Saputra | 08.11.2252
mendekripsi pesan yang telah diterima menggunakan Private key penerima kemudian mendekripsi
lagi dengan Public key pengirim sebagai authentifikasi apakah pesan yang diterima adalah pesan
yang dikirim oleh pengirim.

Jawaban:
3. Contoh pemilihan kunci:

 Contoh Pertama  Contoh Kedua

Pilih dua bilangan prima : p = 13 & q = 67 Pilih dua bilangan prima : p = 41 & q = 73

Hitung : n = pq = 13*67 = 871 Hitung : n = p x q = 41 x 73 = 2993

Hitung : ø(n) = (p-1) (q-1) = 12 x 66 = 792 Hitung : ø(n) = (p-1) (q-1) = 12 x 66 = 2880

Pilih e:gcd(e, 792) = 1 ; pilih e=5 Pilih e:gcd(e, 2880) = 1 ; pilih e = 7

Tentukan d: Tentukan d:

e*d = 1 mod 792 e*d = 1 mod 2880

5*d = 1 mod 792 7*d = 1 mod 2880

5*d mod 792 = 1 7*d mod 2880 = 1

d = 317 d = 832

Public key = {5, 871} Public key = {7, 2993}

Private key = {317, 871} Private key = {832, 2993}

Contoh RSA Encryption/decryption : Contoh RSA Encryption/decryption :

Pesan M = 252 (252 < 871) Pesan M = 2252 (2252 < 2993)

Encryption: Encryption:

C = 2525 mod 871 = 577 C = 22527 mod 2993 = 2077

Decryption: Decryption:

M = 577317 mod 871 = 252 M = 2077832 mod 2993 = 2252

 Contoh Ketiga

Pilih dua bilangan prima : p = 53 & q = 79

Hitung : n = p x q = 53 x 79 = 4187

Leo Adi Saputra | 08.11.2252


Hitung : ø(n) = (p-1) (q-1) = 52 x 78 = 4056

Pilih e:gcd(e, 4056) = 1 ; pilih e = 7

Tentukan d:

e*d = 1 mod 4056

7*d = 1 mod 4056

7*d mod 4056= 1

d = 1159

Public key = {7, 4187}

Private key = {1159, 4187}

Contoh RSA Encryption/decryption :

Pesan M = 2252 (2252 < 4187)

Encryption:

C = 22527 mod 4187= 1867

Decryption:

M = 18671159 mod 4187= 2252

4. Gambar di atas adalah salah satu round dari 16 round terdapat pada proses enciphering, blok
plainteks terbagi menjadi dua bagian, kiri (L) dan kanan (R), yang masing-masing panjangnya 32
bit. Kedua bagian ini masuk ke dalam 16 putaran DES.
Pada setiap putaran i, blok R merupakan masukan untuk fungsi transformasi yang disebut f. Pada
fungsi f, blok R dikombinasikan dengan kunci internal Ki. Keluaran dai fungsi f di-XOR-kan dengan
blok L untuk mendapatkan blok R yang baru. Sedangkan blok L yang baru langsung diambil dari
blok R sebelumnya. Ini berlangsung sebanyak 16 putaran
Secara matematis, satu putaran DES dinyatakan sebagai:
L i = Ri – 1

Ri = Li – 1  f(Ri – 1, Ki)

Karena ada 16 putaran, maka dibutuhkan kunci internal sebanyak 16 buah, yaitu K1, K2, …, K16.
Kunci-kunci internal ini dapat dibuat sebelum proses enkripsi atau bersamaan dengan proses
enkripsi.
Kunci internal dibuat dari kunci eksternal yang diberikan oleh pengguna. Kunci eksternal
panjangnya 64 bit atau 8 karakter.
Misalkan kunci eksternal yang tersusun dari 64 bit adalah K.

Leo Adi Saputra | 08.11.2252


Kunci eksternal ini menjadi masukan untuk permutasi dengan menggunakan matriks permutasi
kompresi PC-1 sebagai berikut:

57 49 41 33 25 17 9 1 58 50 42 34 26 18

10 2 59 51 43 35 27 19 11 3 60 52 44 36

63 55 47 39 31 23 15 7 62 54 46 38 30 22

14 6 61 53 45 37 29 21 13 5 28 20 12 4

Dalam permutasi ini, tiap bit kedelapan (parity bit) dari delapan byte kunci diabaikan. Hasil
permutasinya adalah sepanjang 56 bit, sehingga dapat dikatakan panjang kunci DES adalah 56 bit.

Selanjutnya, 56 bit ini dibagi menjadi 2 bagian, kiri dan kanan, yang masing-masing panjangnya 28
bit, yang masing-masing disimpan di dalam C0 dan D0:

C0: berisi bit-bit dari K pada posisi

57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18

10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36

D0: berisi bit-bit dari K pada posisi

63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22

14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4
Selanjutnya, kedua bagian digeser ke kiri (left shift) sepanjang satu atau dua bit bergantung pada
tiap putaran. Operasi pergeseran bersifat wrapping atau round-shift. Jumlah pergeseran pada
setiap putaran ditunjukkan pada Tabel 1 sbb:

Misalkan (Ci, Di) menyatakan penggabungan Ci dan Di. (Ci+1, Di+1) diperoleh dengan menggeser
Ci dan Di satu atau dua bit.

Setelah pergeseran bit, (Ci, Di) mengalami permutasi kompresi dengan menggunakan matriks
PC-2 berikut:

14 17 11 24 1 5 3 28 15 6 21 10

23 19 12 4 26 8 16 7 27 20 13 2

41 52 31 37 47 55 30 40 51 45 33 48

44 49 39 56 34 53 46 42 50 36 29 32

Dengan permutasi ini, kunci internal Ki diturunkan dari (Ci, Di) yang dalam hal ini Ki
merupakan penggabungan bit-bit Ci pada posisi:
14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10

23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2


Leo Adi Saputra | 08.11.2252
dengan bit-bit Di pada posisi:
41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48

44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32

Jadi, setiap kunci internal Ki mempunyai panjang 48 bit.

Enciphering
 Proses enciphering terhadap blok plainteks dilakukan setelah permutasi awal (lihat Gambar
1). Setiap blok plainteks mengalami 16 kali putaran enciphering (lihat Gambar 2). Setiap
putaran enciphering merupakan jaringan Feistel yang secara matematis dinyatakan sebagai
L i = Ri – 1

Ri = Li – 1  f(Ri – 1, Ki)

 E adalah fungsi ekspansi yang memperluas blok Ri – 1 yang panjangnya 32-bit menjadi blok 48
bit. Fungsi ekspansi direalisasikan dengan matriks permutasi ekspansi sbb:

32 1 2 3 4 5 4 5 6 7 8 9

8 9 10 11 12 13 12 13 14 15 16 17

16 17 18 19 20 21 20 21 22 23 24 25

24 25 26 27 28 29 28 29 30 31 32 1

 Selanjutnya, hasil ekpansi, yaitu E(Ri – 1), yang panjangnya 48 bit di-XOR-kan dengan Ki yang
panjangnya 48 bit menghasilkan vektor A yang panjangnya 48-bit:
E(Ri – 1)  Ki = A

 Vektor A dikelompokkan menjadi 8 kelompok, masing-masing 6 bit, dan menjadi masukan


bagi proses substitusi. Proses substitusi dilakukan dengan menggunakan delapan buah
kotak-S (S-box), S1 sampai S8. Setiap kotak-S menerima masukan 6 bit dan menghasilkan
keluaran 4 bit. Kelompok 6-bit pertama menggunakan S 1, kelompok 6-bit kedua
menggunakan S2, dan seterusnya.
(cara pensubstitusian dengan kotak-S sudah dijelaskan pada materi “Prinsip-prinsip
Perancangan Cipher Blok”)

Kedelapan kotak-S tersebut adalah:

S1:
14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7

0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8

4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0

Leo Adi Saputra | 08.11.2252


15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13

S2:

15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10

3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5

0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15

13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9

S3:

10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8

13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1

13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7

1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12

S4:

7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15

13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9

10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4

3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14

S5:

2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9

14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 16

4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14

11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3

S6:

12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11
Leo Adi Saputra | 08.11.2252
10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8

9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6

4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13

S7:
4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1

13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6

1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2

6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12

S8:
13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7

1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2

7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8

2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11

 Keluaran proses substitusi adalah vektor B yang panjangnya 48 bit. Vektor B menjadi
masukan untuk proses permutasi. Tujuan permutasi adalah untuk mengacak hasil proses
substitusi kotak-S. Permutasi dilakukan dengan menggunakan matriks permutasi P (P-box)
sbb:

16 7 20 21 29 12 28 17 1 15 23 26 5 8 31 10

2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25

5. Input :101000-110001-111111-010001-010011-001100-110111-111000

B[1] = S[1](10, 0100) = S[1][2][4] = 13  = 1101


B[2] = S[2](11, 1000) = S[2][3][8] = 11  = 1011
B[3] = S[3](11, 1111) = S[3][3][15] = 12 = 1100
B[4] = S[4](01, 1000) = S[4][1][8] = 4  = 0100
B[5] = S[5](01, 1001) = S[5][1][9] = 0 = 0000

Leo Adi Saputra | 08.11.2252


B[6] = S[6](00, 0110) = S[6][0][6] = 6  = 0110
B[7] = S[7](11, 1011) = S[7][3][11] = 15 = 1111
B[8] = S[8](10, 1100) = S[8][2][12] = 15  = 1111

Output : 1101-1011-1100-0100-0000-0110-1111-1111

6. Enkripsi AES
Dalam proses enkripsi input, diperlukanlah empat macam operasi yang dilakukan berulang-ulang dalam
beberapa putaran dan menggunakan kunci cipher. Jumlah putaran yang digunakan algoritma ini ada tiga
macam seperti pada tabel di bawah ini. Pada gambar di atas adalah tipe AES-128 karena melakukan 10 kali
putaran (round).
Dalam setiap satu kali putaran terdapat 4 operasi yang harus dijalankan yaitu:
a. Subtitusi Byte (SubBytes)
b. Pergeseran Baris (Shift Rows)
c. Pencampuran Kolom (Mix Columns)
d. Penambahan Kunci (Add Round Keys)

a. Subtitusi Byte (SubBytes)


Dalam operasi ini, setiap byte yang akan dienkripsi disubtitusikan dengan nilai byte lain dengan
menggunakan S-box. S-box dibuat dari multiplicative inverse dari angka yang diberikan dalam
Rijndael’s finite field yang kemudian ditransformasikan dengan affine transformation

Hasilnya kemudian di-xor dengan 9910 atau 0x6316 atau 11000112. Operasi matriks dengan xor ini
ekuivalen dengan persamaan: b’i = bi_b(i+4)mod8_b(i+5)mod8_b(i+6)mod8_b(i+7)mod8_ci dengan b’, b, dan c
adalah array 8 bit dan nilai c adalah 01100011. Proses tersebut menghasilkan masing-masing nilai dari
elemen tabel S-box yang hasilnya sebagai berikut.

| 0 1 2 3 4 5 6 7 8 9 a b c d e f
---|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|
00 |63 7c 77 7b f2 6b 6f c5 30 01 67 2b fe d7 ab 76
10 |ca 82 c9 7d fa 59 47 f0 ad d4 a2 af 9c a4 72 c0
20 |b7 fd 93 26 36 3f f7 cc 34 a5 e5 f1 71 d8 31 15
30 |04 c7 23 c3 18 96 05 9a 07 12 80 e2 eb 27 b2 75
40 |09 83 2c 1a 1b 6e 5a a0 52 3b d6 b3 29 e3 2f 84
50 |53 d1 00 ed 20 fc b1 5b 6a cb be 39 4a 4c 58 cf
60 |d0 ef aa fb 43 4d 33 85 45 f9 02 7f 50 3c 9f a8
70 |51 a3 40 8f 92 9d 38 f5 bc b6 da 21 10 ff f3 d2
80 |cd 0c 13 ec 5f 97 44 17 c4 a7 7e 3d 64 5d 19 73
90 |60 81 4f dc 22 2a 90 88 46 ee b8 14 de 5e 0b db
a0 |e0 32 3a 0a 49 06 24 5c c2 d3 ac 62 91 95 e4 79
b0 |e7 c8 37 6d 8d d5 4e a9 6c 56 f4 ea 65 7a ae 08
c0 |ba 78 25 2e 1c a6 b4 c6 e8 dd 74 1f 4b bd 8b 8a
d0 |70 3e b5 66 48 03 f6 0e 61 35 57 b9 86 c1 1d 9e
e0 |e1 f8 98 11 69 d9 8e 94 9b 1e 87 e9 ce 55 28 df
f0 |8c a1 89 0d bf e6 42 68 41 99 2d 0f b0 54 bb 16

Seperti yang telah diketahui sebelumnya, AES merupakan algoritma simetri, yang berarti tabel subtitusi
yang dibutuhkan untuk mengenkripsi berbeda dengan untuk mendekripsi. Untuk acuan tersebut,
digunakanlah tabel S-box inversi sebagai berikut.

| 0 1 2 3 4 5 6 7 8 9 a b c d e f
---|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|
00 |52 09 6a d5 30 36 a5 38 bf 40 a3 9e 81 f3 d7 fb
10 |7c e3 39 82 9b 2f ff 87 34 8e 43 44 c4 de e9 cb
20 |54 7b 94 32 a6 c2 23 3d ee 4c 95 0b 42 fa c3 4e
30 |08 2e a1 66 28 d9 24 b2 76 5b a2 49 6d 8b d1 25
40 |72 f8 f6 64 86 68 98 16 d4 a4 5c cc 5d 65 b6 92

Leo Adi Saputra | 08.11.2252


50 |6c 70 48 50 fd ed b9 da 5e 15 46 57 a7 8d 9d 84
60 |90 d8 ab 00 8c bc d3 0a f7 e4 58 05 b8 b3 45 06
70 |d0 2c 1e 8f ca 3f 0f 02 c1 af bd 03 01 13 8a 6b
80 |3a 91 11 41 4f 67 dc ea 97 f2 cf ce f0 b4 e6 73
90 |96 ac 74 22 e7 ad 35 85 e2 f9 37 e8 1c 75 df 6e
a0 |47 f1 1a 71 1d 29 c5 89 6f b7 62 0e aa 18 be 1b
b0 |fc 56 3e 4b c6 d2 79 20 9a db c0 fe 78 cd 5a f4
c0 |1f dd a8 33 88 07 c7 31 b1 12 10 59 27 80 ec 5f
d0 |60 51 7f a9 19 b5 4a 0d 2d e5 7a 9f 93 c9 9c ef
e0 |a0 e0 3b 4d ae 2a f5 b0 c8 eb bb 3c 83 53 99 61
f0 |17 2b 04 7e ba 77 d6 26 e1 69 14 63 55 21 0c 7d

b. Pergeseran Baris (Shift Rows)


Pada operasi ini, byte-byte pada setiap baris digeser secara memutar dengan pergeseran yang berbeda
dari tiap-tiap baris. Setiap baris digeser dengan aturan tertentu untuk jenis panjang blok yang berbeda.
Baris pertama blok untuk semua jenis panjang blok (128, 196, dan 256 bit) tidak digeser. Baris kedua
untuk semua jenis panjang blok digeser 1 ke kiri. Pergeseran baris ketiga dan keempat untuk panjang
blok 128 dan 196 bit berbeda dengan 256 bit. Pada panjang blok 128 dan 196 bit, baris ketiga digeser
ke kiri sebanyak dua kali dan baris keempat digeser ke kiri sebanyak tiga kali. Pada panjang blok 256
bit, baris ketiga digeser ke kiri sebanyak tiga kali dan baris keempat digeser ke kiri sebanyak empat
kali. Untuk lebih jelasnya, proses tersebut dapat dilihat sebagai berikut.

c. Pencampuran Kolom (Mix Columns)


Transformasi ini mengoperasikan blok pada masing masing kolomnya. Setiap kolom diperlakukan
sebagai four-term polynomial dengan cara Galois Field (GF) (28) dan dimodulokan dengan x tetap a(x)
[3], yaitu a(x) = {03}x3 + {01}x2 + {01}x + {02}.
Selama operasi ini, setiap kolom dikalikan dengan matriks untuk kunci 128 bit adalah :

Penambahan Kunci (Add Round Keys)

Dalam operasi transformasi ini, digunakanlah subkunci untuk masing-masing putaran yang berasal dari
kunci utama dengan menggunakan jadwal kunci Rijndael (Rijndael’s key schedule) yang ukuran
subkunci tersebut sama dengan ukuran blok yang akan diproses. subkunci tersebut kemudian di xor
dengan blok input sehingga diperoleh hasilnya.

Leo Adi Saputra | 08.11.2252

Anda mungkin juga menyukai