You are on page 1of 31

Tugas Akhir Mata Kuliah Keamanan Sistem Lanjut

Dosen : Dr. Budi Rahardjo

ANALISIS SANDI DIFERENSIAL


TERHADAP CIPHER SPN

Disusun
untuk memenuhi tugas akhir mata kuliah
Keamanan Sistem Lanjut (EC 7010)

Dosen : Dr. Budi Rahardjo

Nama mahasiswa
Sigit Susilo
NIM.23203127

PROGRAM MAGISTER TEKNIK ELEKTRO


BIDANG KHUSUS TEKNIK INFORMASI DIKMENJUR
INSTITUT TEKNOLOGI BANDUNG
2004

Sigit Susilo NIM.23203127


Tugas Akhir Mata Kuliah Keamanan Sistem Lanjut
Dosen : Dr. Budi Rahardjo

ABSTRAK

Kriptografi adalah ilmu yang mempelajari bagaimana menjaga keamananan


suatu pesan (plaintext). Tugas utama kriptografi adalah untuk menjaga agar
baik pesan atau kunci ataupun keduanya tetap terjaga kerahasiaannya dari
penyadap (attacker). Penyadap pesan diasumsikan mempunyai akses yang
lengkap dalam saluran komunikasi antara pengirim pesan dan penerima
pesan. Penyadapan pesan sering terjadi pada komunikasi melalui internet
maupun saluran telepon.
Untuk mendapatkan pesan tanpa melalui kunci sebenarnya dapat dianalisis
(analisis sandi), ilmunya disebut cryptanalysis. Hasil dari analisis sandi akan
diperoleh pesan atau kunci. Analisis sandi juga dapat menemukan kelemahan
dalam kriptosistem yang pada akhirnya dapat menemukan pesan atau kunci.
Analisis sandi diferensial merupakan salah satu attack yang penting pada
kode blok kunci simetri modern yang berbasis komputer. Pembahasan
didasarkan pada analisis kode jaringan substitusi dan permutasi dasar yang
sederhana dan terstruktur. Pembahasan juga memberikan contoh attack secara
rinci. Memahami attack jenis ini sangat penting, karena kode Rijndael yang
dijadikan standar enkripsi terbaru Amerika Serikat, AES yang merupakan
pelanjut DES yang menjadi standar enkripsi dunia menggunakan arsitektur
SPN (Substitution Permutation Network).

ii

Sigit Susilo NIM.23203127


Tugas Akhir Mata Kuliah Keamanan Sistem Lanjut
Dosen : Dr. Budi Rahardjo

DAFTAR ISI

LEMBAR JUDUL ………………………………………………………….. i


ABSTRAK …………………………………………………………………. ii
DAFTAR ISI ……………………………………………………………….. iii
DAFTAR GAMBAR ………………………………………………………. iv
DAFTAR TABEL ………………………………………………………….. v

BAB I PENDAHULUAN ……………………………………………….. 1


1.1 Latar Belakang ………………………………………………. 1
1.2 Tujuan ……………………………………………………….. 1
1.3 Ruang Lingkup Masalah …………………………………….. 2

BAB II LANDASAN TEORI …………………………………………….. 3


2.1 Komunikasi …………………………………………………. 3
2.2 Aspek-aspek Keamanan …………………………………….. 3
2.3 Algoritma dan Kunci ……………………………………….. 4
2.4 Cryptanalysis ……………………………………………….. 5
2.5 Macam-macam Algoritma Kriptografi ……………………... 7

BAB III ANALISIS SANDI DIFERENSIAL ……………………………. 11


3.1 Kode Sandi SPN Dasar ……………………………………... 11
3.2 Substitusi …………………………………………………… 12
3.3 Permutasi …………………………………………………… 12
3.4 Penyampuran Kunci ………………………………………... 13
3.5 Dekripsi …………………………………………………….. 13
3.6 Analisis Sandi Diferensial terhadap Cipher SPN …………... 13
3.6.1 Attack Dasar …………………………………………. 13
3.6.2 Analisis Komponen Cipher ………………………….. 15
3.6.3 Menyusun Karakteristik Diferensial …………………. 19
3.6.4 Mendapatkan Bit Kunci …………………………….... 21

BAB IV KESIMPULAN ………………………………………………….. 25


DAFTAR PUSTAKA ………………………………………………………. 26

iii

Sigit Susilo NIM.23203127


Tugas Akhir Mata Kuliah Keamanan Sistem Lanjut
Dosen : Dr. Budi Rahardjo

DAFTAR GAMBAR

Gambar 2.1 Kriptografi Konvensional …………………………………….. 7


Gambar 2.2 Lingkungan Kriptosistem Konvensional ……………………... 8
Gambar 3.1 Kode Sandi SPN Dasar ……………………………………….. 11
Gambar 3.2 Pemetaan Kotak-S …………………………………………….. 15
Gambar 3.3 Kotak S Berkunci ……………………………………………… 18
Gambar 3.4 Karakteristik Diferensial ………………………………………. 20

iv

Sigit Susilo NIM.23203127


Tugas Akhir Mata Kuliah Keamanan Sistem Lanjut
Dosen : Dr. Budi Rahardjo

DAFTAR TABEL

Tabel 3.1 Pemetaan Kotak Substitusi (dalam heksadesimal) ………………. 12


Tabel 3.2 Permutasi ………………………………………………………… 12
Tabel 3.3 Pasangan Diferensial Kotak-S …………………………………… 16
Tabel 3.4 Distribusi Diferensial ……………………………………………. 17
Tabel 3.5 Hasil Attack Diferensial …………………………………………. 23

Sigit Susilo NIM.23203127


Tugas Akhir Mata Kuliah Keamanan Sistem Lanjut
Dosen : Dr. Budi Rahardjo

BAB I
PENDAHULUAN

1.1 Latar Belakang


Keamanan merupakan salah satu aspek yang penting dalam sebuah
sistem informasi. Banyak orang menyiasati bagaimana cara mengamankan
informasi yang dikomunikasikan atau menyiasati bagaimana cara mendeteksi
keaslian dari informasi yang diterimanya.
Kriptografi adalah ilmu yang mempelajari bagaimana menjaga
keamananan suatu pesan (plaintext). Tugas utama kriptografi adalah untuk
menjaga agar baik pesan atau kunci ataupun keduanya tetap terjaga
kerahasiaannya dari penyadap (attacker). Penyadap pesan diasumsikan
mempunyai akses yang lengkap dalam saluran komunikasi antara pengirim
pesan dan penerima pesan. Penyadapan pesan sering terjadi pada komunikasi
melalui internet maupun saluran telepon.
Untuk mendapatkan pesan tanpa melalui kunci sebenarnya dapat
dianalisis (analisis sandi), ilmunya disebut cryptanalysis. Hasil dari analisis
sandi akan diperoleh pesan atau kunci. Analisis sandi juga dapat menemukan
kelemahan dalam kriptosistem yang pada akhirnya dapat menemukan pesan
atau kunci. Untuk itu melalui tugas akhir mata kuliah Kemanan Sistem Lanjut
(EC 7010), penulis membuat makalah berjudul Analisis Sandi Diferensial
Terhadap Cipher SPN (Substitution Permutation Network).

1.2 Tujuan
Berdasarkan latar belakang di atas, tugas akhir EC 7010 ini bertujuan
untuk:
• Dapat menganalisa dan mempelajari kode sandi SPN dasar, melalui
substitusi, permutasi dan pencampuran kunci.
• Dapat menganalisa dan mempelajari attack dasar, komponen cipher,
karakteristik diferensial, bit kunci.

