(Bagian 2)
Bahan Kuliah
IF3058 Kriptografi
Rinaldi Munir/IF3058 Kriptografi
Enkripsi: Ci = EK(Pi)
Dekripsi: Pi = DK(Ci)
yang dalam hal ini, Pi dan Ci masing-masing
blok plainteks dan cipherteks ke-i.
Rinaldi M/IF3058 Kriptografi
BlokPlainteksP1
BlokPlainteksP2
KunciKE
KunciKE
BlokCipherteksC1
BlokPlainteksC2
Gambar 9.4SkemaenkripsidandekripsidenganmodeECB
Contoh:
Plainteks:10100010001110101001
Bagi plainteks menjadi blok-blok 4-bit:
1010 0010 0011 1010 1001
( dalam notasi HEX :A23A9)
Enkripsi:
1010
1011
0010
1011
0011
1011
1010
1011
1001
1011
HasilXOR:
0001 1001
Geser1bitkekiri:
0010 0011
DalamnotasiHEX: 2
3
Jadi,hasilenkripsiplainteks
10100010001110101001
adalah
00100011000100100100
1000
0001
1
0001
0010
2
0010
0100
4
(A23A9 dalamnotasiHEX)
(23124 dalamnotasiHEX)
Cipherteks
0000
0100
0001
0010
1111
1001
1010
1010
10
KeuntunganModeECB
1.
11
12
2.
13
Kelemahan ECB
1.
14
2.
15
C12,
C13,
C14,
C15,
16
17
18
Hasil enkripsi blok sebelumnya di-umpanbalikkan ke dalam enkripsi blok yang current.
Rinaldi Munir/IF3058 Kriptografi
19
Pi1
Pi
Ci1
Ci2
Ci
EK
Ci1
EK
DK
DK
Ci2
Ci
Enkripsi
Ci =EK(Pi Ci1)
Pi1
Pi
Dekripsi
Pi =DK(Ci)Ci1
Gambar 8.5SkemaenkripsidandekripsidenganmodeCBC
Rinaldi Munir/IF3058 Kriptografi
20
21
Contoh 9.8.TinjaukembaliplainteksdariContoh9.6:
10100010001110101001
Bagiplainteksmenjadiblok-blokyangberukuran4bit:
ataudalamnotasiHEXadalahA23A9.
Misalkankunci(K)yangdigunakanadalah(panjangnyajuga4bit)
1011
ataudalamnotasiHEXadalahB.SedangkanIVyangdigunakanseluruhnyabit0(Jadi,C0=
0000)
22
Misalkankunci(K)yangdigunakanadalah(panjangnyajuga4bit)
1011
ataudalamnotasiHEXadalahB.SedangkanIVyangdigunakanseluruhnyabit0(Jadi,C0=
0000)
MisalkanfungsienkripsiEyangsederhana(tetapilemah)adalahdenganmeng-XOR-kanblok
plainteksPidenganK,kemudiangesersecarawrappingbit-bitdariPiKsatuposisikekiri.
23
C1diperolehsebagaiberikut:
P1C0=10100000=1010
EnkripsikanhasilinidenganfungsiEsbb:
1010K=10101011=0001
Geser(wrapping)hasilinisatubitkekiri:0010
Jadi,C1=0010(atau2dalamHEX)
C2diperolehsebagaiberikut:
P2C1=00100010=0000
0000K=00001011=1011
Geser(wrapping)hasilinisatubitkekiri:0111
Jadi,C2=0111(atau7dalamHEX)
C3diperolehsebagaiberikut:
P3C2=00110111=0100
0100K=01001011=1111
Geser(wrapping)hasilinisatubitkekiri:1111
Jadi,C2=1111(atauFdalamHEX)
24
Demikianseterusnya,sehinggaplainteksdanciphertekshasilnyaadalah:
Pesan(plainteks):
A23A9
Cipherteks(modeECB):
23124
Cipherteks(modeCBC):
27FBF
25
26
27
28
Cipher-Feedback (CFB)
Antrian(shift register)8-byte
Antrian(shift register)8-byte
Left-most byte
Left-most byte
ki
pi
(a)Enkripsi
ki
ci
ci
(b)Dekripsi
pi
Secaraformal,modeCFBn-bitdapatdinyatakansebagai:
ProsesEnkripsi:
Ci =PiMSBm(EK(Xi))
Xi+1=LSBmn(Xi)||Ci
ProsesDekripsi:
Pi =CiMSBm(DK(Xi))
Xi+1=LSBmn(Xi)||Ci
yangdalamhalini,
Xi =isiantriandenganX1adalahIV
E=fungsienkripsidenganalgoritmacipherblok.
K=kunci
m=panjangblokenkripsi
n =panjangunitenkripsi
||=operatorpenyambungan(concatenation)
Pi
Ek
Ci
Ci1
Pi+1
Ek
Ci+1
Enkripsi CFB
Ci1
Pi1
Ci
Dk
Pi
Dekripsi CFB
Ci+1
Dk
Pi+1
Ci = Pi Ek (Ci 1 )
Pi = Ci Dk (Ci 1 )
yang dalam hal ini, C0 = IV.
Output-Feedback (OFB)
Antrian(shift register)8-byte
Antrian(shift register)8-byte
Left-most byte
Left-most byte
ki
pi
(a)Enkripsi
ki
ci
ci
(b)Dekripsi
pi
Pi1
Pi
Ek
Ci1
Pi+1
Ci
Ek
Ci+1
Enkripsi OFB
Prinsip-prinsip Perancangan
Cipher Blok
1.
2.
3.
4.
5.
PrinsipConfusiondanDiffusion
dariShannon.
1.
Confusion
- Tujuan: menyembunyikan hubungan apapun yang
ada antara plainteks, cipherteks, dan kunci.
2.
Diffusion
- Prinsip ini menyebarkan pengaruh satu bit
plainteks atau kunci ke sebanyak mungkin
cipherteks.
- Sebagai contoh, pengubahan kecil pada plainteks
sebanyak satu atau dua bit menghasilkan
perubahan pada cipherteks yang tidak dapat
diprediksi.
- Mode CBC dan CFB menggunakan prinsip ini
i=1,2,,n
E/D
Li 1
Li
Ki
Ri1
Ri
Li=Ri 1
Ri =Li1f(Ri1,Ki)
Kotak-S (S-box)
Contoh:Kotak-SdidalamalgoritmaDESadalah64S-boxyangberartimemetakan6bit
masukanmenjadi4bitkeluaran.Salahsatukotak-SyangadadidalamalgoritmaDESadalah
sebagaiberikut:
12
1 10 15
9
2
6
8
0 13
3
4 14
7
5 11
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
Barisdiberinomordari0sampai3
Kolomdiberinomordari0sampai15
Masukanuntukprosessubstitusiadalah6bit,
b1b2b3b4b5b6
Nomorbarisdaritabelditunjukkanolehstringbitb1b6
(menyatakan0sampai3desimal)
Nomorkolomditunjukkanolehstringbitb2b3b4b5
(menyatakan0sampai15)