ABDURROZAK
ABDURROZAK.MY.ID // EBOOK

BAB 06 - KRIPTOGRAFI

SENI MENYEMBUNYIKAN PESAN DI ERA DIGITAL
8 SUB-BAB ~80 MENIT BACA FASE 2 - KONSEP LEVEL: MENENGAH

PENGANTAR BAB

Setelah memahami fondasi etika dan hukum di Bab 05, kita memasuki salah satu bab paling teknis dan paling penting di seluruh kurikulum Cyber Security: Kriptografi. Kriptografi adalah tulang punggung keamanan digital modern - tanpa kriptografi, tidak ada HTTPS, tidak ada WhatsApp yang aman, tidak ada Bitcoin, tidak ada password yang aman.

Kata "kriptografi" berasal dari bahasa Yunani: kryptos (tersembunyi) + graphein (menulis). Secara harfiah: "tulisan tersembunyi". Ilmu ini sudah ada sejak 4000 tahun lalu (Mesir Kuno), tapi baru menjadi fondasi teknologi modern di era digital.

Bab ini akan membawa Anda dari konsep dasar hingga implementasi praktis. Anda akan belajar bukan hanya teori, tapi juga cara menggunakan tools kriptografi seperti OpenSSL, hash verification, dan memahami cara kerja HTTPS di browser Anda setiap hari.

TUJUAN PEMBELAJARAN
  • Memahami konsep dasar kriptografi dan sejarahnya
  • Membedakan plaintext, ciphertext, kunci, dan algoritma
  • Memahami proses enkripsi dan dekripsi
  • Membedakan kriptografi simetris dan asimetris
  • Memahami hash function dan kegunaannya
  • Memahami digital signature dan sertifikat digital
  • Menerapkan kriptografi dalam praktik (OpenSSL, verifikasi hash, dll)
6.1

KONSEP DASAR KRIPTOGRAFI

Definisi Kriptografi

Bruce Schneier (1996)

"Cryptography is the study of mathematical techniques related to aspects of information security such as confidentiality, data integrity, entity authentication, and data origin authentication."

- Schneier, B. (1996). Applied Cryptography, 2nd Ed. Wiley.

William Stallings (2020)

"Cryptographic techniques are fundamental to information security. They provide confidentiality, integrity, authentication, and non-repudiation."

- Stallings, W. (2020). Cryptography and Network Security, 8th Ed. Pearson.

ISO/IEC 9797

"Cryptography is the discipline that embodies principles, means and methods for transforming data in order to hide its information content, prevent its undetected modification and/or prevent its unauthorized use."

4 Tujuan Kriptografi (CIAA)

CONFIDENTIALITY

Kerahasiaan - data hanya bisa dibaca oleh pihak yang berwenang.

INTEGRITY

Keutuhan - data tidak bisa diubah tanpa terdeteksi.

AUTHENTICATION

Autentikasi - memverifikasi identitas pengirim/penerima.

NON-REPUDIATION

Penyangkalan - pengirim tidak bisa menyangkal telah mengirim pesan.

Sejarah Singkat Kriptografi

ERA KLASIK (sebelum 1900)
  • ~2000 SM - Hieroglif Mesir (tulisan tersembunyi pertama)
  • ~500 SM - Scytale Sparta (transposisi dengan tongkat)
  • ~50 SM - Caesar Cipher (Julius Caesar) - substitusi geser 3 huruf
  • Abad 9 - Al-Kindi menemukan analisis frekuensi (pemecah kode pertama)
  • 1467 - Vigenere Cipher (polyalphabetic, dianggap "unbreakable" selama 300 tahun)
ERA MODERN (1900-1970)
  • 1918 - Enigma machine (Jerman) - mesin elektromekanis
  • 1940s - Alan Turing memecahkan Enigma (Bletchley Park) - awal komputer modern
  • 1949 - Claude Shannon: "Communication Theory of Secrecy Systems" - fondasi teori
  • 1973 - Lucifer (IBM) - calon DES
  • 1977 - DES (Data Encryption Standard) diadopsi NIST
ERA KONTEMPORER (1976-sekarang)
  • 1976 - Diffie-Hellman: kriptografi kunci publik pertama
  • 1977 - RSA (Rivest, Shamir, Adleman) - algoritma asimetris paling terkenal
  • 1991 - PGP (Pretty Good Privacy) oleh Phil Zimmermann
  • 2001 - AES (Advanced Encryption Standard) menggantikan DES
  • 2009 - Bitcoin menggunakan kriptografi untuk cryptocurrency
  • 2016 - Signal Protocol - end-to-end encryption untuk messaging
  • 2022 - NIST mengumumkan standar post-quantum cryptography
ANIMASI: TIMELINE KRIPTOGRAFI
50 SM Caesar 1918 Enigma 1976 Diffie-Hellman 1977 RSA 2001 AES 2022 Post-Quantum

Cabang-Cabang Kriptografi

CABANGFOKUSCONTOH
EnkripsiMenyembunyikan isi pesanAES, RSA, ChaCha20
Hash FunctionSidik jari data (one-way)SHA-256, bcrypt
Digital SignatureAutentikasi & non-repudiationRSA signature, ECDSA
SteganografiMenyembunyikan keberadaan pesanMenyisipkan data di gambar
CryptanalysisMemecahkan kriptografiBrute force, side-channel attack
ANALOGI: KRIPTOGRAFI = AMPOLOP RAHASIA

Bayangkan Anda ingin mengirim surat rahasia:

  • Enkripsi = menulis surat dengan kode rahasia
  • Hash = membubuhkan sidik jari di amplop (untuk cek keutuhan)
  • Digital signature = tanda tangan di atas amplop (untuk autentikasi)
  • Steganografi = menulis pesan dengan tinta tak terlihat

Kriptografi modern menggabungkan semua teknik ini untuk keamanan berlapis.

REFERENSI
  • Schneier, B. (1996). Applied Cryptography, 2nd Ed. Wiley.
  • Stallings, W. (2020). Cryptography and Network Security, 8th Ed. Pearson.
  • Kahn, D. (1996). The Codebreakers. Scribner.
  • Singh, S. (1999). The Code Book. Fourth Estate.
6.2

PLAINTEXT & CIPHERTEXT

Dua istilah paling fundamental dalam kriptografi: plaintext (pesan asli) dan ciphertext (pesan terenkripsi). Memahami keduanya adalah kunci memahami seluruh proses kriptografi.