1
Sigit Susilo NIM.23203127
Tugas Akhir Mata Kuliah Keamanan Sistem Lanjut
Dosen : Dr. Budi Rahardjo

1.3 Ruang Lingkup Masalah


Makalah ini, yang berjudul Analisis Sandi Diferensial Terhadap Cipher
SPN (Substitution Permutation Network), ruang lingkup permasalahannya
meliputi, pembahasan tentang : kode sandi SPN dasar, substitusi, permutasi,
penyampuran kunci, dekripsi dan analisis sandi diferensial terhadap cipher
SPN. Di dalam pembahasan analisis sandi diferensial terhadap cipher SPN,
dibahas tentang : attack dasar, analisis komponen cipher, menyusun
karakteristik diferensial dan mendapatkan bit kunci.

2
Sigit Susilo NIM.23203127
Tugas Akhir Mata Kuliah Keamanan Sistem Lanjut
Dosen : Dr. Budi Rahardjo

BAB II
LANDASAN TEORI

2.1 Komunikasi
Macam-macam layanan komunikasi di internet, diantaranya adalah web,
e-mail, milis dan sebagainya. Dengan semakin maraknya orang menggunakan
layanan internet tersebut, maka permasalahanpun bermunculan, apalagi
ditambah dengan adanya hacker dan cracker. Banyak orang kemudian
berusaha menyiasati bagaimana cara mengamankan informasi yang
dikomunikasikan dan bagaimana cara mendeteksi keaslian dari informasi
yang diterimanya.
Informasi yang dapat dibaca disebut sebagai plaintext (cleartext). Teknik
untuk membuat pesan menjadi tidak dapat dibaca disebut enkripsi. Pesan
yang tidak dapat dibaca disebut ciphertext. Proses yang merupakan kebalikan
dari enkripsi disebut dekripsi. Jadi dekripsi akan membuat ciphertext menjadi
plaintext. Sedangkan seni dan ilmu untuk menjaga keamanan pesan disebut
sebagai kriptografi. Dan ahlinya disebut sebagai cryptographer. Cryptanalyst
merupakan orang yang melakukan cryptanalys, yaitu seni dan ilmu untuk
memecahkan ciphertext menjadi plaintext tanpa melalui cara yang seharusnya
(dekripsi).
Jadi cryptanalysis merupakan kebalikan dari kriptografi. Cabang
matematika yang mencakup kriptografi dan cryptanalysis disebut cryptology
dan pelakunya disebut cryptologists. Suatu kriptosistem adalah algoritma
kriptografi ditambah seluruh kemungkinan plaintext, ciphertext dan kunci-
kuncinya.

2.2 Aspek-aspek Keamanan


Kriptografi tidak hanya memberikan kerahasiaan dalam telekomunikasi,
namun juga memberikan komponen-komponen berikut :
• Authentication. Penerima pesan dapat memastikan keaslian pengirimnya.
Penyerang tidak dapat berpura-pura sebagai orang lain.

3
Sigit Susilo NIM.23203127
Tugas Akhir Mata Kuliah Keamanan Sistem Lanjut
Dosen : Dr. Budi Rahardjo

• Integrity .Penerima harus dapat memeriksa apakah pesan telah


dimodifikasi di tengah jalan atau tidak. Seorang penyusup seharusnya
tidak dapat memasukkan tambahan ke dalam pesan, mengurangi atau
mengubah pesan selama data berada di perjalanan.
• Nonrepudiation. Pengirim seharusnya tidak dapat mengelak bahwa dialah
pengirim pesan yang sesungguhnya. Tanpa kriptografi seseotang dapat
mengelak bahwa dialah pengirim email yang sesungguhnya.
• Authority. Informasi yang berada pada sistem jaringan seharusnya hanya
dapat dimodifikasi oleh pihak yang berwenang. Modifikasi yang tidak
diinginkan, dapat berupa penulisan tambahan pesan, pengubahan isi,
pengubahan status, penghapusan, pembuatan pesan baru (pemalsuan),
atau menyalin pesan.

2.3 Algoritma dan Kunci


Algoritma kriptografi selalu terdiri dari dua bagian yaitu fungsi enkripsi
dan dekripsi. Jika keamanan algoritma tergantung pada kerahasiaan algoritma
bekerja, maka algoritma tersebut dikatakan algoritma terbatas (terbatas
kemampuannya).
Sejumlah besar pengguna (yang tidak dalam satu grup) tidak dapat
menggunakannya bersama-sama, sehingga setiap kali seorang pengguna
meninggalkan grupnya, pemakai lain dalam grup tersebut harus mengganti
algoritma agar algoritma yang mereka gunakan tidak diketahui kelompok
lain.
Bahkan lebih buruk lagi, algoritma terbatas tidak mengijinkan kontrol
kualitas atau standarisasi. Setiap grup pemakai harus mempunyai algoritma
tersendiri. Mereka tidak dapat menggunakan produk perusahaan lain karena
kalau demikian tentu orang lain dapat juga membeli produk tersebut dan
kemudian memecahkan algoritmanya, sehingga data yang dienkrip dengan
algoritma tersebut tidak aman lagi. Anggota grup tersebut harus menulis
sendiri algoritma dan implementasinya. Sehingga jika tidak ada satu
anggotapun yang ahli kriptografi, mereka tidak akan tahu apakah algoritma

4
Sigit Susilo NIM.23203127
Tugas Akhir Mata Kuliah Keamanan Sistem Lanjut
Dosen : Dr. Budi Rahardjo

aman atau tidak. Meskipun mempunyai kelemahan yang besar, algoitma


terbatas sangat terkenal untuk aplikasi keamanan tingkat rendah.
Kriptografi modern menyelesaikan masalah ini dngan hanya
merahasiakan kunci (key) saja tanpa harus menyembunyikan algoritmanya
sendiri. Kunci (K) dapat juga disebut sebagai password. Keamanan enkripsi
hanya tergantung pada kunci, dan tidak tergantung apakah algoritmanya
dilihat orang lain arau tidak. Rentang kemungkinan nilai kunci ini disebut
keyspace.
Bila keseluruhan keamanan algoritma ini tergantung kunci dan tak
satupun yang didasarkan pada detil algoritma, maka algoritma ini dapat
dipublikasikan dan dianalisis oleh semua orang. Produk-produk yang
menggunakan algoritma tersebut dapat diproduksi secara masal. Tidak
masalah bila penguping mengetahui algoritma tersebut asalkan tidak
mengetahui kunci rahasianya, mereka tetap tidak dapat membuka pesan
tersebut.
Contoh sistem semacam ini adalah kartu kredit. Semua kartu kredit yang
beredar di seluruh dunia menggunakan algoritma kriptografi yang sama yaitu
DES (Data Encryption Standard) dan RSA. Semua orang boleh mengetahui
isi algoritma DES dan RSA. Namun pengetahuan terhadap algoritma ini tidak
membantu proses pembongkaran kodenya. Hanya dengan pengetahuan
kuncinya orang dapat melakukan dekripsi, artinya dengan memberikan
kepada setiap kartu satu kunci, keamanan kartu kredit dapat diandalkan.
Keuntungan sistem seperti ini adalah berbagai produsen kartu kredit yang
berbeda dapat menggunakan algoritma keamanan yang sama, sehingga dapat
digunakan pada mesin perusahaan yang berbeda.

2.4 Cryptanalysis
Tugas utama kriptografi adalah untuk menjaga agar baik plaintext
maupun kunci ataupun keduanya tetap terjaga kerahasiannya dari penyadap
(disebut juga sebagai lawan, penyerang, pencegat, penyelundup pesan,
musuh, attacker dan sebagainya). Pencegat pesan rahasia diasumsikan
mempunyai akses yang lengkap ke dalam saluran komunikasi antara pengirim

