10 kriptografi
TRANSCRIPT
-
8/6/2019 10 Kriptografi
1/57
Kriptografi
Pengantar Teknologi Informasi
-
8/6/2019 10 Kriptografi
2/57
Pengantar Teknologi Informasi 1
Definisi
Kriptografi adalah :
ilmu yang mempelajari teknik-teknikmatematika yang berhubungan dengan aspek
keamanan informasi seperti kerahasiaan data,
keabsahan data, integritas data serta autentikasi
data
-
8/6/2019 10 Kriptografi
3/57
Pengantar Teknologi Informasi 2
Aspek Keamanan Informasi1. Kerahasiaan
layanan yang digunakan untuk menjaga isi informasi dari siapapunkecuali yang memiliki otoritas atau kunci rahasia untukmembuka/mengupas informasi yang telah disandi.
2. Integritas data
berhubungan dengan penjagaan dari perubahan data secara tidak sah,sistem harus memiliki kemampuan untuk mendeteksi manipulasi
data oleh pihak-pihak yang tidak berhak (seperti penyisipan,penghapusan, dan pensubsitusian data lain kedalam data yangsebenarnya)
3. Autentikasi
berhubungan dengan identifikasi/pengenalan, baik secara kesatuansistem maupun informasi itu sendiri. Dua pihak yang saling
berkomunikasi harus saling memperkenalkan diri. Informasi yangdikirimkan melalui kanal harus diautentikasi keaslian, isi datanya,waktu pengiriman, dan lain-lain.
4. Non-repudiasi atau nirpenyangkalan
usaha untuk mencegah terjadinya penyangkalan terhadappengiriman/terciptanya suatu informasi oleh yangmengirimkan/membuat.
-
8/6/2019 10 Kriptografi
4/57
Pengantar Teknologi Informasi 3
Kriptografi
Kriptografi adalah ;
Ilmu yang mempelajari seluk beluk enkripsi dandeskripsi
Kriptoanalis adalah :
Orang yang berusaha memecahkan kode
enkripsi tanpa kuncinya
-
8/6/2019 10 Kriptografi
5/57
Pengantar Teknologi Informasi 4
Komponen Kriptografi
Plain text
Sumber berita/pesan/teks asli
Cipher textTeks yang sudah diproses (diacak, digantikan)
Algoritma & kunci
Misal: subsitusi (algoritma) & number of shift(kunci)
Pemisahan alg & kunci ditemukan oleh Auguste
Kerckhoffs von Niewenhof (1883)
-
8/6/2019 10 Kriptografi
6/57
Pengantar Teknologi Informasi 5
Enkripsi Enkripsi adalah :
Proses yang mengubah data menjadi kode yang tidak
dimengerti (tidak terbaca) Enkripsi digunakan untuk menyandikan data-data
atau informasi sehingga tidak dapat dibaca olehorang yang tidak berhak
Enkripsi menggunakan algoritma untuk
mengubah data atau pesan asli (plain text)menjadi bentuk yang terenkripsi (cipher text)
Deskripsi adalah :Proses untuk mengubah cipher text menjadi plain text
-
8/6/2019 10 Kriptografi
7/57
Pengantar Teknologi Informasi 6
Outline Algoritma sandi
Algoritama sandi kunci simetris Block-Cipher
Stream-Cipher Algoritma-algoritma sandi kunci simetris
Algoritma Sandi Kunci Asimetris Fungsi Enkripsi dan Dekripsi Algoritma Sandi Kunci
Asimetris
Algoritma-algoritma sandi kunci asimetris Fungsi Hash Kriptografis
Sifat-sifat fungsi Hash kriptografi
Algoritma-algoritma fungsi hash kriptografi
-
8/6/2019 10 Kriptografi
8/57
Pengantar Teknologi Informasi 7
Algoritma Sandi
Algoritma sandi adalahalgoritma yang berfungsi untuk melakukan tujuankriptografis
Algoritma tersebut harus memiliki kekuatanuntuk melakukan : konfusi/pembingungan (confusion), dari teks terang sehingga
sulit untuk direkonstruksikan secara langsung tanpamenggunakan algoritma dekripsinya
difusi/peleburan (difusion), dari teks terang sehingga
karakteristik dari teks terang tersebut hilang Kriptanalisa adalah :
teknik dan metode untuk menguji kehandalan algoritmasandi
-
8/6/2019 10 Kriptografi
9/57
Pengantar Teknologi Informasi 8
Klasifikasi Algoritma Sandi Berdasarkan kesamaan kuncinya :
Kunci-simetris (symetric key), sering disebut jugaalgoritma sandi konvensional karena umumnyaditerapkan pada algoritma sandi klasik
Kunci-asimetris (asymetric key) Berdasarkan arah implementasi dan pembabakan
jamannya : Algoritma sandi klasik (classic cryptography)
Algoritma sandi modern (modern cryptography)
Berdasarkan kerahasiaan kuncinya : Algoritma sandi kunci rahasia (secret key)
Algoritma sandi kunci publik (public key)
-
8/6/2019 10 Kriptografi
10/57
-
8/6/2019 10 Kriptografi
11/57
Pengantar Teknologi Informasi 10
Kripto Kunci Privat
(secret key, symmetric cryptosystem)
-
8/6/2019 10 Kriptografi
12/57
Pengantar Teknologi Informasi 11
Kripto Kunci Privat Menggunakan satu kunci
Masalah dalam distribusi kunci Pengiriman kunci membutuhkan saluran khusus
Jumlah kunci meledak secara eksponensial:n (n-1)/2
Keuntungan: operasi yang cepat
Contoh: DES, IDEA, AES
-
8/6/2019 10 Kriptografi
13/57
Pengantar Teknologi Informasi 12
Meledaknya Jumlah Kunci
-
8/6/2019 10 Kriptografi
14/57
Pengantar Teknologi Informasi 13
Block-Cipher Block-cipher adalah
skema algoritma sandi yang akan membagi-bagi teks terangyang akan dikirimkan dengan ukuran tertentu (disebut blok)dengan panjang t, dan setiap blok dienkripsi denganmenggunakan kunci yang sama.
Block-cipher memproses teks terang dengan blok yang relatifpanjang lebih dari 64bit, untuk mempersulit penggunaan pola-pola serangan yang ada untuk membongkar kunci.
Untuk menambah kehandalan model algoritma sandi ini,dikembangkan beberapa tipe proses enkripsi
Electronic Code Block (ECB) Cipher Block Chaining (CBC)
Output Feed Back (OFB)
Cipher Feed Back (CFB)
-
8/6/2019 10 Kriptografi
15/57
Pengantar Teknologi Informasi 14
Stream-Chiper Stream-cipher adalah
Algoritma sandi yang mengenkripsi data
persatuan data, seperti bit, byte, nible atau per
lima bit (saat data yang di enkripsi berupa data
Boudout).
Setiap mengenkripsi satu satuan data di
gunakan kunci yang merupakan hasilpembangkitan dari kunci sebelum
-
8/6/2019 10 Kriptografi
16/57
Pengantar Teknologi Informasi 15
Algoritma-algoritma Sandi Kunci Simetris
Data Encryption Standard (DES)
Blowfish
Twofish
MARS
IDEA
DES diaplikasikan 3 kali (3DES)
Advanced Encryption Standard (AES), yang
bernama asliRijndael
-
8/6/2019 10 Kriptografi
17/57
Pengantar Teknologi Informasi 16
Kunci Asimetris Sistem kunci-asimentris digunakan sepasang kunci yang
berbeda, umumnya disebut kunci publik(public key) dan
kunci pribadi (private key), digunakan untuk prosesenkripsi dan proses dekripsinya.
Bila elemen teks terang dienkripsi dengan menggunakankunci pribadi maka elemen teks sandi yang dihasilkannyahanya bisa didekripsikan dengan menggunakan pasangan
kunci pribadinya. Begitu juga sebaliknya, jika kunci publik digunakan untuk
proses enkripsi maka proses dekripsi harus menggunakankunci publik pasangannya.
-
8/6/2019 10 Kriptografi
18/57
Pengantar Teknologi Informasi 17
Kripto Kunci Publik
-
8/6/2019 10 Kriptografi
19/57
Pengantar Teknologi Informasi 18
Kripto Kunci Publik Menggunakan kunci yang berbeda untuk
enkripsi dan dekripsi
Jumlah kunci yang lebih sedikitdibandingkan enkripsi dengan kunci privat
Membutuhkan komputasi yang tinggi
(membutuhkan waktu yang lebih lama) Contoh: RSA, ECC
-
8/6/2019 10 Kriptografi
20/57
Pengantar Teknologi Informasi 19
Algoritma Kriptografi
Algoritma Modern
Algoritma Klasik
-
8/6/2019 10 Kriptografi
21/57
Pengantar Teknologi Informasi 20
Algoritma Modern
Beroperasi dalam mode bit (algoritma
kriptografi klasik beroperasi dalam mode
karakter)
kunci, plainteks, cipher teks, diproses
dalam rangkaian bit
operasi bit xorpaling banyak digunakan
-
8/6/2019 10 Kriptografi
22/57
Pengantar Teknologi Informasi 21
Tetap menggunakan gagasan pada algoritmaklasik : substitusi dan transposisi, tetapi lebihrumit (sangat sulit dipecahkan)
Perkembangan algoritma kriptografi moderndidorong oleh penggunaan komputer digitaluntuk keamanan pesan.
Komputer digital merepresentasikan data dalambiner.
-
8/6/2019 10 Kriptografi
23/57
Pengantar Teknologi Informasi 22
Diagram Blok Kriptografi ModernSecure Network Protocols
Block
Cipher
Stream
Cipher
Hash
Function
Pseudo
Random
Random
Source
Elliptic
Curve
DH
RSA
Symmetric KeyCryptography MessageDigest IVs Nonces SecretKeys Public KeyCryptography
EncryptionMACs
MICs
Challenge
Responses
Smart
Cards
Digital
Signatures
ConfidentialityData
IntegrityAuthentication
Non-
Repudiation
-
8/6/2019 10 Kriptografi
24/57
Pengantar Teknologi Informasi 23
Rangkaian bit Pesan (dalam bentuk rangkaian bit) dipecah
menjadi beberapa blok
Contoh :
Plain teks 100111010110
Bila dibagi menjadi blok 4-bit
1001 1101 0110
9 13 6setiap blok dinyatakan 0 sampai 15
-
8/6/2019 10 Kriptografi
25/57
-
8/6/2019 10 Kriptografi
26/57
Pengantar Teknologi Informasi 25
Padding bits :bit-bit tambahan jika ukuran blok terakhir tidakmencukupi panjang blok
Contoh :
Plain teks 100111010110
Bila dibagi menjadi blok 5-bit:
10011 10101 00010
Padding bits mengakibatkan ukuranplainteks hasil dekripsi lebih besar daripadaukuran plainteks semula.
-
8/6/2019 10 Kriptografi
27/57
Pengantar Teknologi Informasi 26
Representasi dalam Heksadesimal
Pada beberapa algoritma kriptografi, pesandinyatakan dalam kode Hex:0000 = 0 0001 = 1 0010 = 2 0011 = 3
0100 = 4 0101 = 5 0011 = 6 0111 = 7
1000 = 8 1011 = 9 1010 = A 1011 = B1100 = C 1101 = D 1101 = E 1111 = F
Contoh :
Plain teks 100111010110 dibagi menjadi blok 4-bit:
1001 1101 0110
dalam notasi HEX adalah
9 D 6
-
8/6/2019 10 Kriptografi
28/57
Pengantar Teknologi Informasi 27
Operasi XOR
Notasi:
Operasi:
0 0 = 0
0 1 = 11 0 = 1
1 1 = 0
Operasi XOR = penjumlahan modulo 2:
0 0 = 0 0 + 0 (mod 2) = 00 1 = 1 0 + 1 (mod 2) = 1
1 0 = 1 0 + 1 (mod 2) = 1
1 1 = 1 1 + 1 (mod 2) = 0
-
8/6/2019 10 Kriptografi
29/57
Pengantar Teknologi Informasi 28
Hukum-hukum yang terkait dengan
operator XOR:
(i) a a = 0
(ii) a b = b a
(iii) a
(b c
) = (a
b) c
-
8/6/2019 10 Kriptografi
30/57
-
8/6/2019 10 Kriptografi
31/57
Pengantar Teknologi Informasi 30
Algoritma Enkripsi dengan XOR
Enkripsi: C= P K
Dekripsi: P= C K
Contoh: plainteks 01100101 (karakter e)kunci 00110101 (karakter 5)
cipherteks 01010000 (karakter )
kunci 00110101 (karakter 5)
plainteks 01100101 (karakter e)
-
8/6/2019 10 Kriptografi
32/57
Pengantar Teknologi Informasi 31
Algoritma enkripsi XOR sederhana pada
prinsipnya sama seperti Vigenere cipher
dengan penggunaan kunci yang berulang
secara periodik. Setiap bit plainteks di-
XOR-kan dengan setiap bit kunci.
-
8/6/2019 10 Kriptografi
33/57
Pengantar Teknologi Informasi 32
/* Enkripsi berkas teks dengan
algoritma XOR sederhana.
Berkas plainteks: plain.txtBerkas cipherteks: cipher.txt
*/
#include
main(){FILE *Fin, *Fout;char P, C, K[20];
int n, i;
Fin = fopen("plain.txt", "r");Fout = fopen("cipher.txt", "w");
printf("Kata kunci : "); gets(K);n = strlen(K); /*panjang kunci*/i = 0;while ((P = getc(Fin)) != EOF){
C = P ^ K[i]; /* operasi XOR */putc(C, Fout);i++; if (i > n-1) i = 0;
}fclose(Fin);fclose(Fout);
}
/* Dekripsi berkas teks dengan
algoritma XOR sederhana.
Berkas plainteks: cipher.txtBerkas cipherteks: plain2.txt
*/
#include
main(){FILE *Fin, *Fout;char P, C, K[20];
int n, i;
Fin = fopen("cipher.txt", "r");Fout = fopen("plain2.txt", "w");
printf("Kata kunci : "); gets(K);n = strlen(K); /*panjang kunci*/i = 0;while ((C = getc(Fout)) != EOF){
P = C ^ K[i]; /* operasi XOR */putc(P, Fout );i++; if (i > n-1) i = 0;
}fclose(Fin);
fclose(Fout);}
enk_xor.c dek_xor.c
-
8/6/2019 10 Kriptografi
34/57
Pengantar Teknologi Informasi 33
Program komersil yang berbasis DOSatau
Macintosh menggunakan algoritma XOR
sederhana
Algoritma XOR sederhana tidak aman
karena cipherteksnya mudah dipecahkan.
-
8/6/2019 10 Kriptografi
35/57
Pengantar Teknologi Informasi 34
Algoritma Kriptografi Klasik
Algoritma kriptografi klasik berbasis karakter
Menggunakan pena dan kertas saja, belum ada komputer
Termasuk ke dalam kriptografi kunci-simetri
Tiga alasan mempelajari algoritma klasik:
1. Memahami konsep dasar kriptografi.
2. Dasar algoritma kriptografi modern.
3. Memahami kelemahan sistem cipher.
-
8/6/2019 10 Kriptografi
36/57
Pengantar Teknologi Informasi 35
Algoritma kriptografi klasik
1. CipherSubstitusi (Substitution Ciphers)
2. C
ipherTransposisi (TranspositionCiphers)
-
8/6/2019 10 Kriptografi
37/57
Pengantar Teknologi Informasi 36
CipherSubstitusi
Contoh: CaesarCipher
Tiap huruf alfabet digeser 3 huruf ke kanan
pi : A B C D E F G H I J K L M N O P Q R S T U V W X Y Zci : D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
Contoh:
Plainteks: AWASI ASTERIX DAN TEMANNYA OBELIX
Cipherteks: DZDVL DVWHULA GDQ WHPDQQBA REHOLA
-
8/6/2019 10 Kriptografi
38/57
Pengantar Teknologi Informasi 37
Dalam praktek, cipherteks dikelompokkan ke dalam
kelompok n-huruf, misalnya kelompok 4-huruf :
DZDV LDVW HULA GDQW HPDQ QBAR EHOL A
Atau membuang semua spasi:
DZDVLDVWHULAGDQWHPDQQBAREHOLA
Tujuannya agar kriptanalisis menjadi lebih sulit
-
8/6/2019 10 Kriptografi
39/57
Pengantar Teknologi Informasi 38
Caesar wheel
-
8/6/2019 10 Kriptografi
40/57
Pengantar Teknologi Informasi 39
Misalkan A = 0, B = 1, , Z= 25, maka
secara matematis caesarcipherdirumuskan
sebagai berikut:
Enkripsi :
ci =E(pi) = (pi + 3) mod 26
Dekripsi :
pi = D(ci) = (ci 3) mod 26
-
8/6/2019 10 Kriptografi
41/57
Pengantar Teknologi Informasi 40
Jika pergeseran huruf sejauh k, maka:
Enkripsi :
ci =E(pi) = (pi + k) mod 26
Dekripsi :
pi = D(ci) = (cik) mod 26
k= kunci rahasia
Untuk 256 karakter ASCII, maka:
Enkripsi :
ci =E(pi) = (pi + k) mod 256
Dekripsi :pi = D(ci) = (cik) mod 256
k= kunci rahasia
-
8/6/2019 10 Kriptografi
42/57
Pengantar Teknologi Informasi 41
/* Program enkripsi file dengan Caesar cipher */
#include
main(int argc, char *argv[])
{
FILE *Fin, *Fout;
char p, c;
int k;
Fin = fopen(argv[1], "rb");
if (Fin == NULL)
printf("Kesalahan dalam membuka %s sebagai berkas masukan/n", argv[1]);Fout = fopen(argv[2], "wb");
printf("\nEnkripsi %s menjadi %s ...\n", argv[1], argv[2]);
printf("\n");
printf("k : ");
scanf("%d", &k);
while ((p = getc(Fin)) != EOF)
{
c = (p + k) % 256;putc(c, Fout);
}
fclose(Fin);
fclose(Fout);
}
-
8/6/2019 10 Kriptografi
43/57
Pengantar Teknologi Informasi 42
/* Program dekripsi file dengan Caesar cipher */
#include
main(int argc, char *argv[])
{
FILE *Fin, *Fout;
char p, c;
int n, i, k;
Fin = fopen(argv[1], "rb");
if (Fin == NULL)printf("Kesalahan dalam membuka %s sebagai berkas masukan/n", argv[1]);
Fout = fopen(argv[2], "wb");
printf("\nDekripsi %s menjadi %s ...\n", argv[1], argv[2]);
printf("\n");
printf("k : ");
scanf("%d", &k);
while ((c = getc(Fin)) != EOF)
{
p = (c - k) % 256;
putc(p, Fout);
}
fclose(Fin);
fclose(Fout);
}
-
8/6/2019 10 Kriptografi
44/57
Pengantar Teknologi Informasi 43
Kelemahan:
Caesarciphermudah dipecahkan dengan
exhaustive key search karena jumlah
kuncinya sangat sedikit (hanya ada 26kunci).
-
8/6/2019 10 Kriptografi
45/57
Pengantar Teknologi Informasi 44
Contoh: kriptogramXMZVH
Tabel 1. Contoh exhaustive key search terhadap cipherteks XMZVH
Kunci (k)ciphering
Pesan hasildekripsi
Kunci (k)ciphering
Pesan hasildekripsi
Kunci (k)ciphering
Pesan hasildekripsi
0
2524232221201918
XMZVH
YNAWIZOBXJ
APCYK
BQDZL
CREAM
DSFBN
ETGCO
FUHDP
17
161514131211109
GVIEQ
HWJFRIXKGS
JYLHT
KZMIU
LANJV
MBOKW
NCPLX
ODQMY
8
7654321
PERNZ
QFSOARGTPB
SHUQC
TIVRD
UJWSE
VKXTF
WLYUG
Plainteks yang potensial adalah CREAM dengan k= 21.
Kunci ini digunakan untuk mendekripsikan cipherteks lainnya.
-
8/6/2019 10 Kriptografi
46/57
Pengantar Teknologi Informasi 45
PHHW PH DIWHU WKH WRJD SDUWB
KEY1 oggv og chvgt vjg vqic rctva
2 nffu nf bgufs uif uphb qbsuz
3 meetme afterthetoga party
4 Ldds ld zesdq sgd snfz ozqsx
5 kccr kc ydrcp rfc rmey nyprw
6
21 ummb um inbmz bpm bwoi xizbg
22 tlla tl hmaly aol avnh whyaf
23 skkz sk glzkx znk zumg vgxze
24 rjjy rj fkyjw ymj ytlf ufwyd
25 qiix qi ejxiv xli xske tevxc
-
8/6/2019 10 Kriptografi
47/57
Pengantar Teknologi Informasi 46
Contoh:
Kriptogram HSPPWmenghasilkan duakemungkinan kunci yang potensial, yaitu k=4 menghasilkan pesan DOLLS dan k= 11
menghasilkan WHEEL.
Jika kasusnya demikian, maka lakukandekripsi terhadap potongan cipherteks laintetapi cukup menggunakan k= 4 dan k= 11agar dapat disimpulkan kunci yang benar.
-
8/6/2019 10 Kriptografi
48/57
Pengantar Teknologi Informasi 47
Di dalam sistem operasi Unix, ROT13
adalah fungsi menggunakan Caesarcipherdengan pergeseran k= 13
-
8/6/2019 10 Kriptografi
49/57
Pengantar Teknologi Informasi 48
Contoh: ROT13(ROTATE) = EBGNGR
Nama ROT13 berasal dari net.jokes(hhtp://groups.google.com/group/net.jokes) (tahun 1980)
ROT13 biasanya digunakan di dalam forum online untukmenyandikan jawaban teka-teki, kuis, canda, dsb
Enkripsi arsip dua kali dengan ROT13 menghasilkanpesan semula:
P = ROT13(ROT13(P))
sebab ROT13(ROT13(x)) = ROT26(x) = x
Jadi dekripsi cukup dilakukan dengan mengenkripsicipherteks kembali dengan ROT13
-
8/6/2019 10 Kriptografi
50/57
Pengantar Teknologi Informasi 49
Message Digest Menghasilkan summary (digest) dari
sebuah pesan (file, stream data)
Menggunakan hash function untuk
menghasilkan digest tersebut
-
8/6/2019 10 Kriptografi
51/57
Pengantar Teknologi Informasi 50
Fungsi Hash (Hash Function)
Merupakan fungsi satu arah (one way
function) yang dapat menghasilkan ciri
(signature) dari data (berkas, stream)
Perubahan satu bit saja akan mengubah
keluaran hash secara drastis
Digunakan untuk menjamin integritas dan
digital signature
-
8/6/2019 10 Kriptografi
52/57
Pengantar Teknologi Informasi 51
Contoh :
MD4, MD5, SHA-1
unix$ md5sum /bin/loginaf005c0810eeca2d50f2904d87d9ba1c /bin/login
Program md5sum untuk windows merupakan bagian dariCygwin distribution yang dapat diperoleh dari :
http://sunsite.bilkent.edu.tr/pub/cygwin/cygwinb20/full.exe
-
8/6/2019 10 Kriptografi
53/57
Pengantar Teknologi Informasi 52
Penggunaan Hash : Pengirim
-
8/6/2019 10 Kriptografi
54/57
Pengantar Teknologi Informasi 53
Sisi Penerima
-
8/6/2019 10 Kriptografi
55/57
Pengantar Teknologi Informasi 54
Contoh Penggunaan Hash Hasil hash dienkripsi untuk menjamin keamanannya
(integritas)
Ukuran hasil hash yang lebih kecil dibandingkan ukuranpesan asalnya membutuhkan waktu enkripsi yang lebihsingkat (dibandingkan jika mengenkripsi seluruh pesan)
Digital Signature
Pesan juga dapat dienkripsi jika diinginkan kerahasiaan
Contoh aplikasi lain: hash encrypted password
-
8/6/2019 10 Kriptografi
56/57
Pengantar Teknologi Informasi 55
Permasalahan Hash
Karena range (space) dari hasil hash lebih kecil (dalamjumlah bit) dari sumber informasinya, makadimungkinkan adanya collision yaitu dua datadipetakan ke hash yang sama
Ini sudah dibuktikan dengan pecahnya MD5 dan SHA-1 http://www.schneier.com/blog/archives/2005/02/cryptanalysis_
o.html
MD5 (1992) merupakan penyempurnaan dari MD4 (1990)
SHA merupakan buatan NSA (1993) yang mirip dengan MD5
Meskipun dua data yang dipetakan itu tidak mudah dibuatdan kadang-kadang completely useless
-
8/6/2019 10 Kriptografi
57/57
56
Masalah Seputar Kripto
Memastikan keamanan algoritma enkripsi
Algoritma harus dievaluasi oleh pakar
Algoritma yang tertutup (tidak dibuka kepada
publik) dianggap tidak aman
Membuat algoritma yang aman tidak mudah
Code maker vs code breakers akan terus
berlangsung