Definisi

DEFINISI
  • Plaintext (M): Pesan asli yang bisa dibaca manusia. Juga disebut cleartext atau message.
  • Ciphertext (C): Pesan yang telah diacak melalui algoritma enkripsi. Tidak bisa dibaca tanpa kunci dekripsi.
ANIMASI: PLAINTEXT DIUBAH MENJADI CIPHERTEXT
PLAINTEXT HELLO (bisa dibaca) KEY ALGORITMA ENKRIPSI CIPHERTEXT KHOOR (tidak bisa dibaca)

Contoh: Caesar Cipher

Cipher paling terkenal dalam sejarah, digunakan Julius Caesar untuk berkomunikasi dengan jenderalnya. Menggunakan substitusi dengan geseran 3 huruf:

Caesar Cipher (shift = 3)
# Alfabet asli:
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 Z

# Alfabet cipher (geser 3):
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:
Plaintext : HELLO WORLD
Ciphertext: KHOOR ZRUOG

# Cara kerja:
H + 3 = K
E + 3 = H
L + 3 = O
L + 3 = O
O + 3 = R
(spasi tetap spasi)
W + 3 = Z
... dst

Implementasi Python Caesar Cipher

Python
def caesar_encrypt(plaintext, shift):
    """Enkripsi plaintext dengan Caesar cipher."""
    result = ""
    for char in plaintext:
        if char.isalpha():
            # Tentukan offset (A=65 untuk uppercase, a=97 untuk lowercase)
            offset = 65 if char.isupper() else 97
            # Geser karakter
            shifted = (ord(char) - offset + shift) % 26 + offset
            result += chr(shifted)
        else:
            result += char  # Karakter non-alpha tetap
    return result

def caesar_decrypt(ciphertext, shift):
    """Dekripsi = enkripsi dengan shift negatif."""
    return caesar_encrypt(ciphertext, -shift)

# Contoh penggunaan
pesan = "HELLO WORLD"
kunci = 3

terenkripsi = caesar_encrypt(pesan, kunci)
print(f"Ciphertext: {terenkripsi}")
# Output: Ciphertext: KHOOR ZRUOG

terdekripsi = caesar_decrypt(terenkripsi, kunci)
print(f"Plaintext : {terdekripsi}")
# Output: Plaintext : HELLO WORLD

Kelemahan Caesar Cipher

MUDAH DIPECAHKAN!

Caesar cipher hanya punya 25 kemungkinan kunci (shift 1-25). Bisa dipecahkan dengan:

  • Brute force: coba semua 25 kemungkinan (hitungan detik)
  • Analisis frekuensi: huruf paling umum di bahasa Inggris adalah 'E'. Jika ciphertext banyak huruf 'H', kemungkinan shift = 3

Inilah mengapa Caesar cipher TIDAK AMAN untuk penggunaan modern. Tapi konsepnya (substitusi) adalah fondasi cipher modern.

Python - Brute Force Caesar
def crack_caesar(ciphertext):
    """Coba semua 25 kemungkinan kunci."""
    for shift in range(1, 26):
        decrypted = caesar_decrypt(ciphertext, shift)
        print(f"Shift {shift:2d}: {decrypted}")

# Contoh:
crack_caesar("KHOOR ZRUOG")
# Shift  1: JNGNQ YQTNF
# Shift  2: IMFMP XPSME
# Shift  3: HELLO WORLD  <-- BACA INI!
# Shift  4: GDKKN VNQKC
# ... dst

Perbedaan Plaintext vs Ciphertext

ASPEKPLAINTEXTCIPHERTEXT
KeterbacaanBisa dibaca manusiaTidak bisa dibaca tanpa kunci
BentukTeks, gambar, audio asliData acak (bytes)
UkuranSesuai data asliBisa sedikit lebih besar (padding)
KeamananTidak aman di transmisiAman di transmisi (jika kunci aman)
Contoh"RahasiaBank123""xK9#mP@2$vL5..."
ANALOGI: PLAINTEXT & CIPHERTEXT = BAHASA ASING

Plaintext seperti bahasa yang Anda mengerti (Indonesia). Ciphertext seperti bahasa asing yang tidak Anda mengerti (misal, Mandarin). Untuk membaca bahasa asing, Anda butuh kamus (kunci dekripsi). Tanpa kamus, teks Mandarin hanya kumpulan simbol yang tidak bermakna.

REFERENSI
  • Singh, S. (1999). The Code Book - Chapter 1: "The Code Breakers"
  • Kahn, D. (1996). The Codebreakers. Scribner.
  • NIST - SP 800-175B: Guide to Cryptographic Standards
6.3

ENKRIPSI & DEKRIPSI

Enkripsi dan dekripsi adalah dua sisi dari mata uang yang sama. Enkripsi mengubah plaintext menjadi ciphertext, dekripsi mengembalikannya. Keduanya membutuhkan kunci (key) dan algoritma (cipher).

Definisi Formal

DEFINISI
  • Enkripsi (E): Proses transformasi plaintext menjadi ciphertext menggunakan algoritma dan kunci. C = E(K, M)
  • Dekripsi (D): Proses transformasi ciphertext kembali menjadi plaintext. M = D(K, C)
  • Algoritma (Cipher): Prosedur matematis untuk enkripsi/dekripsi. Contoh: AES, RSA.
  • Kunci (Key): Nilai rahasia yang menentukan bagaimana algoritma bekerja.

Notasi Matematis

RUMUS DASAR
Notasi Kriptografi
# Enkripsi:
C = E(K, M)
#   C = Ciphertext
#   E = Algoritma Enkripsi
#   K = Kunci (Key)
#   M = Plaintext (Message)

# Dekripsi:
M = D(K, C)
#   M = Plaintext (harus sama dengan plaintext asli)
#   D = Algoritma Dekripsi
#   K = Kunci
#   C = Ciphertext

# Sifat fundamental:
D(K, E(K, M)) = M
# Dekripsi(enkripsi(pesan)) = pesan asli
ANIMASI: PROSES LENGKAP ENKRIPSI & DEKRIPSI
ALICE (pengirim) HELLO ENCRYPT E(K,M) AES + Key xK9#mP@2 (di internet) DECRYPT D(K,C) BOB Alice -> Encrypt -> Ciphertext -> Decrypt -> Bob

Peran Kunci (Key)

Kunci adalah rahasia utama dalam kriptografi. Algoritma biasanya bersifat publik (diketahui semua orang), tapi kunci harus dirahasiakan.