5
Sigit Susilo NIM.23203127
Tugas Akhir Mata Kuliah Keamanan Sistem Lanjut
Dosen : Dr. Budi Rahardjo

dan penerima. Ini sangat mudah terjadi pada jalur internet dan saluran
telepon.
Cryptanalysis (analisis sandi) adalah ilmu untuk mendapatkan plaintext
pesan tanpa harus mengetahui kunci secara wajar. Pemecahan sandi rahasia
yang berhasil akan menghasilkan plaintext dan kunci. Analisis sandi juga
dapat menemukan kelemahan dalam kriptosistem yang pada akhirnya dapat
menemukan kunci atau plaintext. Kehilangan kunci melalui peralatan
noncryptanalytic disebut compromise. Dengan kata lain sandi merupakan
kebalikan dari kriptografi.Usaha analisis sandi disebut juga dengan attack
(serangan).
Lars Knudsen menggolongkan berbagai macam jenis pemecahan algoritma :
• Total break. Seorang analis berhasil menemukan kunci (K) yang
digunakan untuk melindungi data-data sedemikian sehingga D k (C) = P.

• Global deduction. Analis sandi mendapatkan algoritma alternatif A yang


ekivalen dengan D k (C) tanpa mengetahui K.

• Instance (local) deduction. Analis sandi mendapatkan algoritma plaintext


atau ciphertext yang disadap.
• Information deduction. Analis sandi memperoleh beberapa informasi
mengenai kunci atau plaintext. Informasi ini dapat berupa beberapa bit
kunci, atau sedikit informasi tentang bentuk plaintext dan sebagainya.
Kompleksitas serangan dapat diukur dalam berbagai cara :
• Data complexity .Jumlah data yang diperlukan sebagai input attack.
Semakin sedikit jumlah data yang diperlukan untuk melakukan attack,
berarti kualitas algoritma yang digunakan semakin tidak baik.
• Processing Complexity. Lama waktu yang tersedia untuk melakukan
attack. Ini sering disebut faktor kerja. Semakin cepat waktu yang
dibutuhkan, berarti semakin buruk kualitas algoritma yang digunakan.
• Storage requirements. Jumlah memori yang dibutuhkan untuk melakukan
attack.
Kompleksitas dinyatakan sebagai orde besarnya. Jika algoritma memiliki
kompleksitas 2 128 , maka sejumlah 2 128 operasi diperlukan untuk memecahkan
algoritma. Operasi ini mungkin komplek dan banyak menghabiskan waktu.

6
Sigit Susilo NIM.23203127
Tugas Akhir Mata Kuliah Keamanan Sistem Lanjut
Dosen : Dr. Budi Rahardjo

2.5 Macam-macam Algoritma Kriptografi


Ada dua jenis algoritma kriptografi berdasarkan jenis kuncinya, yaitu :
1) Algoritma Simetri (konvensional)
Adalah algoritma yang menggunakan kunci enkripsi yang sama
dengan kunci dekripsinya. Disebut konvensional karena algoritma ini
digunakan orang sejak dahulu. Algoritma simetri sering juga disebut
sebagai algoritma kunci rahasia, algoritma kunci tunggal atau
algoritma satu kunci dan mengharuskan pengirim dan penerima
menyetujui suatu kunci tertentu sebelum mereka dapat berkomunikasi
dengan aman. Keamanan algoritma simetri tergantung pada kunci,
membocorkan kunci berarti bahwa orang lain dapat mengenkrip dan
mendekrip pesan. Agar komunikasi tetap aman, kunci harus tetap
dirahasiakan. Yang termasuk algoritma kunci simetri adalah OTP,
DES, RC2, RC4, RC5, IDEA, Twofish, Magenta, FEAL, SAFER,
LOKI, CAST, Rijndael (AES), Blowfish, GOST, A5, Kasumi dan
lain-lainnya.
Key (K)

Plaintext Ciphertext Plaintext


Enkripsi Dekripsi
P C P

Gambar 2.1 Kriptografi Konvensional

Gambar 2.1 menggambarkan kriptografi simetri yang biasa disebut


dengan kriptografi kunci konvesional. Pesan plaintext P, misalkan
SIGIT dikodekan (dienkrip) menjadi ciphertext @&%#?
menggunakan password (kunci K) TES. Untuk mengembalikan cipher
@&%#? Menjadi SIGIT dilakukan proses dekripsi dengan kunci
yang sama yaitu TES. Karena kunci yang digunakan sama, maka
disebut kriptografi kunci simetri atau kriptografi konvensional. Dalam
dunia kriptografi password sering disebut sebagai kunci. Pesan asli
yang belum dikodekan disebut plaintext. Plaintext tidak harus berupa
teks, namun dapat berupa file gambar (gif, jpg), file biner (exe, com,

Sigit Susilo NIM.23203127


7
Tugas Akhir Mata Kuliah Keamanan Sistem Lanjut
Dosen : Dr. Budi Rahardjo

ocx), file suara (wav, mp3) dan sebagainya. File yang telah disandikan
disebut ciphertext. Enkripsi adalah proses pengubahan pesan asal
menjadi karakter yang tidak dapat dibaca. Sedangkan dekripsi adalah
proses pengubahan karakter yang tidak dapat dibaca menjadi pesan
asal.

Cryptanalyst K’
P’

P C P
Sumber Enkriptor Dekriptor Tujuan
Pesan K Saluran yang tidak aman

Saluran yang aman

Sumber
Kunci

Gambar 2.2 Lingkungan Kriptosistem Konvensional


Gambar 2.2 menggambarkan cipher C dikirimkan ke tujuan melalui
saluran yang umumnya tidak aman. Sedangkan kunci K sendiri harus
dikirimkan melalui saluran yang aman. Untuk mengirimkan kunci
dengan aman, pengirim dan penerima dapat bertemu dan menyepakati
kunci tertentu untuk dipakai bersama dalam komunikasi berikutnya.
Dalam saluran yang tidak aman ini, seorang penyerang dapat
menyadap cipher C dan kemudian melakukan dan kemudian
melakukan analisis untuk menemukan nilai P. Nilai K dan P perkiraan
yang dihasilkan oleh penyerang disebut sebagai K’ dan P’. Untuk
memudahkan penulisan dan analisis, kriptografi modern
menggunakan notasi matematika, dengan pesan asal P dan kode
rahasia C yang diperoleh dari enkripsi dengan kunci K, sehingga
penulisannya :
C = E K (P)

8
Sigit Susilo NIM.23203127
Tugas Akhir Mata Kuliah Keamanan Sistem Lanjut
Dosen : Dr. Budi Rahardjo

Notasi ini menyatakan bahwa C dihasilkan oleh fungsi enkripsi E


yang dioperasikan terhadap masukan P dengan kunci K, operasi ini
dilakukan di pengirim. Pada penerima dilakukan operasi sebaliknya
P = D K (C). Pemecah kode (cryptanalyst) sering kali hanya memiliki
C dan harus menemukan nilai P nya.
Algoritma simetri dapat dibagi dalam dua kategori. Jenis pertama
beroperasi pada plaintext yang berupa satu bit tunggal pada satu
waktu, yang disebut stream algorithms (algoritma aliran atau stream
ciphers). Jenis kedua beroperasi pada plaintext dalam grup bit-bit.
Grup bit-bit ini disebut blok, dan algoritmanya disebut sebagai
algoritma blok atau kode rahasia blok. Untuk algoritma komputer
modern ukuran blok dasarnya adalah 64 bit atau 128 bit, cukup besar
untuk menghindari analisis pemecahan kode dan cukup kecil agar
dapat bekerja dengan cepat. Sebelum pemakai komputer, algoritma
biasanya beroperasi pada plaintext, satu karakter per satu operasi. Kita
dapat mengatakan bahwa ini seperti algoritma aliran yang beroperasi
pada aliran karakter.

