Back to IF4020 Kriptografi
Teori Bilangan untuk Kriptografi
Questions/Cues
- Cabang matematika apa saja yang menjadi landasan kriptografi?
- Bagaimana mendefinisikan operasi
mod, termasuk untuk bilangan negatif?- Apa itu kekongruenan (congruence) dan notasi ?
- Apa arti dua bilangan “relatif prima” dan bagaimana perannya?
- Apa itu balikan (invers) modulo dan kapan ia ada?
- Mengapa bilangan prima penting untuk kriptografi?
Reference Points
- IF4020 Kriptografi — Landasan Matematika untuk Kriptografi (Slides 1-3)
Materi Matematika untuk Kriptografi
Kriptografi berdiri di atas lima cabang matematika:
- Teori Bilangan — integer dan aritmetika modulo, algoritma Euclidean, kekongruenan, relatif prima, balikan (invers) modulo, bilangan prima.
- Probabilitas dan Statistik — untuk analisis frekuensi dan menilai keacakan.
- Kompleksitas algoritma — untuk menilai apakah sebuah serangan “layak” secara komputasi.
- Teori Informasi — entropi dan ukuran ketidakpastian pesan (lihat Teori Informasi dan Entropi).
- Aljabar abstrak — grup, ring, dan field; dibahas kelak pada materi ECC (Elliptic Curve Cryptography).
Poin 1–3 sudah dipelajari di Matematika Diskrit dan Probabilitas & Statistik; catatan ini merangkumnya kembali dalam konteks kriptografi.
Aritmetika Modulo
adalah sisa pembagian oleh , dengan hasil selalu berada di rentang . Untuk bilangan negatif, tambahkan kelipatan hingga hasilnya non-negatif.
- — karena .
- — karena , lalu .
Operasi ini adalah inti setiap cipher klasik: Caesar cipher bekerja
mod 26untuk alfabet danmod 256untuk ASCII.Kekongruenan (Congruence)
dibaca ” kongruen modulo ”, artinya membagi habis , atau dan bersisa sama bila dibagi .
- — karena .
- — karena .
Relatif Prima (Coprime)
Dua bilangan bulat relatif prima bila (dalam notasi Indonesia: ) — tidak punya faktor bersama selain 1.
- dan relatif prima sebab .
dihitung efisien dengan algoritma Euclidean: , diulang hingga sisa 0. Syarat relatif prima muncul di Affine cipher (kunci harus relatif prima dengan ukuran alfabet ) dan RSA.
Balikan (Invers) Modulo
adalah bilangan sedemikian sehingga .
- — karena .
- — karena .
Invers modulo hanya ada bila , dan dihitung dengan extended Euclidean algorithm. Invers modulo dipakai pada dekripsi Affine cipher (), Hill cipher (invers matriks mod 26), dan RSA (menghitung kunci privat ).
Bilangan Prima
Bilangan prima adalah bilangan bulat yang hanya habis dibagi 1 dan dirinya sendiri. Kriptografi kunci publik modern (RSA, Diffie-Hellman, ElGamal) bergantung pada sifat bilangan prima besar dan kesulitan memfaktorkan hasil kali dua prima besar.
flowchart LR M["Aritmetika modulo"] --> Caesar["Caesar & Vigenere<br/>(mod 26 / 256)"] RP["Relatif prima (gcd = 1)"] --> Affine1["Affine: kunci m"] INV["Invers modulo"] --> Affine2["Affine & Hill: dekripsi"] INV --> RSA1["RSA: kunci privat d"] PR["Bilangan prima"] --> RSA2["RSA, Diffie-Hellman, ElGamal"]Latihan
- (a) → , jadi 9 (cek: ).
- (b) → ; cari → (sebab ). Jadi .
Kriptografi bertumpu pada lima cabang matematika; tiga di antaranya — teori bilangan, probabilitas/statistik, kompleksitas — sudah dari Matdis & Probstat. Aritmetika modulo ( selalu di ) adalah mesin setiap cipher klasik. Kekongruenan berarti . Dua bilangan relatif prima bila (dihitung dengan algoritma Euclidean), syarat yang dituntut kunci Affine cipher dan RSA. Invers modulo memenuhi , ada hanya bila , dan dipakai untuk dekripsi Affine, Hill, serta menghitung kunci privat RSA. Bilangan prima besar menopang kriptografi kunci publik. Landasan ini dipakai langsung di Caesar Cipher dan ROT13, Playfair dan Affine Cipher, dan Hill Cipher dan Enigma Cipher.
Additional Information
Extended Euclidean Algorithm
Selain menghitung , algoritma Euclidean yang diperluas menghasilkan bilangan dengan . Bila , maka adalah . Inilah cara praktis mencari invers modulo tanpa mencoba satu per satu — kompleksitasnya .
Fungsi Euler dan Teorema Kecil Fermat
(totient Euler) menghitung banyak bilangan yang relatif prima dengan . Bila prima, . Teorema Euler: untuk — fondasi korektness RSA. Kasus khususnya, Teorema Kecil Fermat: .
Proyek Eksplorasi Mandiri
- Implementasikan
gcd,extended_gcd, danmodinvdari nol, lalu pakaimodinvuntuk mendekripsi Affine cipher.- Tulis saringan Eratosthenes dan uji primalitas Miller–Rabin; bandingkan kecepatannya untuk mencari prima 512-bit.
Bacaan Lanjutan
- Rinaldi Munir, Matematika Diskrit, Informatika Bandung — bab Teori Bilangan.
- Handbook of Applied Cryptography, Bab 2 (Number Theory) dan Bab 4 (Public-Key Parameters).