PRINSIP KERCKHOFFS (1883)

"Sistem kriptografi harus aman meskipun semua hal tentang sistem, kecuali kunci, adalah pengetahuan publik."

Artinya: keamanan tidak boleh bergantung pada kerahasiaan algoritma, tapi pada kerahasiaan kunci. Ini prinsip fundamental kriptografi modern - algoritma seperti AES, RSA, SHA-256 semuanya publik.

Ukuran Kunci & Keamanan

UKURAN KUNCIJUMLAH KEMUNGKINANWAKTU BRUTE FORCESTATUS
56 bit (DES)2^56 ≈ 7.2 × 10^16~24 jam (GPU modern)TIDAK AMAN
128 bit (AES-128)2^128 ≈ 3.4 × 10^38Miliaran tahunAMAN
192 bit (AES-192)2^192 ≈ 6.3 × 10^57Tak terbayangkanSANGAT AMAN
256 bit (AES-256)2^256 ≈ 1.2 × 10^77Mustahil dengan teknologi saat iniMILITARY-GRADE
ANALOGI: KUNCI = KOMBINASI BRANKAS

Bayangkan brankas bank:

  • Algoritma = cara kerja mekanisme brankas (publik, semua tahu cara kerjanya)
  • Kunci = kombinasi angka (rahasia, hanya pemilik yang tahu)
  • Enkripsi = memasukkan barang ke brankas & mengunci
  • Dekripsi = membuka brankas dengan kombinasi & mengambil barang

Bahkan jika pencuri tahu cara kerja brankas, tanpa kombinasi, ia tidak bisa membukanya. Itulah kekuatan kriptografi.

Mode Operasi Enkripsi

Untuk data besar, enkripsi blok (seperti AES) perlu mode operasi:

MODEKARAKTERISTIKSTATUS
ECBSetiap blok dienkripsi independen. Pola terlihat.TIDAK AMAN
CBCBlok sebelumnya mempengaruhi blok sekarang.OK (dengan IV)
CTRCounter mode, bisa paralel.DIANJURKAN
GCMAuthenticated encryption (enkripsi + autentikasi).STANDAR MODERN
REFERENSI
  • NIST FIPS 197 - Advanced Encryption Standard (AES)
  • NIST SP 800-38A - Block Cipher Modes of Operation
  • NIST SP 800-38D - GCM Mode (Galois/Counter Mode)
  • Stallings, W. (2020). Cryptography and Network Security, Ch. 3-4.
6.4

KRIPTOGRAFI SIMETRIS

Kriptografi simetris (symmetric-key cryptography) menggunakan kunci yang SAMA untuk enkripsi dan dekripsi. Ini adalah jenis kriptografi paling cepat dan paling banyak digunakan untuk mengenkripsi data dalam jumlah besar.

ANIMASI: KRIPTOGRAFI SIMETRIS - SATU KUNCI UNTUK ENKRIPSI & DEKRIPSI
ALICE KUNCI RAHASIA K (sama untuk enkripsi & dekripsi) BOB CIPHERTEXT (di internet)

Algoritma Simetris Populer

ALGORITMATAHUNUKURAN BLOKUKURAN KUNCISTATUS
DES197764 bit56 bitUSANG
3DES199964 bit168 bitDEPREKASI
AES-1282001128 bit128 bitSTANDAR
AES-1922001128 bit192 bitSTANDAR
AES-2562001128 bit256 bitMILITARY-GRADE
Blowfish199364 bit32-448 bitLEGACY
Twofish1998128 bit128-256 bitOPEN SOURCE
ChaCha202008Stream256 bitMODERN (mobile)

AES (Advanced Encryption Standard)

AES adalah standar enkripsi simetris paling banyak digunakan di dunia. Dikembangkan oleh Joan Daemen & Vincent Rijmen (Belgia), diadopsi NIST tahun 2001 menggantikan DES.

Karakteristik AES:

  • Block cipher - memproses data per blok 128 bit
  • Key size: 128, 192, atau 256 bit
  • Number of rounds: 10, 12, atau 14 (tergantung key size)
  • Setiap round: SubBytes, ShiftRows, MixColumns, AddRoundKey
  • Cepat di hardware & software modern (AES-NI instruction di CPU)

Proses Enkripsi AES (simplified):

AES-256 Encryption Flow
# Input: 128-bit plaintext + 256-bit key

Round 0: AddRoundKey           # XOR dengan round key

Round 1-13:
  1. SubBytes              # Substitusi non-linear (S-box)
  2. ShiftRows             # Geser baris
  3. MixColumns            # Campur kolom (diffusion)
  4. AddRoundKey           # XOR dengan round key

Round 14 (final):
  1. SubBytes
  2. ShiftRows
  3. AddRoundKey           # Tidak ada MixColumns di final round

# Output: 128-bit ciphertext

Praktik: Menggunakan AES dengan OpenSSL

Bash - OpenSSL AES
# Enkripsi file dengan AES-256-CBC
$ openssl enc -aes-256-cbc -salt -pbkdf2 \
    -in rahasia.txt -out rahasia.enc
Enter pass phrase: ********
Verifying - Enter pass phrase: ********

# Dekripsi file
$ openssl enc -d -aes-256-cbc -pbkdf2 \
    -in rahasia.enc -out rahasia-decrypt.txt
Enter pass phrase: ********

# Enkripsi dengan password di command line (TIDAK DISARANKAN!)
$ openssl enc -aes-256-cbc -pbkdf2 \
    -in data.txt -out data.enc \
    -pass pass:"MySecretPassword123!"

# Enkripsi string langsung
$ echo "Hello World" | openssl enc -aes-256-cbc -pbkdf2 \
    -pass pass:"kunci123" | base64
U2FsdGVkX1+...

# Dekripsi string
$ echo "U2FsdGVkX1+..." | base64 -d | openssl enc -d \
    -aes-256-cbc -pbkdf2 -pass pass:"kunci123"
Hello World

Kelebihan & Kekurangan

KELEBIHANKEKURANGAN
Cepat - 100-1000x lebih cepat dari asimetris Distribusi kunci sulit - bagaimana mengirim kunci secara aman?
Efisien - cocok untuk data besar Tidak ada non-repudiation
Standar industri - AES, ChaCha20 Skalabilitas - n orang butuh n(n-1)/2 kunci
Hardware acceleration - AES-NI Kunci sama = trust mutual