2) Algoritma Asimetri
Algoritma Asimetri juga disebut algoritma kunci publik. Kunci yang
digunakan untuk enkripsi berbeda dengan kunci yang digunakan
untuk dekripsi. Kunci dekripsi tidak dapat dihitung dari kunci
enkripsi. Algoritma disebut kunci publik karena kunci enkripsi dapat
dibuat publik yang berarti semua orang dapat mengetahuinya.
Sembarang orang dapat menggunakan kunci enkripsi tersebut untuk
mengenkrip pesan, namun hanya orang tertentu (calon penerima pesan
dan sekaligus pemilik kunci dekripsi yang merupakan pasangan kunci
publik) yang dapat melakukan dekripsi terhadap pesan tersebut.
Dalam sistem ini, kunci enkripsi sering disebut kunci publik,
sementara kunci dekripsi sering disebut kunci privat. Kunci privat
kadang-kadang disebut kunci rahasia.

9
Sigit Susilo NIM.23203127
Tugas Akhir Mata Kuliah Keamanan Sistem Lanjut
Dosen : Dr. Budi Rahardjo

Yang termasuk algoritma asimetri adalah ECC, LUC, RSA, El Gamal


dan DH.
Enkripsi dengan kunci publik Ke dinyatakan sebagai
E Ke (M) = C
Dengan kunci privat (Kd) sebagai pasangan kunci publik (Ke),
dekripsi dengan kunci privat yang bersesuaian dapat dinyatakan
dengan
D Kd (C) = M
Di sini Ke merupakan pasangan Kd. Artinya tidak ada Kd lain yang
dapat digunakan untuk melakukan dekripsi kode C yang merupakan
hail enkripsi dengan kunci Ke. Sebaliknya, pesan dapat dienkrip
dengan kunci privat dan didekrip dengan kunci publik. Metode ini
digunakan pada tanda tangan digital. Meskipun agak
membingungkan, operasi ini dapat dinyatakan sebagai
E Kd (M) = C

D Ke (C) = M

Artinya kunci privat dan kunci publik dapat digunakan secara


berlawanan dengan tujuan yang berbeda. Sifat ini hanya berlaku untuk
algoritma kunci publik tertentu, seperti RSA. Sifat ini tidak berlaku
untuk algoritma DH.

10
Sigit Susilo NIM.23203127
Tugas Akhir Mata Kuliah Keamanan Sistem Lanjut
Dosen : Dr. Budi Rahardjo

BAB III
ANALISIS SANDI DIFERENSIAL

Analisis sandi diferensial merupakan salah satu attack yang penting pada
kode blok kunci simetri modern yang berbasis komputer. Pembahasan
didasarkan pada analisis kode jaringan substitusi dan permutasi dasar yang
sederhana dan terstruktur. Pembahasan juga memberikan contoh attack secara
rinci. Memahami attack jenis ini sangat penting, karena kode Rijndael yang
dijadikan standar enkripsi terbaru Amerika Serikat, AES yang merupakan
pelanjut DES yang menjadi standar enkripsi dunia menggunakan arsitektur
SPN (Substitution Permutation Network).

3.1 Kode Sandi SPN Dasar


Kode rahasia yang disajikan menggunakan SPN dasar.

……. C16
……. P16

S14
S14

S14

S14
S13
Subkey K2 mixing

S13
Subkey K1 mixing

S13

Subkey K3 mixing

S13
Subkey K4 mixing

Subkey K4 mixing

Cipherext
Plaintext

S12
S12

S12

S12

C1 …….
P1 …….

S11

S11

S11

S11

Round 1 Round 2 Round 3 Round 4

Gambar 3.1 Kode Sandi SPN Dasar


Kode sandi SPN memiliki 16 masukan (16 bit plaintext) dan empat tahapan
enkripsi (4 ronde). Setiap ronde terdiri dari :
substitusi (kotak S11 …… S14)
transposisi (permutasi), misalnya bit ke 2 (keluaran tahap 1) menjadi
bit ke 5 (dari masukan ronde ke 2)
pencampuran kunci, setiap bit kunci di X-OR kan dengan plaintext
dan ciphertext sementara (keluaran kotak S)

11
Sigit Susilo NIM.23203127
Tugas Akhir Mata Kuliah Keamanan Sistem Lanjut
Dosen : Dr. Budi Rahardjo

3.2 Substitusi
Pada kode sandi ini plaintext 16 bit dipecah menjadi empat sub blok 4 bit.
Setiap sub blok menjadi masukan ke dalam kotak S 4x4 (kotak substitusi
dengan masukan 4 bit dan keluaran 4 bit), yang dengan mudah dapat
diimplementasikan dengan tabel lookup dari 16 nilai 4 bit, yang diberi indek
dengan integer yang dinyatakan dengan masukan 4 bit. Sifat yang paling
fundamental dari kotak S adalah memiliki pemetaan yang tidal linear,
sehingga keluaran kotak substitusi tidak dapat dinyatakan sebagai operasi
linear dari masukannya. Untuk kode sandi ini dapat menggunakan pemetaan
tidak linear yang sama untuk semua kotak S (pada DES, ke 8 kotak S dalam
satu ronde berbeda, sedangkan seluruh ronde menggunakan sekumpulan
kotak S yang sama). Analisis sandi diferensial dapat digunakan untuk semua
kasus ini. Pemetaan kotak S dicantumkan pada tabel 3.1, diambil dari kotak S
pertama dari baris pertama milik DES.
Tabel 3.1 Pemetaan Kotak Substitusi (dalam heksadesimal)
Masukan 0 1 2 3 4 5 6 7 8 9 A B C D E F
Keluaran E 4 D 1 2 F B 8 3 A 6 C 5 9 0 7

Dari tabel substitusi, bahwa jika masukan kotak S adalag F 16 = 1111 2 , maka

keluaran kotak S adalah 7 16 = 0111 2 dan jika masukan C 16 = 1100 2 , maka

keluarannya adalah 0101 2 = 5 16 .

3.3 Permutasi
Permutasi merupakan transposisi bit-bit atau pertukaran urutan bit. Jika
urutan bit-bit semula adalah 1, 2, 3, ….. 16 secara berurutan, maka setelah
permutasi urutan bit-bitnya menjadi 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15, 4, 8,
12, 16. Bit 1 menempati bit paling kiri. Setelah permutasi, bit ke 2 menjadi
bit ke 5, bit ke 3 menjadi bit ke 9 dan seterusnya.
Tabel 3.2 Permutasi
Masukan 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Keluaran 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16

12
Sigit Susilo NIM.23203127
Tugas Akhir Mata Kuliah Keamanan Sistem Lanjut
Dosen : Dr. Budi Rahardjo

Dalam Gambar 3.1, permutasi digambarkan dengn garis keluar setiap kotak S
yang dihubungkan ke 4 kotak S berikutnya.

3.4 Penyampuran Kunci


Untuk memberikan peran kepada kunci dalam proses enkrepsi dan
dekripsi, maka dilakukan penyampuran kunci yang dalam contoh berupa X-
OR antara bit-bit kunci (berupa subkey) dengan masukan blok data dalam
setiap ronde. Kunci yang terletak pada awal dan akhir ronde diberikan untuk
meningkatkan keamanan kode rahasia. Pada umumnya, kunci-kunci di atas
diturunkan dari kunci master yang lebih pendek melalui proses pengaturan
kunci. Pada contoh ini dianggap tidak ada proses pengaturan kunci, sehingga
kunci-kunci di atas dianggap dibuat secara independen dan tidak berkorelasi.