Masalah Distribusi Kunci

Masalah terbesar kriptografi simetris: bagaimana Alice dan Bob berbagi kunci rahasia tanpa pihak ketiga (Eve) mengetahuinya?

ANALOGI: DILEMA KUNCI GANDA

Alice ingin mengirim kotak rahasia ke Bob:

  • Alice mengunci kotak dengan kunci rahasia
  • Tapi bagaimana cara mengirim kunci ke Bob?
  • Jika dikirim via kurir, kurir bisa menyalin kunci
  • Jika dikirim via email, email bisa disadap
  • Jika dikirim via pos, pos bisa dibuka

Inilah "key distribution problem" - masalah yang tidak bisa dipecahkan oleh kriptografi simetris. Solusinya? Kriptografi asimetris (sub-bab 6.5)!

Implementasi Python: AES dengan cryptography library

Python - AES Encryption
# Install: pip install cryptography
from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
from cryptography.hazmat.backends import default_backend
import os

def aes_encrypt(plaintext, key):
    """Enkripsi AES-256-GCM."""
    # Generate IV (Initialization Vector) acak
    iv = os.urandom(12)  # 96 bit untuk GCM
    
    # Buat cipher
    cipher = Cipher(
        algorithms.AES(key),
        modes.GCM(iv),
        backend=default_backend()
    )
    encryptor = cipher.encryptor()
    
    # Enkripsi
    ciphertext = encryptor.update(plaintext) + encryptor.finalize()
    tag = encryptor.tag  # Authentication tag
    
    return iv + ciphertext + tag

def aes_decrypt(encrypted_data, key):
    """Dekripsi AES-256-GCM."""
    iv = encrypted_data[:12]
    tag = encrypted_data[-16:]
    ciphertext = encrypted_data[12:-16]
    
    cipher = Cipher(
        algorithms.AES(key),
        modes.GCM(iv, tag),
        backend=default_backend()
    )
    decryptor = cipher.decryptor()
    
    return decryptor.update(ciphertext) + decryptor.finalize()

# Contoh penggunaan
key = os.urandom(32)  # 256-bit key
pesan = b"Rahasia negara: menyerang fajar!"

terenkripsi = aes_encrypt(pesan, key)
print(f"Ciphertext: {terenkripsi.hex()}")

terdekripsi = aes_decrypt(terenkripsi, key)
print(f"Plaintext : {terdekripsi.decode()}")
REFERENSI
  • NIST FIPS 197 - Advanced Encryption Standard (AES)
  • Daemen, J. & Rijmen, V. (2002). The Design of Rijndael. Springer.
  • NIST SP 800-38D - GCM Mode Recommendation
  • Schneier, B. (1996). Applied Cryptography - Ch. 13 (DES, AES)
6.5

KRIPTOGRAFI ASIMETRIS

Kriptografi asimetris (public-key cryptography) adalah revolusi terbesar dalam sejarah kriptografi. Ditemukan tahun 1976 oleh Diffie-Hellman, ia memecahkan masalah distribusi kunci yang menghantui kriptografi simetris selama puluhan tahun.

Ide Revolusioner

Menggunakan sepasang kunci:

  • Public Key (kunci publik) - dibagikan ke semua orang, untuk enkripsi
  • Private Key (kunci privat) - dirahasiakan, untuk dekripsi

Kedua kunci ini berbeda secara matematis, tapi saling terkait. Apa yang dienkripsi dengan public key, hanya bisa didekripsi dengan private key yang sesuai.

ANIMASI: KRIPTOGRAFI ASIMETRIS - DUA KUNCI BERBEDA
ALICE (punya sepasang kunci) PUBLIC KEY ALICE (publik - semua orang bisa pakai) PRIVATE KEY ALICE (RAHASIA - hanya Alice) BOB (kirim pesan ke Alice) Bob pakai public key Alice untuk enkripsi pesan Hanya Alice dengan private key-nya yang bisa dekripsi

Algoritma Asimetris Populer

ALGORITMATAHUNDASAR MATEMATISUKURAN KUNCISTATUS
RSA1977Faktorisasi bilangan prima2048-4096 bitSTANDAR
Diffie-Hellman1976Logaritma diskrit2048+ bitKEY EXCHANGE
ECC1985Elliptic curves256-521 bitMODERN
DSA1991Logaritma diskrit1024-3072 bitSIGNATURE
Ed255192011Edwards curves256 bitMODERN (SSH)

RSA: Cara Kerja (Simplified)

RSA (Rivest-Shamir-Adleman) adalah algoritma asimetris paling terkenal. Dasarnya: faktorisasi bilangan prima itu sulit.

RSA Mathematics (Simplified)
# GENERASI KUNCI:
1. Pilih dua bilangan prima besar: p, q
   # Contoh kecil: p = 61, q = 53

2. Hitung n = p × q
   # n = 61 × 53 = 3233

3. Hitung φ(n) = (p-1) × (q-1)
   # φ(n) = 60 × 52 = 3120

4. Pilih e (public exponent), biasanya 65537
   # Syarat: 1 < e < φ(n), gcd(e, φ(n)) = 1
   # Contoh: e = 17

5. Hitung d (private exponent) - modular inverse dari e
   # d × e ≡ 1 (mod φ(n))
   # d = 2753

# PUBLIC KEY = (n, e) = (3233, 17) - DIBAGIKAN
# PRIVATE KEY = (n, d) = (3233, 2753) - DIRAHASIAKAN

# ENKRIPSI (pakai public key):
c = m^e mod n
# Contoh: m = 65 (pesan), c = 65^17 mod 3233 = 2790

# DEKRIPSI (pakai private key):
m = c^d mod n
# Contoh: m = 2790^2753 mod 3233 = 65 (pesan asli!)
MENGAPA RSA AMAN?

Keamanan RSA bergantung pada kesulitan memfaktorkan bilangan besar:

  • Diberikan n = p × q, sangat sulit menemukan p dan q jika n besar
  • RSA 2048-bit = n dengan 617 digit - butuh waktu miliaran tahun untuk difaktorkan
  • Tapi komputer kuantum (algoritma Shor) bisa memfaktorkan dalam hitungan jam!

Inilah mengapa dunia sedang mempersiapkan post-quantum cryptography.

Hybrid Cryptography: Terbaik dari Dua Dunia

Dalam praktiknya, hampir semua sistem modern menggunakan kombinasi simetris + asimetris:

ANIMASI: HYBRID CRYPTOGRAPHY - HTTPS HANDSHAKE (SIMPLIFIED)
CLIENT SERVER 1. Client Hello 2. Server kirim Public Key + Certificate 3. Client generate Session Key (AES), enkripsi dg Public Key 4. Server dekripsi dg Private Key -> dapat Session Key 5. Komunikasi selanjutnya PAKAI AES (SIMETRIS) CEPAT!
KENAPA HYBRID?
  • Asimetris hanya untuk pertukaran kunci awal (lambat tapi aman)
  • Simetris untuk enkripsi data aktual (cepat untuk data besar)
  • Kombinasi ini dipakai di: HTTPS/TLS, SSH, PGP, Signal, WhatsApp

Praktik: Generate RSA Key dengan OpenSSL

Bash - RSA Key Generation
# Generate private key RSA 2048-bit
$ openssl genrsa -out private-key.pem 2048

# Extract public key dari private key
$ openssl rsa -in private-key.pem -pubout -out public-key.pem

# Lihat isi private key
$ cat private-key.pem
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC...
...
-----END PRIVATE KEY-----

# Enkripsi file dg public key
$ openssl rsautl -encrypt -inkey public-key.pem -pubin \
    -in rahasia.txt -out rahasia.enc

# Dekripsi dg private key
$ openssl rsautl -decrypt -inkey private-key.pem \
    -in rahasia.enc -out rahasia-decrypt.txt

# Generate key dg password (lebih aman)
$ openssl genrsa -aes256 -out private-protected.pem 4096
Enter pass phrase: ********

Perbandingan Simetris vs Asimetris

ASPEKSIMETRISASIMETRIS
Jumlah kunci1 (sama untuk enkripsi & dekripsi)2 (public + private)
KecepatanSangat cepat (100-1000x)Lambat
Ukuran kunci128-256 bit2048-4096 bit (RSA)
Distribusi kunciSulit (butuh channel aman)Mudah (public key bisa publik)
SkalabilitasBuruk (n(n-1)/2 kunci)Baik (2n kunci untuk n user)
Non-repudiationTidakYa (dengan digital signature)
PenggunaanEnkripsi data besarKey exchange, signature
ContohAES, ChaCha20RSA, ECC, Ed25519
ANALOGI: KOTAK POS DENGAN SLOT

Bayangkan kotak pos di depan rumah Anda:

  • Slot surat = public key (siapa saja bisa masukkan surat)
  • Kunci kotak = private key (hanya Anda yang bisa buka)
  • Tetangga bisa masukkan surat (enkripsi dg public key)
  • Tapi hanya Anda yang bisa buka & baca (dekripsi dg private key)

Itulah kriptografi asimetris - public key untuk menerima, private key untuk membaca.

REFERENSI
  • Rivest, R., Shamir, A., Adleman, L. (1978). A Method for Obtaining Digital Signatures. CACM.
  • Diffie, W. & Hellman, M. (1976). New Directions in Cryptography. IEEE Trans. IT.
  • NIST FIPS 186-4 - Digital Signature Standard (DSS)
  • NIST SP 800-56A - Key Establishment Schemes
  • Stallings, W. (2020). Cryptography and Network Security, Ch. 8-10.
6.6

HASH FUNCTION

Hash function adalah fungsi matematika satu arah (one-way) yang mengubah data ukuran berapa pun menjadi string dengan panjang tetap. Hash adalah "sidik jari digital" - unik untuk setiap data, tapi tidak bisa dibalik.

Definisi

DEFINISI

Hash function kriptografis H adalah fungsi yang memetakan input berukuran arbitrer ke output berukuran tetap, dengan sifat:

  • Pre-image resistance: Dari hash, tidak bisa menemukan input asal
  • Second pre-image resistance: Diberikan input, tidak bisa menemukan input lain dengan hash sama
  • Collision resistance: Tidak bisa menemukan dua input berbeda dengan hash sama
  • Avalanche effect: Perubahan kecil di input = perubahan besar di output
ANIMASI: HASH FUNCTION - INPUT APAPUN, OUTPUT TETAP
"hello" HASH FUNCTION SHA-256 (one-way) 2cf24dba5fb0a30e... "hello world!" 7509e2a6b2e4f1c8... Input berbeda -> Hash berbeda (walau sedikit berbeda)

Algoritma Hash Populer

ALGORITMATAHUNPANJANG OUTPUTSTATUS
MD51992128 bit (32 hex)BROKEN - JANGAN PAKAI
SHA-11995160 bit (40 hex)BROKEN - JANGAN PAKAI
SHA-2562001256 bit (64 hex)STANDAR
SHA-3842001384 bit (96 hex)STANDAR
SHA-5122001512 bit (128 hex)STANDAR
SHA-32012224-512 bitMODERN
bcrypt1999VariablePASSWORD HASHING
Argon22015VariablePASSWORD HASHING (terbaru)

Praktik: Hash di Command Line

Bash - Hash Commands
# Hash string dengan MD5
$ echo -n "hello" | md5sum
5d41402abc4b2a76b9719d911017c592  -

# Hash string dengan SHA-256
$ echo -n "hello" | sha256sum
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824  -

# Hash file
$ sha256sum dokumen.pdf
a1b2c3d4e5f6...  dokumen.pdf

# Verifikasi hash (bandingkan dg file .sha256)
$ sha256sum -c checksums.sha256
dokumen.pdf: OK

# Avalanche effect - bandingkan hash "hello" dan "hello."
$ echo -n "hello"  | sha256sum
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

$ echo -n "hello." | sha256sum
c0535e4be2b79ffd93291305436bf889314e4a3faec05ecffcbb7df31ad9e51a
# Perhatikan: hanya tambah 1 karakter (titik), tapi hash BERBEDA TOTAL!

Hash untuk Password

JANGAN PERNAH menyimpan password plaintext atau hash sederhana (MD5/SHA) di database! Gunakan password hashing khusus:

KENAPA HASH BIASA TIDAK CUKUP?
  • Rainbow table: tabel hash yang sudah dihitung sebelumnya - bisa reverse lookup
  • Brute force cepat: GPU bisa hitung miliaran hash/detik
  • Tidak ada salt: password sama = hash sama

Solusi: Password Hashing dengan Salt + Stretching

  • Salt: random string ditambahkan ke password sebelum hash - mencegah rainbow table
  • Stretching/Work factor: hash diulang ribuan kali - memperlambat brute force
  • Memory-hard: butuh banyak RAM - mencegah GPU attack