3.5 Dekripsi
Pada dekripsi, data dilewatkan secara terbalik dari proses enkripsi.
Pemetaan kotak S untuk dekrepsi juga kebalikan dari pemetaan untuk proses
enkripsi. Jadi kotak S haruslah bijektiv, yaitu merupakan pemetaan satu ke
satu. Urutan subkey pada dekripsi juga merupakan kebalikkan dari subkey
pada proses enkripsi.

3.6 Analisis Sandi Diferensial Terhadap Cipher SPN


Analisis sandi diferensial mengeksploitasi peluang yang besar dari
kejadian diferensial plaintext tertentu ke dalam ronde terakhir cipher.

3.6.1 Attack Dasar


Sebagai contoh, perhatikan system dengan masukan X = (X 1 ,
X 2 ….X n ) dan keluaran Y = (Y 1 , Y 2 ….Y n ). Ambil dua masukan ke

dalam sistem X’ dan X” dan dengan keluaran Y’ dan Y”. Diferensial


masukan adalah ∆ X = X’ ⊕ X”, dimana ⊕ menyatakan X-OR per bit
dari vektor n bit dan karena itu
∆ X = ( ∆ X 1 , ∆ X 2 …. ∆ X n )

13
Sigit Susilo NIM.23203127
Tugas Akhir Mata Kuliah Keamanan Sistem Lanjut
Dosen : Dr. Budi Rahardjo

dimana ∆ X i = X i ’ ⊕ X i ” dengan X i ’ dan X i ” menyatakan bit ke i dari

X i ’ dan X i ”. Demikian juga keluaran ∆ Y = ∆ Y’ ⊕ ∆ Y” adalah

diferensial keluaran, sedangkan


∆ Y = ( ∆ Y 1 , ∆ Y 2 …. ∆ Y n )

dimana ∆ Y i = Y i ’ ⊕ Y i ”.

Pada cipher yang diacak secara ideal, peluang terjadinya diferensial


keluaran tertentu ∆ Y, apabila diberikan diferensial masukan tertentu ∆ X
adalah 1/2 n dimana n adalah jumlah bit yang berada dalam X. Analisis
sandi diferensial mencari peluang sebesar mungkin, P D , dari diferensial
keluaran tertentu ∆ Y bila diberi diferensial masukan tertentu ∆ X, yaitu
mencari peluang yang jauh lebih besar dari 1/2 n . Pasangan ( ∆ X, ∆ Y) ini
disebut sebagai sebuah diferensial.
Analisis sandi diferensial merupakan attack plaintext yang dipilih
(chosen plaintext attack), yang berarti attacker dspst memilih (bukan
sekedar mengetahui seperti pada know plaintext attack), masukan, dan
memeriksa keluaran untuk menurunkan kuncinya. Pada analisis sandi
diferensial, attacker akan memilih pasangan-pasangan masukan, X’ dan
X”, untuk mendapatkan ∆ X tertentu, sebab dengan mengetahui nilai ∆ X,
nilai ∆ Y tertentu akan terjadi dengan peluang yang tinggi.
Susunan diferensial ( ∆ X, ∆ Y) yang mengandung bit-bit plaintext
X, dan masukan keronde terakhir cipher Y. Pemeriksaan sesuatu yang
berpeluang besar menjadi karakteristik diferensial, dimana karakteristik
diferensial adalah deretan diferensial masukan dan keluaran ke dalam
ronde-ronde, sehingga diferensial keluaran dari satu ronde berkaitan
dengan diferensial masukan dari ronde berikutnya. Karakteristik
diferensial memberi kesempatan untuk mengeksploitasi informasi yang
masuk ke ronde terakhir cipher, sehingga dapat memperoleh bit-bit dari
kunci lapis terakhir.
Seperti pada analisis sandi linear, dapat disusun sesuatu yang sangat
mungkin sebagai karakteristik diferensial, dapat pula diperiksa sifat setiap
kotak S dan menggunakan sifat ini untuk menentukan karakteristik

14
Sigit Susilo NIM.23203127
Tugas Akhir Mata Kuliah Keamanan Sistem Lanjut
Dosen : Dr. Budi Rahardjo

diferensial yang lengkap. Dan memeriksa diferensial masukan dan


keluaran kotak S untuk menentukan pasangan diferensial yang memiliki
peluang yang tinggi. Mengombinasikan pasangan diferensial dari kotak S
ronde demi ronde, sehingga bit-bit diferensial keluaran yang tidak nol dari
satu ronde berhubungan dengan bit-bit diferensial masukan tidak nol dari
ronde berikutnya, mengijinkan untuk mendapatkan peluang difeensial
yang tinggi, yang berisi diferensial plaintext, dan diferensial masukan
keronde terakhir. Bit-bit subkey cipher akhirnya menghilang dari ekspresi
diferensial ketika dimasukkan ke dalam set data, karena jika meneliti
pengaruh subkey terhadap diferensial, termasuk meng X-OR kan bit-bit
subkey dengan dirinya sendiri, akan menghasilkan nol.

3.6.2 Analisis Komponen Cipher


Sekarang memeriksa pasangan kotak S. Perhatikan kotak S 4x4
pada Gambar 3.2

masukan
X1 X2 X3 X4

4x4
S-box
(kotak S)

Y1 Y2 Y3 Y4
keluaran
Gambar 3.2 Pemetaan Kotak S
Masukan X = (X1, X2, X3, X4) dan keluaran Y = (Y1, Y2, Y3, Y4).
Seluruh pasangan diferensial dari kotak S, ( ∆ X, ∆ Y), dapat diperiksa
dan peluang ∆ Y jika diberi masukan ∆ X dapat diturunkan dengan
memeriksa pasangan masukan X’ dan X”, sehingga ∆ X = X’ ⊕ X”,
karena urutan pasangan tidak penting, untuk kotak S 4x4 hanya
membutuhkan 16 nilai X’ dan kemudian nilai ∆ X yang membatasi nilai
X”, sehingga X” = X’ ⊕ ∆ X.

15
Sigit Susilo NIM.23203127
Tugas Akhir Mata Kuliah Keamanan Sistem Lanjut
Dosen : Dr. Budi Rahardjo

Kotak S pada Gambar 2.2 dapat menurunkan nilai-nilai ∆ Y untuk


setiap pasangan masukan (X’, X” = X’ ⊕ ∆ X). Sebagai contoh, nilai
biner X, Y dan nilai-nilai yang berkaitan dengan ∆ Y jika diberikan
pasangan masukan (X, X ⊕ ∆ X) disajikan pada Tabel 2.3 untuk nilai-
nilai ∆ X = 1011 2 = B 16 , 1000 2 = 8 16 dan 0100 2 = 4 16 . Tiga kolom

terakhir dari tabel menyatakan nilai-nilai ∆ Y jika diberikan nilai X