Python - Password Hashing
# Install: pip install bcrypt
import bcrypt

# Hash password
password = b"MySecretPassword123!"
salt = bcrypt.gensalt(rounds=12)  # 2^12 = 4096 rounds
hashed = bcrypt.hashpw(password, salt)
print(f"Hash: {hashed}")
# Output: b'$2b$12$KIXfQvH...'

# Verifikasi password
bcrypt.checkpw(b"MySecretPassword123!", hashed)  # True
bcrypt.checkpw(b"WrongPassword", hashed)          # False

# Argon2 (lebih modern)
# pip install argon2-cffi
from argon2 import PasswordHasher
ph = PasswordHasher()
hash = ph.hash("MySecretPassword123!")
ph.verify(hash, "MySecretPassword123!")  # True

Kegunaan Hash Function

PASSWORD STORAGE

Simpan hash, bukan plaintext. bcrypt, Argon2.

FILE INTEGRITY

Verifikasi file tidak berubah (checksum).

BLOCKCHAIN

Bitcoin mining = mencari hash dengan pola tertentu.

DIGITAL FINGERPRINT

Identifikasi unik file/data.

DIGITAL SIGNATURE

Hash pesan dulu, lalu tanda tangani (efisien).

HASH TABLE

Struktur data untuk lookup cepat.

ANALOGI: HASH = SIDIK JARI MANUSIA

Hash function seperti sidik jari:

  • Setiap orang punya sidik jari unik (seperti hash unik untuk data)
  • Dari sidik jari, tidak bisa merekonstruksi wajah orang (one-way)
  • Dua orang berbeda tidak mungkin punya sidik jari sama (collision resistant)
  • Perubahan kecil (luka kecil) = sidik jari tetap terdeteksi (avalanche)

Tapi ingat: sidik jari bukan enkripsi - tidak bisa dibalik!

REFERENSI
  • NIST FIPS 180-4 - Secure Hash Standard (SHS)
  • NIST FIPS 202 - SHA-3 Standard
  • RFC 2898 - PBKDF2 (Password-Based Key Derivation)
  • PHC (Password Hashing Competition) - Argon2 Winner (2015)
  • OWASP - Password Storage Cheat Sheet
6.7

DIGITAL SIGNATURE

Digital signature (tanda tangan digital) adalah mekanisme kriptografi yang memberikan autentikasi (siapa pengirim), integritas (pesan tidak diubah), dan non-repudiation (pengirim tidak bisa menyangkal). Ini adalah padanan digital dari tanda tangan basah di dokumen fisik.

Cara Kerja

Digital signature menggunakan kriptografi asimetris secara terbalik:

  • Menandatangani: pakai private key pengirim
  • Memverifikasi: pakai public key pengirim
ANIMASI: PROSES DIGITAL SIGNATURE
ALICE (SIGNER) 1. Hash pesan 2. Encrypt hash dg PRIVATE KEY BOB (VERIFIER) 1. Decrypt signature dg PUBLIC KEY Alice 2. Bandingkan hash PESAN + SIGNATURE (via internet) VERIFIKASI BERHASIL JIKA: Hash yang dihitung Bob = Hash yang didekripsi dari signature ✓ Autentikasi: hanya Alice yang punya private key ✓ Integritas: hash cocok = pesan tidak diubah

Langkah-langkah Detail

  1. Alice membuat pesan M
  2. Alice menghitung hash H(M) dengan SHA-256
  3. Alice menandatangani: S = Sign(H(M), PrivateKeyAlice)
  4. Alice mengirim (M, S) ke Bob
  5. Bob menghitung hash H(M) dari pesan yang diterima
  6. Bob memverifikasi: Verify(S, PublicKeyAlice) = H(M)?
  7. Jika cocok: signature valid, pesan asli dari Alice, tidak diubah

Sertifikat Digital & CA

Masalah: bagaimana Bob yakin public key yang dia terima benar-benar milik Alice? Eve bisa saja mengirim public key-nya sendiri dan mengaku sebagai Alice. Solusinya: Certificate Authority (CA).

SERTIFIKAT DIGITAL (X.509)