(seperti yang diberikan oleh baris) dan nilai ∆ X tertentu untuk setiap
kolom. Dari tabel dapat dilihat bahwa jumlah kejadian ∆ Y = 0010 jika
∆ X = 1011 adalah 8 dari 16 kemungkinan nilai (jadi memiliki peluang
8/16), jumlah kejadian ∆ Y = 1011 jika ∆ X = 1000 adalah 4 dari 16
kemungkinan, jumlah kejadian ∆ Y = 1010 jika ∆ X = 0100 adalah 0 dari
16 kemungkinan. Jika kotak S dapat ideal, maka jumlah kejadian nilai
pasangan diferensial akan sama dengan 1 dari 16 untuk masing-masing
kejadian munculnya ∆ Y jika diberi masukan ∆ X.
Tabel 3.3 Pasangan Diferensial Kotak S
∆Y
X Y
∆ X = 1011 ∆ X = 1000 ∆ X = 0100
0000 1110 0010 1101 1100
0001 0100 0010 1110 1011
0010 1101 0111 0101 0110
0011 0001 0010 1011 1001
0100 0010 0101 0111 1100
0101 1111 1111 0110 1011
0110 1011 0010 1011 0110
0111 1000 1101 1111 1001
1000 0011 0010 1101 0110
1001 1010 0111 1110 0011
1010 0110 0010 0101 0110
1011 1100 0010 1011 1011
1100 0101 1101 0111 0110
1101 1001 0010 0110 0011
1110 0000 1111 1011 0110
1111 0111 0101 1111 1011

16
Sigit Susilo NIM.23203127
Tugas Akhir Mata Kuliah Keamanan Sistem Lanjut
Dosen : Dr. Budi Rahardjo

Tabel 3.4 merupakan data lengkap untuk sebuah kotak S, dimana baris
menyatakan nilai ∆ X (dalam heksadesimal), sedangkan kolom
menyatakan ∆ Y (dalam heksadesimal). Setiap elemen dalam tabel
meyatakan jumlah kejadian diferensial keluaran ∆ Y jika diberi masukan
∆ X. Perhatikan bahwa disampung kasus khusus ( ∆ X= 0, ∆ Y = 0), nilai
terbesar dalam tabel adalah 8, yang dihasilkan oleh masukan ∆ X = B 16
dan keluaran ∆ Y = 2. Jadi, peluang bahwa ∆ Y = 2 jika diberi sembarang
pasangan masukan yang memenuhi ∆ X = B 16 , adalah 8/16. Nilai terkecil

dalam tabel adalah 0 dan terjadi pada banyak pasangan diferensial. Pada
kasus ini, peluang munculnya nilai ∆ Y jika diberikan ∆ X adalah 0
Tabel 3.4 Distribusi Diferensial
OUTPUT DIFFERENCE
0 1 2 3 4 5 6 7 8 9 A B C D E F
0 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 2 0 0 0 2 0 2 4 0 4 2 0 0
2 0 0 0 2 0 6 2 2 0 2 0 0 0 0 2 0
3 0 0 2 0 2 0 0 0 0 4 2 0 2 0 0 4
4 0 0 0 2 0 0 6 0 0 2 0 4 2 0 0 0
5 0 4 0 0 0 2 2 0 0 0 4 0 2 0 0 2
6 0 0 0 4 0 4 0 0 0 0 0 0 2 2 2 2
Input Difference

7 0 0 2 2 2 0 2 0 0 2 2 0 0 0 0 4
8 0 0 0 0 0 0 2 2 0 0 0 4 0 4 2 2
9 0 2 0 0 2 0 0 4 2 0 2 2 2 0 0 0
A 0 2 2 0 0 0 0 0 6 0 0 2 0 0 4 0
B 0 0 8 0 0 2 0 2 0 0 0 0 0 2 0 2
C 0 2 0 0 2 2 2 0 0 0 0 2 0 0 0 0
D 0 4 0 0 0 0 0 4 2 0 2 0 2 0 2 0
E 0 0 2 4 2 0 0 0 6 0 0 0 0 0 2 0
F 0 2 0 0 0 0 0 0 0 4 0 2 0 0 2 0

Terdapat beberapa sifat umum pada tabel distribusi diferensial yang


seharusnya diperhatikan. Pertama, perlu dicatat bahwa jumlah seluruh
elemen dalam satu baris adalah 2 n = 16, demikian pula jumlah setiap
kolom adalah 2 n = 16. Demikian pula seluruh nilai seluruh elemen, genap
: hasil ini muncul karena setiap nilai pasangan masukan (atau keluaran)
yang dinyatakan sebagai (X’, X”) memiliki nilai ∆ X yang sama seperti
pasangan (X”, X’) karena ∆ X = X’ ⊕ X” = X” ⊕ X’. Juga diferensial

17
Sigit Susilo NIM.23203127
Tugas Akhir Mata Kuliah Keamanan Sistem Lanjut
Dosen : Dr. Budi Rahardjo

masukan ∆ X = 0 akan mengakibatkan ∆ Y = 0 untuk pemetaan kotak S


satu ke satu. Karena itu ujung kiri atas dalah tabel memiliki nilai 2 n = 16
sedangkan nilai-nilai lainnya pada baris pertama dan kolom pertama = 0.
Akhirnya, jika dapat membuat kotak S yang ideal, yang tidak
memberikan informasi diferensial mengenai keluaran apabila diberikan
masukan tertentu, kotak S akan memiliki seluruh elemen yang bernilai 1
dalam table, dan peluang kejadian munculnya ∆ Y jika diberi ∆ X tertentu
n
akan menjadi 1/2 = 1/16. Namun seperti yang sudah dibahas di atas, hal
ini tidak mungkin dicapai.
Sebelum membahas kombinasi pasangan diferensial kotak S untuk
menurunkan karakteristik diferensial dan kemudian memperkirakan
diferensial yang bagus untuk digunakan dalam attack, haruslah dibahas
pengaruh kunci terhadap diferensial kotak S. Lihat Gambar 3.3 masukan
kotak S yang tidak diberi kunci adalah X, sedangkan keluarannya Y.
Namun, dalam

W1 W2 W3 W4
K1
K2
K3
K4

X1 X 2 X3 X4

4x4
S-box
(kotak S)

Y1 Y2 Y3 Y4
Gambar 3.3 Kotak S berkunci
Struktur cipher, harus diperhatikan kunci yang digunakan pada
masukan setiap kotak S. Dalam kasus ini, jika dinamakan masukan ke
kotak S yang berkunci ini sebagai W = (W1, W2, W3, W4), maka dapat
diperiksa diferensial masukan ke kotak S yang berkunci ini sebagai
berikut :
∆ W = (W1’ ⊕ W1”, W2’ ⊕ W2”, ….. Wn’ ⊕ Wn”)

18
Sigit Susilo NIM.23203127
Tugas Akhir Mata Kuliah Keamanan Sistem Lanjut
Dosen : Dr. Budi Rahardjo

dimana W’ = (W1’, W2’ ……Wn’) dan W” = (W1”, W2” ……Wn”)


menyatakan dua nilai masukan. Karena bit-bit kunci sama untuk kedua
masukan W’ dan W”, maka
∆ Wi = Wi’ ⊕ Wi”, = (Wi’ ⊕ Ki) ⊕ ( Xi” ⊕ Ki)
= Xi’ ⊕ Xi” = ∆ Xi
Karena Ki ⊕ Ki = 0, maka bit-bit kunci tidak memiliki pengaruh terhadap
nilai diferensial masukan dan dapat diabaikan. Dengan kata lain, kotak S
yang diberi kunci memiliki tabel distribusi diferensial yang sama seperti
kotak S yang tidak diberi kunci.

3.6.3 Menyusun Karakteristik Diferensial


Jika telah dibentuk informasi diferensial kotak-kotak substitusi pada
SPN, berarti sudah memiliki data untuk diolah lebih lanjut dengan
menentukan karakteristik diferensial keseluruhan cipher yang bermanfaat.
Ini dapat dilakukan dengan menggabungkan pasangan diferensial kotak S
yang tepat. Dengan menyusun karakteristik diferensial dari pasangan
diferensial kotak S tertentu dalam setiap ronde, sehingga suatu diferensial
mengandung bit-bit plaintext dan bit-bit data masukan kotak S dari ronde
terakhir, adalah mungkin untuk melakukan attack terhadap cipher dengan
mencari subset dari bit-bit subkey yang mengiringi ronde terakhir. Contoh
penyusunan sebuah karakteristik diferensial menggunakan S12, S23, S32,
S33 seperti pada Gambar 3.4, menggambarkan karakteristik diferensial
dalam bentuk diagram. Diagram tersebut menunjukkan pengaruh
diferensial bukan nol ketika melintasi jaringan, menggaristebalkan (warna
merah) kotak S yang mungkin dianggap sebagai kotak S aktif (yaitu yang
mengandung diferensial tidak nol). Ini akan membentuk karakteristik
diferensial untuk tiga ronde cipher dan bukannya empat ronde penuh.
Sehingga dapat dilihat bagaimana hal ini berguna untuk menurunkan bit-
bit dari subkey terakhir. Adapun penggunaan pasangan diferensial Kota S
adalah : S12 : ∆ X = B ∆ Y = 2 dengan peluang 8/16
S23 : ∆ X = 4 ∆ Y = 6 dengan peluang 6/16
S32 : ∆ X = 2 ∆ Y = 5 dengan peluang 6/16

19
Sigit Susilo NIM.23203127
Tugas Akhir Mata Kuliah Keamanan Sistem Lanjut
Dosen : Dr. Budi Rahardjo

S33 : ∆ X = 2 ∆ Y = 5 dengan peluang 6/16

0 0 0 0

S34
S14

S24

S44
0 0 0 0

S23

S33
Subkey K1 mixing

S13

S43
Subkey K2 mixing

Subkey K4 mixing
Subkey K3 mixing

Subkey K4 mixing
∆P
1 0 1 1

S42
S22
S12

S32
0 0 0 0

S11

S21

S31

S41
Round 1 Round 2 Round 3 Round 4

Gambar 3.4 Karakteristik Diferensial


Semua kotak S lain akan memiliki diferensial masukan nol dan
mengakibatkan diferensial keluarannya juga nol.
Diferensial masukan ke cipher ekivalen dengan diferensial masukan
ke dalam ronde dan ditulis sebagai berikut :
∆ P = ∆ U1= (0000 0010 0000 0000) 2
dimana digunakan Ui untuk menyatakan masukan ke kotak-S ronde ke-I
dan Vi untuk menyatakan keluaran kotak-S ronde ke-i. Karena itu, ∆ Ui
dan ∆ Vi menyatakan diferensial yang berkaitan, hasilnya :
∆ Vi = (0000 0010 0000 0000) 2
Dari pasangan diferensial untuk S12 yang dituliskan di atas, dan
mengikuti permutasi ronde-1 akan diperoleh :
∆ U2 = (0000 0000 0100 0000) 2
dengan peluang 8/16 = ½, jika diberi masukan diferensial plaintext ∆ P.
Kemudian, diferensial pada ronde kedua menggunakan pasangan
diferensial kotak S23 yang menghasilkan
∆ V2 = (0000 0000 0110 0000) 2
dan permutasi pada ronde kedua memberikan
∆ U3 = (0000 0010 0010 0000) 2

20
Sigit Susilo NIM.23203127
Tugas Akhir Mata Kuliah Keamanan Sistem Lanjut
Dosen : Dr. Budi Rahardjo

dengan peluang 6/16 jika diberi ∆ U2 dan dengan peluang 6/16 x 6/16 =
3/16 jika diberi ∆ P, diasumsikan bahwa diferensial ronde pertama saling
bebas dengan diferensial ronde kedua, dan karena itu peluang yang terjadi
dapat ditentukan dari hasil kali peluangnya.
Kemudian menggunakan diferensial kotak-S ronde ketiga, S32 dan S33,
serta permutasi ronde ketiga, menghasilkan
∆ V3 = (0000 0101 0101 0000) 2 dan
∆ U4 = (0000 0110 0000 0110) 2

dengan peluang (6/16) 2 jika diberi ∆ U3 dan karena itu peluangnya (8/16)
x (6/16) x (6/16) 2 = (27/1024) jika diberi ∆ P, dimana telah dianggap
saling bebas antas pasangan diferensial kotak-S dalam seluruh ronde.
Selama proses analisis sandi sejumlah pasangan plaintext yang
memenuhi ∆ P = (0000 1011 0000 0000) 2 akan dienkrip. Dengan peluang
yang tinggi. 27/1024, karakteristik diferensial yang digambarkan akan
terjadi, disebut pasangan ∆ P yang demikian sebagai pasangan benar.
Pasangan diferensial plaintext yang karakteristiknya tidak terjadi disebut
sebagai pasangan salah.

3.6.4 Mendapatkan Bit Kunci


Dengan karakteristik diferensial yang berasal dari (R-1) ronde dari
cipher R ronde, dan dengan peluang yang cukup besar, dapat meng-attack
cipher dengan mencari nilai bit-bit subkey setelah ronde terakhir. Untuk
cipher dapat diperoleh K5. Prosesnya mencakup dekripsi parsial ronde
terakhir (dengan arah dari cipher ke plaintext), kemudian memeriksa
masukan keronde terakhir untuk menentukan apakah pasangan benar
terjadi. Merujuk pada bit-bit subkey yang mengiringi ronde terakhir pada
keluaran kotak-S dalam ronde terakhir yang dipengaruhi oleh diferensial
tidak nol, meng-X-OR-kan ciphertext dengan bit-bit target partial subkey
dan menjalankan data ke depan (kearah plaintext) melalui kotak-S dimana
seluruh nilai yang mungkin untuk bit subkey akan dicoba.
Dekripsi parsial akan dilakukan untuk setiap pasang ciphertext yang
berkaitan dengan pasangan plaintext yang digunakan untuk

21
Sigit Susilo NIM.23203127
Tugas Akhir Mata Kuliah Keamanan Sistem Lanjut
Dosen : Dr. Budi Rahardjo

membangkitkan diferensial masukan ∆ P untuk seluruh nilai target


partial subkey yang mungkin. Sebuah penghitung digunakan untuk setiap
nilai target partial subkey. Penghitung dinaikkan satu angka apabila
diferensial masukan keronde=ronde terakhir sesuai dengan nilai yang
diharapkan dari karakteristik diferensial. Nilai subkey parsial yang
memiliki nilai penghitung terbesar dianggap menunjukkan nilai bit-bit
subkey yang benar. Proses akan berjalan baik, karena diasumsikan bahwa
nilai subkey parsial akan menghasilkan diferensial keronde terakhir yang
sering terjadi, yang diharapkan berasal dari karakteristik (yaitu kejadian
pasangan benar), karena karakteristik memiliki peluang terjadi yang
tinggi (ketika pasangan salah terjadi, bahkan meskipun dihasilkan oleh
dekripsi parsial dengan subkey yang benar, penghitung subkey yang benar
mungkin tidak akan dinaikkan). Subkey yang salah dianggap akan
menghasilkan terkaan yang relatif acak pada bit-bit yang memasuki
kotak-S pada ronde terakhir dan sebagai hasilnya, diferensial yang
diharapkan berasal dari karakteristik akan memiliki peluang yang sangat
kecil.
Jika diperhatikan attack pada contoh cipher, karakteristik diferensial
mempengaruhi masukan ke kotak-S, S42 dan S44 pada ronde terakhir.
Untuk setiap pasang ciphertext, akan dicoba seluruh nilai (256) subkey
parsial (K 5,5 ….K 5,8 , K 5,13 ….K 5,16 ). Untuk setiap nilai subkey parsial,