Sertifikat digital adalah dokumen elektronik yang mengikat identitas seseorang/organisasi dengan public key-nya, ditandatangani oleh CA terpercaya.

  • CA (Certificate Authority): pihak ketiga terpercaya (Let's Encrypt, DigiCert, Comodo)
  • CSR (Certificate Signing Request): permintaan sertifikat dari pemohon
  • Chain of Trust: root CA -> intermediate CA -> end entity certificate

Praktik: Membuat Digital Signature dengan OpenSSL

Bash - Digital Signature
# 1. Generate key pair
$ openssl genrsa -out alice-private.pem 2048
$ openssl rsa -in alice-private.pem -pubout -out alice-public.pem

# 2. Alice membuat pesan
$ echo "Perjanjian rahasia antara Alice dan Bob" > pesan.txt

# 3. Alice hitung hash & tanda tangani
$ openssl dgst -sha256 -sign alice-private.pem \
    -out pesan.sig pesan.txt

# 4. Alice kirim (pesan.txt + pesan.sig + alice-public.pem) ke Bob

# 5. Bob verifikasi signature
$ openssl dgst -sha256 -verify alice-public.pem \
    -signature pesan.sig pesan.txt
Verified OK

# Jika pesan diubah, verifikasi gagal:
$ echo "Perjanjian DIUBAH" >> pesan.txt
$ openssl dgst -sha256 -verify alice-public.pem \
    -signature pesan.sig pesan.txt
Verification Failure

Penerapan Digital Signature

HTTPS/TLS

Sertifikat SSL/TLS website ditandatangani oleh CA.

DOKUMEN RESMI

e-KTP, e-Paspor, kontrak elektronik.

CODE SIGNING

Software ditandatangani developer (Windows, macOS).

EMAIL (S/MIME, PGP)

Email terenkripsi & terverifikasi.

CRYPTOCURRENCY

Transaksi Bitcoin ditandatangani dg private key.

E-COURT

Dokumen pengadilan elektronik di Indonesia.

Enkripsi vs Digital Signature

ASPEKENKRIPSIDIGITAL SIGNATURE
TujuanKerahasiaanAutentikasi & integritas
Kunci untuk prosesPublic key penerimaPrivate key pengirim
Kunci untuk reversePrivate key penerimaPublic key pengirim
Menjawab pertanyaan"Siapa yang bisa baca?""Siapa yang kirim? Utuh?"
ConfidentialityYaTidak
Non-repudiationTidakYa
ANALOGI: DIGITAL SIGNATURE = METERAI + TANDA TANGAN

Dalam dokumen fisik:

  • Tanda tangan = membuktikan siapa yang tanda tangani (autentikasi)
  • Meterai = membuktikan dokumen resmi & tidak diubah (integritas)
  • Saksi = tidak bisa menyangkal (non-repudiation)

Digital signature = versi digital dari semua ini, dengan keamanan matematis yang jauh lebih kuat.

REFERENSI
  • RFC 5280 - Internet X.509 Public Key Infrastructure Certificate
  • NIST FIPS 186-4 - Digital Signature Standard (DSS)
  • CA/Browser Forum - Baseline Requirements for SSL Certificates
  • Let's Encrypt - Free SSL/TLS Certificates (letsencrypt.org)
6.8

PENERAPAN KRIPTOGRAFI

Setelah memahami teori, saatnya melihat bagaimana kriptografi digunakan dalam teknologi sehari-hari. Anda mungkin tidak menyadarinya, tapi kriptografi bekerja di balik layar setiap detik saat Anda online.

1. HTTPS / TLS (Web Security)

HTTPS (HTTP over TLS) adalah fondasi keamanan web modern. Setiap website yang Anda kunjungi dengan https:// menggunakan kriptografi.

ANIMASI: TLS 1.3 HANDSHAKE (SIMPLIFIED)
CLIENT SERVER 1. ClientHello (supported ciphers, random) 2. ServerHello + Certificate + ServerKeyShare 3. Client verify cert, compute shared secret 4. Client Finished (encrypted) 5. Server Finished (encrypted) SECURE CHANNEL ESTABLISHED Data transfer dg AES-256-GCM (simetris) Session key dari ECDHE (asimetris) + HKDF

Kriptografi dalam TLS 1.3:

  • Key exchange: ECDHE (Elliptic Curve Diffie-Hellman Ephemeral)
  • Authentication: RSA atau ECDSA signature pada sertifikat
  • Bulk encryption: AES-256-GCM atau ChaCha20-Poly1305
  • Hash: SHA-256 atau SHA-384
Bash - Cek TLS di website
# Lihat detail TLS/SSL website
$ openssl s_client -connect abdurrozak.my.id:443 -tls1_3

# Output (simplified):
CONNECTED(00000003)
---
SSL handshake has read 4567 bytes and written 456 bytes
Verification: OK
---
New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384
Server public key is 2048 bit
Secure Renegotiation IS NOT supported
---
Certificate chain
 0 s:CN = abdurrozak.my.id
   i:C = US, O = Let's Encrypt, CN = R3
---

# Cek sertifikat website
$ echo | openssl s_client -connect google.com:443 2>/dev/null | \
    openssl x509 -noout -text

2. End-to-End Encryption (Messaging)

WhatsApp, Signal, iMessage menggunakan Signal Protocol - protokol E2E paling aman saat ini.

FITUR SIGNAL PROTOCOL
  • Double Ratchet Algorithm: kunci berubah setiap pesan (forward secrecy)
  • X3DH (Extended Triple Diffie-Hellman): key exchange awal
  • Curve25519: elliptic curve untuk kriptografi cepat
  • AES-256 + HMAC-SHA256: enkripsi & autentikasi
  • Forward secrecy: jika kunci hari ini bocor, pesan kemarin tetap aman
E2E vs ENKRIPSI DI TRANSIT
  • E2E (WhatsApp/Signal): hanya pengirim & penerima yang bisa baca. Server provider TIDAK bisa baca.
  • Enkripsi di transit (Gmail): Google mengenkripsi saat transit, tapi Google bisa baca email Anda di server mereka.

3. Cryptocurrency (Bitcoin)

Bitcoin menggunakan tiga jenis kriptografi secara bersamaan:

  • ECDSA (Elliptic Curve): untuk tanda tangan transaksi (otentikasi pemilik)
  • SHA-256: untuk mining (proof-of-work) & alamat
  • Merkle Tree: struktur data untuk verifikasi efisien
Python - Bitcoin Address Generation (Simplified)
# Install: pip install ecdsa base58
import hashlib
import ecdsa
import base58

# 1. Generate private key (random 256-bit)
private_key = ecdsa.SigningKey.generate(curve=ecdsa.SECP256k1)
print(f"Private Key: {private_key.to_string().hex()}")

# 2. Derive public key
public_key = private_key.get_verifying_key()
print(f"Public Key : {public_key.to_string().hex()}")

# 3. Bitcoin address = SHA256 + RIPEMD160 + Base58Check
sha256_hash = hashlib.sha256(public_key.to_string()).digest()
ripemd160 = hashlib.new('ripemd160')
ripemd160.update(sha256_hash)
address_hash = ripemd160.digest()

# Add version byte (0x00 for mainnet)
versioned = b'\x00' + address_hash

# Checksum (4 bytes of double SHA256)
checksum = hashlib.sha256(hashlib.sha256(versioned).digest()).digest()[:4]
bitcoin_address = base58.b58encode(versioned + checksum)

print(f"Bitcoin Address: {bitcoin_address.decode()}")
# Contoh output: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa

4. PGP/GPG (Email Encryption)

PGP (Pretty Good Privacy) oleh Phil Zimmermann (1991) - sistem enkripsi email end-to-end. Menggunakan web of trust (bukan CA).

Bash - GPG Basic Usage
# Generate key pair
$ gpg --full-generate-key
# Pilih RSA 4096, masukkan nama & email, set passphrase

# List keys
$ gpg --list-keys
$ gpg --list-secret-keys

# Export public key (untuk dibagikan)
$ gpg --armor --export alice@example.com > alice-public.asc

# Import public key teman
$ gpg --import bob-public.asc

# Enkripsi file untuk Bob
$ gpg --encrypt --recipient bob@example.com rahasia.txt
# Output: rahasia.txt.gpg

# Dekripsi file (hanya Bob yang bisa)
$ gpg --decrypt rahasia.txt.gpg > rahasia.txt

# Tanda tangani file
$ gpg --sign --detach-sign dokumen.pdf
# Output: dokumen.pdf.sig

# Verifikasi signature
$ gpg --verify dokumen.pdf.sig dokumen.pdf

5. Password Manager

Password manager seperti Bitwarden, 1Password, KeePass menggunakan kriptografi untuk menyimpan password Anda dengan aman:

  • Master password di-hash dengan PBKDF2/Argon2 (ribuan iterasi)
  • Encryption key diturunkan dari master password
  • Semua data dienkripsi dengan AES-256-GCM
  • Zero-knowledge: provider tidak bisa baca data Anda

6. Disk Encryption

Full disk encryption melindungi seluruh isi hard drive:

  • BitLocker (Windows) - AES-128/256
  • FileVault (macOS) - AES-128/256
  • LUKS (Linux) - AES, Serpent, Twofish
Bash - LUKS Disk Encryption (Linux)
# Format partition dg LUKS
$ sudo cryptsetup luksFormat /dev/sdb1
# WARNING! Data akan terhapus. Ketik YES untuk konfirmasi.

# Buka encrypted partition
$ sudo cryptsetup open /dev/sdb1 my-encrypted
Enter passphrase: ********

# Mount
$ sudo mkfs.ext4 /dev/mapper/my-encrypted
$ sudo mount /dev/mapper/my-encrypted /mnt/secure

# Tutup
$ sudo umount /mnt/secure
$ sudo cryptsetup close my-encrypted

# Cek status
$ sudo cryptsetup status my-encrypted
/dev/mapper/my-encrypted is active and is in use.
  type:    LUKS1
  cipher:  aes-xts-plain64
  key location: dm-crypt
  mode:    read/write

Ringkasan Penerapan

TEKNOLOGIKRIPTOGRAFI YANG DIGUNAKAN
HTTPS/TLSECDHE + RSA/ECDSA + AES-GCM + SHA-256
WhatsApp/SignalX3DH + Double Ratchet + Curve25519 + AES-256
BitcoinECDSA (secp256k1) + SHA-256 + RIPEMD-160
SSHEd25519/RSA + ChaCha20-Poly1305
PGP/GPGRSA/ECC + AES-256 + SHA-256
Password ManagerArgon2/PBKDF2 + AES-256-GCM
Disk EncryptionAES-XTS / Serpent-Twofish-AES
WiFi WPA3SAE (Simultaneous Authentication of Equals) + AES-GCMP

Praktik Komprehensif: Verifikasi File Download

Setiap kali Anda download software penting, VERIFIKASI HASH-nya:

Bash - Verifikasi File Download
# Contoh: download Ubuntu ISO
$ wget https://releases.ubuntu.com/24.04/ubuntu-24.04-desktop-amd64.iso

# Download file SHA256SUMS resmi
$ wget https://releases.ubuntu.com/24.04/SHA256SUMS

# Download signature file
$ wget https://releases.ubuntu.com/24.04/SHA256SUMS.gpg

# Import kunci GPG Ubuntu
$ gpg --keyserver keyserver.ubuntu.com --recv-keys \
    843938DF228D22F7B3742BC0D94AA3F0AFE21DFA

# Verifikasi signature file SHA256SUMS
$ gpg --verify SHA256SUMS.gpg SHA256SUMS
gpg: Good signature from "Ubuntu CD Image Automatic Signing Key"

# Verifikasi hash ISO
$ sha256sum -c SHA256SUMS 2>&1 | grep ubuntu
ubuntu-24.04-desktop-amd64.iso: OK

# Jika OK, file asli dan tidak dimodifikasi!
ANALOGI: KRIPTOGRAFI = LISTRIK DI RUMAH

Kriptografi seperti listrik:

  • Anda tidak melihatnya, tapi ada di mana-mana
  • Saat berfungsi, Anda tidak menyadarinya
  • Saat tidak ada, Anda baru sadar betapa pentingnya
  • Tanpanya, teknologi modern tidak bisa berjalan

Setiap kali Anda buka browser, kirim WhatsApp, transfer bank, login ke email - kriptografi bekerja untuk Anda.

Masa Depan: Post-Quantum Cryptography

ANCAMAN KOMPUTER KUANTUM

Komputer kuantum (dengan algoritma Shor) bisa memecahkan RSA dan ECC dalam hitungan jam. NIST telah mengumumkan standar post-quantum cryptography tahun 2022:

  • CRYSTALS-Kyber (ML-KEM): key encapsulation
  • CRYSTALS-Dilithium (ML-DSA): digital signature
  • SPHINCS+ (SLH-DSA): signature berbasis hash
  • FALCON (FN-DSA): signature berbasis lattice

Organisasi mulai migrasi sekarang karena serangan "harvest now, decrypt later" - penyerang menyimpan data terenkripsi hari ini untuk didekripsi nanti dengan komputer kuantum.

REFERENSI
  • RFC 8446 - The Transport Layer Security (TLS) Protocol Version 1.3
  • Signal Foundation - Signal Protocol Documentation (signal.org/docs)
  • Nakamoto, S. (2008). Bitcoin: A Peer-to-Peer Electronic Cash System
  • Zimmermann, P. - PGP Source Code & Documentation (gnupg.org)
  • NIST - Post-Quantum Cryptography Standardization (FIPS 203, 204, 205)
  • OWASP - Cryptographic Storage Cheat Sheet
Q

DIAGNOSTIK KOMPETENSI

Uji pemahaman Anda tentang Bab 06! Target minimal: 70% untuk melanjutkan ke Bab 07.

PETUNJUK
  • Total 10 pertanyaan pilihan ganda
  • Klik opsi untuk menjawab - feedback langsung
  • Benar = HIJAU, salah = MAGENTA
  • Penjelasan muncul setelah menjawab
  • Klik "LIHAT HASIL AKHIR" untuk skor final
SKOR ANDA
0/ 10
-

-

REFERENSI BAB 06 SECARA KESELURUHAN
  • Schneier, B. (1996). Applied Cryptography, 2nd Ed. Wiley.
  • Stallings, W. (2020). Cryptography and Network Security, 8th Ed.
  • NIST FIPS 197 - AES Standard
  • NIST FIPS 180-4 - Secure Hash Standard (SHS)
  • NIST FIPS 186-4 - Digital Signature Standard
  • RFC 8446 - TLS 1.3
  • RFC 5280 - X.509 Certificates
  • Signal Foundation - Signal Protocol
  • Nakamoto, S. (2008). Bitcoin Whitepaper
  • NIST - Post-Quantum Cryptography Standards (2024)
ABDURROZAK.MY.ID // JARINGAN SOSIAL