akan menaikkan penghitung satu angka, ketika diferensial masukan


keronde terakhir yang ditentukan oleh dekripsi parsial, dimana ditentukan
nilai ( ∆ U 4,5 … ∆ U 4,8 , ∆ U 4,13 … ∆ U 4,16 ) dengan menjalankan ciphertext

mundur melalui subkey parsial dan melewati kotak-S S24 dan S24. Untuk
setiap nilai subkey parsial, penghitung menyatakan jumlah kejadian
diferensial yang konsisten dengan pasangan benar (dengan anggapan
bahwa subkey parsialnya merupakan nilai yang benar). Jumlah yang
terbesar dianggap sebagai nilai yang benar, karena menganggap kejadian
pasangan benar dengan peluang yang tinggi.
Jika diperhatikan tidak perlu menjalankan dekripsi parsial untuk
setiap pasangan ciphertext, karena diferensial masukan keronde terakhir

22
Sigit Susilo NIM.23203127
Tugas Akhir Mata Kuliah Keamanan Sistem Lanjut
Dosen : Dr. Budi Rahardjo

hanya mempengaruhi dua kotak-S, ketikakarakteristik terjadi (yaitu untuk


pasangan benar), diferensial bit ciphertext yang berkaitan dengan kotak-S
lain, yaitu S41 dan S43 harus nol. Karena dapat memfilter banyak
pasangan salah dengan membuang pasangan ciphertext yang tidak
memiliki diferensial ciphertext nol pada sub-blok yang tepat. Dalam
kasus ini, karena pasangan ciphertext tidak dapat menghasilkan pasangan
benar, maka tidak perlu memeriksa ( ∆ U 4,5 … ∆ U 4,8 , ∆ U 4,13 … ∆ U 4,16 ).

Attack terhadap cipher dapat disimulasikan dengan membangkitkan


secara acak 5000 pasang plaintext/ciphertext (atau 10000 enkripsi dengan
pasangan plaintext yang memenuhi ∆ P = (0000 1011 0000 0000) 2 dan
dienkrip dengan kunci acak, dan kemudian mengikuti prosedur di atas.
Nilai subkey parsial target yang tepat adalah (K 5,5 ….K 5,8 , K 5,13 ….K 5,16 )

= (0010, 0100) 2 = (2,4) 16 . Seperti diharapkan, counter terbesar dimiliki

oleh nilai subkey parsial (2,4) 16 , menunjukkan bahwa attack berhasil

mendapatkan bit-bit subkey.


Tabel 3.5 Hasil Attack Diferensial
Partial subkey Partial subkey
Probability Probability
(K5,5..K5,8..K5,13..K5,16) (K5,5..K5,8..K5,13..K5,16)

1C 0,0000 2A 0,0032

1D 0,0000 2B 0,0022

1E 0,0000 2C 0.0000

1F 0,0000 2D 0,0000

20 0,0000 2E 0,0000

21 0,0136 2F 0,0000

22 0,0068 30 0,0004

23 0,0068 31 0,0000

24 0,0244 32 0,0004

25 0.0000 33 0,0004

26 0,0068 34 0,0000

27 0,0068 35 0,0004

28 0,0030 36 0,0000

29 0,0024 37 0,0008

23
Sigit Susilo NIM.23203127
Tugas Akhir Mata Kuliah Keamanan Sistem Lanjut
Dosen : Dr. Budi Rahardjo

Tabel 3.5 menyoroti sebagian data yang diturunkan dari penghitung


subkey (data lengkap mencakup 256 entri data, satu untuk setiap nilai
subkey parsial). Nilai-nilai dalam tabel menunjukkan peluang perkiraan
terjadinya pasangan benar untuk calon subkey parsial yang diturunkan
dari prob = count/5000, dimana count adalah penghitung yang berkaitan
dengan nilai subkey parsial tertentu. Dalam contoh, mengharapkan
peluang terjadinya pasangan benar adalah pasangan diferensial = 27/1024
= 0,0264 dan didapatkan dari percobaan, peluangnya adalah 0,0244 untuk
nilai subkey yang benar (2,4) 16 . Satu nilai yang sangat berdekatan.
Kadang-kadang dihasilkan nilai counter yang besar, yang dijumpai pada
subkey parsial target yang tidak benar. Ini menunjukkan bahwa
pemeriksaan subkey parsial target yang tidak benar tidak ekivalen dengan
perbandingan diferensial acak terhadap diferensial yang diharapkan.
Terdapat beberapa faktor yang mempengaruhi counter menjadi tidak
seperti yang diharapkan, diantaranya adalah pengaruh sifat kotak-S yang
berbeda terhadap dekripsi parsial untuk subkey parsial yang berbeda.
Ketidak-tepatan asumsi saling bebas yang diperlukan untuk menentukan
peluang karakteristik, dan konsep bahwa diferensial merupakan gabungan
dari banyak karakteristik diferensial yang lain.

24
Sigit Susilo NIM.23203127
Tugas Akhir Mata Kuliah Keamanan Sistem Lanjut
Dosen : Dr. Budi Rahardjo

BAB IV
KESIMPULAN

Dari hasil penulisan tugas akhir mata kuliah Keamanan Sistem Lanjut
yang berjudul Analisis Sandi Diferensial Terhadap Cipher SPN, dapat dibuat
kesimpulannya sebagai berikut :
• Analisis sandi diferensial ini menggunakan kotak-S yang memiliki
diferensial masukan tidak nol, oleh karena itu kotak- S akan
memberikan diferensial keluaran tidak nol. Kotak-S semacam ini
disebut sebagai kotak-S aktif.
• Semakin besar peluang diferensial dari setiap kotak-S yang aktif,
maka semakin besar pula peluang karakteristik keseluruhan cipher.
• Pendekatan untuk memberikan ketahanan terhadap analisis sandi
diferensial difokuskan pada sifat kotak-S, yaitu meminimalkan
peluang pasangan diferensial kotak-S dan mencari struktur untuk
memaksimalkan jumlah kotak-S yang aktif.
• Untuk membuktikan terhadap analisis sandi diferensial, diperlukan
pembuktian bahwa peluang seluruh diferensial berada di bawah nilai
batas tertentu yang dapat diterima, bukan hanya peluang seluruh
karakteristik diferensial di bawah batas yang dapat diterima.

25
Sigit Susilo NIM.23203127
Tugas Akhir Mata Kuliah Keamanan Sistem Lanjut
Dosen : Dr. Budi Rahardjo

DAFTAR PUSTAKA

1. Budi Rahardjo, Keamanan Sistem Informasi Berbasis Internet, PT Insan


Infonesia-Bandung & PT INDOCISC-Jakarta, 2002.
http://budi.insan.co.id
2. Bruce Schneier, Applied Cryptography, second edition, John Wiley &
Sons, Inc, 1996.
3. Bruce Schneier, "Self-Study Course in Block Cipher Cryptanalysis
(http://www.schneier.com/paper-self-study.html)", Cryptologia, 24(1)
(January 2000), pp. 18–34.
4. Eli Biham, Adi Shamir, Differential Cryptanalysis of the Data Encryption
Standard, Springer Verlag, 1993
5. http://www.encyclopedia the free dictionary.com/khazad%20(cipher)
6. http://www.encyclopedia the free dictionary.com/spn
7. http://www.wardiq.com/definition/block-cipher
8. http://www.wardiq.com/definition/spn
9. http://www.webster-dictionary.org/definition/block%20cipher
10. http://www.engr.mun.ca/-howard/Research/papers/ldc_tutorial.html

26
Sigit Susilo NIM.23203127

You might also like