Anda di halaman 1dari 9

Diterjemahkan dari bahasa Inggris ke bahasa Indonesia - www.onlinedoctranslator.

com

Bab 5
Kriptografi

Latihan Lab
5.01 Enkripsi Kunci Simetris
5.02 Enkripsi Kunci Asimetris
5.03 Hashing
5.04 Pertukaran Kunci Diffie-Hellman

Analisis Lab
Kuis Istilah Kunci

C riptografi adalah praktik dan ilmu komunikasi yang aman dan


teknik pengkodean. Kriptografi memberikan kerahasiaan, sehingga hanya pengirim dan
penerima pesan yang dituju yang memahaminya. Kerahasiaan file saat istirahat berarti bahwa
hanya pengguna dengan otorisasi yang tepat yang dapat melihat file dalam format yang
diinginkan. Mereka yang tidak memiliki otorisasi yang tepat masih dapat melihat file di hard
drive dan bahkan membuka file dalam hex editor (file tidak disembunyikan), tetapi mereka
tidak akan dapat membuka file dalam program yang dirancang untuk dibuka dalam dan
melihatnya sebagai sesuatu yang berarti.

Kriptografi menyediakan integritas, yang memastikan bahwa tidak ada bagian dari pesan
yang berubah saat transit, baik secara tidak sengaja maupun jahat. Pesan yang dikirim harus
sama persis dengan pesan yang diterima. Integritas file saat istirahat memastikan bahwa file
tidak diubah secara tidak sengaja, berbahaya, atau saat tidak sah. Perubahan yang tidak sah,
misalnya, mungkin melibatkan file yang diubah oleh karyawan yang berwenang yang tidak
sesuai dengan kebijakan manajemen perubahan.

Secara tidak langsung, melalui kerahasiaan dan integritas, kriptografi menyediakan


ketersediaan. Dengan semua langkah keamanan siber Anda—berurusan dengan perangkat keras,
perangkat lunak, orang, proses, dan banyak lagi—pengguna yang berwenang untuk melakukan
pekerjaan mereka harus dapat melakukannya, dan sumber daya yang mereka butuhkan harus
tersedia untuk mereka. Konsep ketersediaan juga terlihat untuk memastikan bahwa Anda tidak
menjadi korban serangan penolakan layanan (DDoS) terdistribusi dan bahwa Anda memiliki
toleransi kesalahan dan penyeimbangan beban jika terjadi insiden atau bencana keamanan siber.

Kriptografi menyediakan otentikasi, di mana seseorang dapat membuktikan bahwa mereka


adalah siapa yang mereka klaim, dan nonrepudiation, di mana pengirim pesan tidak dapat
menyangkal telah mengirimnya.

Sering digunakan dalam konteks kriptografi adalah dua istilah terkait:


kriptanalisis dan kriptologi. Pembacaan sandi adalah ilmu memecahkan sistem
kriptografi, kode, dan algoritma. Orang jahat melakukannya, tetapi juga orang baik,
karena sebelum kriptosistem, kode, dan algoritme dinyatakan aman, mereka harus
dianalisis secara menyeluruh oleh para peneliti, yang memeriksa untuk melihat
apakah mereka dapat dibobol.Kriptologi mengacu pada studi ilmiah dan
matematika baik kriptografi dan kriptanalisis.

Pesan atau file dalam plaintext dalam bentuk yang dapat dibaca manusia. Plaintext juga
mengacu pada data apa pun, termasuk file biner, dalam bentuk yang dapat dilihat atau digunakan
tanpa harus mengubahnya menjadi representasi yang berbeda. Ketika sebuah pesan dikirim
sebagai teks biasa melalui saluran yang tidak aman, penyerang bisa mendapatkan salinan dan
memahami pesan tersebut, seperti yang bisa dilakukan oleh penerima yang dituju. Saluran yang
tidak aman dapat berupa kabel atau nirkabel, dan dapat dibatasi pada infrastruktur Wi-Fi atau
mencakup interkoneksi Internet.

Plaintext dan kunci, string 1s dan 0s, dimasukkan ke dalam cipher, yang merupakan
algoritma enkripsi yang mengubah plaintext menjadi output yang tidak dapat dibaca yang
dikenal sebagai ciphertext. Ketika sebuah pesan dikirim sebagai ciphertext melalui saluran
yang tidak aman, penyerang bisa mendapatkan salinannya, tetapi ciphertext akan terlihat
seperti bit dan byte acak dan tidak akan berisi informasi yang berguna atau berarti bagi
penyerang. Berbeda dengan penyerang, penerima yang dituju memiliki kunci, dan
memasukkan kunci dengan ciphertext ke dalam cipher untuk mengubah ciphertext kembali
menjadi plaintext asli.

Sebuah algoritma saja tidak cukup; plaintext yang dimasukkan ke dalam algoritma
menghasilkan ciphertext sebagai output. Algoritma terkenal dan tidak pernah dirahasiakan.
Mereka tersedia untuk dipelajari dan dianalisis oleh siapa saja. Jadi untuk apa?
menghentikan siapa pun dari sekadar mengembalikan ciphertext ke dalam
algoritme untuk menghasilkan plaintext asli? Tidak. Kerahasiaan, kerahasiaan,
terletak pada kunci, yang merupakan input kedua ke algoritma, selain teks
biasa. Selalu ada dua input untuk algoritma: plaintext dan kunci.

Ciphertext diproduksi sebagai output, namun, tanpa kunci yang diperlukan untuk
dekripsi, penyerang tidak bisa begitu saja memasukkan ciphertext kembali ke dalam
algoritma untuk menghasilkan plaintext. Kurangnya kunci inilah yang membatasi dekripsi
ciphertext yang tidak sah. Karena itu, sangat penting untuk melindungi kunci setiap saat.
Kerahasiaan sepenuhnya terletak pada kuncinya.

Prinsip Kerckhoffs menyatakan bahwa kerahasiaan kunci menentukan keamanan,


sementara segala sesuatu yang lain tentang suatu sistem dapat diketahui publik. Maxim
Shannon menyatakan bahwa musuh mengetahui sistemnya. Untuk itu, tidak mungkin untuk
merahasiakan detail dari algoritma populer. Mengandalkan kerahasiaan desain dan
implementasi sistem sebagai keamanan Anda dengan keyakinan bahwa Anda mencapai
keamanan disebutkeamanan melalui ketidakjelasan. Mungkin ada banyak kerentanan dalam
suatu sistem, tetapi jika tidak ada yang tahu tentang sistem atau kekurangannya, Anda
mungkin percaya bahwa serangan dapat dicegah. Keamanan melalui ketidakjelasan,
sayangnya, seperti burung unta yang menancapkan kepalanya di pasir karena hanya masalah
waktu sebelum sistem dan kekurangannya akan ditemukan.

Untuk membuat algoritma enkripsi yang kuat, Anda harus membuangnya ke publik
dan membiarkan banyak cryptanalyst mencoba menemukan kekurangan di dalamnya.
Merahasiakannya dan melakukan semua pekerjaan itu sendiri bukanlah jalan terbaik.
Sekarang, dengan logika murni, jika satu-satunya cara untuk membuat algoritma aman
adalah membiarkan orang menyodok dan mendorongnya, itu tidak bisa dirahasiakan.
Bagaimana jika algoritma dikompromikan? Setiap lokasi di mana algoritme
diimplementasikan perlu diubah, dan itu sulit dilakukan. Lebih mudah mengganti kunci
daripada algoritme. Jika Anda menduga ada kunci yang disusupi, Anda bisa memilih kunci
yang berbeda. Bahkan, Anda bahkan dapat mengganti kunci pada interval waktu tertentu
untuk membatasi dampak kebocoran potensial. Beralih algoritma enkripsi setiap tahun, di
sisi lain, tidak praktis. Selanjutnya, jika algoritma itu akan dilindungi, itu harus ada sebagai
kode sumber di suatu tempat. Bagaimana jika lokasi itu diretas? Sekarang semua sistem
yang menerapkan algoritme dan bergantung pada kerahasiaan algoritme perlu diubah
dengan cepat. Itu tidak praktis.
60 MENIT

Latihan Lab 5.01: Enkripsi Kunci Simetris


Enkripsi kunci simetris, juga dikenal sebagai kriptografi kunci simetris dan kriptografi kunci
pribadi, digunakan untuk memastikan kerahasiaan pesan dan file. Dalam enkripsi kunci
simetris, kunci yang sama digunakan baik untuk mengenkripsi dan mendekripsi, seperti yang
ditunjukkan pada:Gambar 5-1.

FGAMBAR 5-1 Enkripsi kunci simetris

Enkripsi kunci simetris sangat cepat, terutama dibandingkan dengan enkripsi


kunci asimetris, yang menggunakan dua kunci—satu untuk enkripsi dan satu lagi
untuk dekripsi. Karena kecepatannya, algoritma kunci simetris digunakan untuk
enkripsi data massal. Kontra terbesar dari enkripsi kunci simetris adalah masalah
distribusi kunci, yang mengirimkan kunci rahasia ke pihak lain melalui media yang
tidak aman. Jika man-in-the-middle (MITM) memotong ciphertext dan kunci (ini
adalah contoh serangan man-in-the-middle), MITM dapat mendekripsi semuanya,
seperti penerima yang dituju. Bagaimana Anda mengirimkan kunci dengan aman
melalui infrastruktur yang tidak aman? Itu akan dijawab dan didemonstrasikan
dalamBab 6.

Algoritma enkripsi kunci simetris usang yang pernah populer


termasuk DES (Data Encryption Standard), 3DES (Triple DES), dan RC4
(Rivest Cipher 4). Algoritma standar saat ini untuk enkripsi kunci simetris adalah AES
(Advanced Encryption Standard). Namun, algoritma kunci simetris yang biasa
ditemukan pada malware adalah cipher XOR sederhana.

Algoritma enkripsi kunci simetris dapat masuk ke dalam salah satu dari dua kategori:
stream cipher atau block cipher. Stream cipher mengenkripsi dan mendekripsi satu bit pada
satu waktu, sedangkan cipher blok mengenkripsi dan mendekripsi kelompok bit (dikenal
sebagai blok) pada suatu waktu. Meskipun cipher blok lebih lambat dari cipher aliran karena
overhead tambahan, sebagian besar algoritma enkripsi kunci simetris yang digunakan saat
ini, pada kenyataannya, adalah cipher blok.

A5/1 adalah stream cipher yang digunakan oleh standar Global System for Mobile
Communications (GSM) untuk komunikasi seluler. ChaCha adalah stream cipher yang
digunakan Google pada perangkat Android dalam mode yang dikenal sebagai Adiantum.

DES dan 3DES yang sudah usang termasuk dalam kategori cipher blok. AES adalah cipher
blok yang sebenarnya sangat efisien dalam perangkat lunak.

Sandi sederhana, seperti XOR, sangat menguntungkan bagi pembuat malware karena
berbagai alasan. Pertama, ukuran instruksi yang dibutuhkan untuk cipher XOR secara
signifikan lebih kecil daripada cipher lainnya. Ini membuat cipher XOR bagus untuk digunakan
pada perangkat dengan batasan ukuran, seperti perangkat yang disematkan, dan lingkungan
dengan keterbatasan ruang, seperti mengeksploitasi shellcode. Kedua, mereka sebenarnya
lebih sulit untuk dideteksi dalam biner malware daripada cipher yang lebih canggih seperti
AES, yang meninggalkan banyak artifak dalam penggunaannya. Akhirnya, mereka tidak
memerlukan overhead yang tinggi, dan ini memungkinkan mereka untuk berjalan dengan
efisien. Pembuat malware yang menggunakan sandi sederhana, seperti XOR, tahu bahwa
biner mereka akan terdeteksi mengandung enkripsi dan bahkan mungkin dibalik dan
didekripsi oleh analis malware. Namun, musuh ini hanya ingin cara cepat untuk menggagalkan
analisis dasar untuk mengidentifikasi tindakan malware, membantu malware untuk
menghindari deteksi oleh firewall, sistem deteksi intrusi (IDS), atau sistem pencegahan intrusi
(IPS). Selain itu, sandi XOR sangat umum digunakan sebagai bagian dari algoritma kriptografi
yang lebih besar dan lebih canggih seperti AES.

Tujuan pembelajaran
Dalam kegiatan ini, Anda akan belajar menggunakan XOR cipher untuk mengenkripsi plaintext
menjadi ciphertext dan mendekripsi ciphertext menjadi plaintext. Di akhir lab ini
berolahraga, Anda akan dapat

• Enkripsi dan dekripsi dengan sandi XOR


• Pahami cara kerja enkripsi kunci simetris

Bahan dan Pengaturan Lab


Bahan yang Anda butuhkan untuk lab ini adalah

• NS Prinsip Keamanan Komputer: CompTIA Security+ and Beyond


buku pelajaran

• Peramban web dengan koneksi Internet

Mari kita lakukan!

Katakanlah saya ingin mengirimkan karakter J dengan aman. Karakter ASCII


(Kode Standar Amerika untuk Pertukaran Informasi)/UnicodeJ adalah 4A di
basis 16 (heksadesimal), yaitu 01001010 di basis 2 (biner). (Lihat
www.asciitable.com untuk tabel ASCII lengkap dan
www.rapidtables.com/convert/number/hex-to-binary.html untuk tabel konversi
heksadesimal ke biner.)

Dalam hal ini, 01001010 akan dianggap sebagai plaintext, salah satu input ke
algoritma enkripsi. Namun, saya tidak ingin mengirimkan bitstream asli ini. Saya ingin
mengenkripsi dan mengirimkan ciphertext sebagai gantinya. Kunci yang saya buat
secara acak adalah 01100010. Sekarang saya memasukkan teks biasa dan kunci ke
dalam algoritma enkripsi. Algoritma yang saya pilih adalah cipher XOR.

Ingat logika Boolean dan tabel kebenaran Anda? Jika ada dua input, dan bit
pertama atau kedua adalah 1, output 1 dihasilkan, seperti yang ditunjukkan
padaTabel 5-1.
TMAMPU 5-1 Logis ATAU
Kriptografi umumnya menggunakan turunan dari Logical OR—Logis XOR (eksklusif
OR, huruf kedua dalam kata eksklusif adalah asal X dalam XOR). Menggunakan XOR, 1
dihasilkan sebagai output jika bit pertama atau kedua adalah 1, tetapi tidak keduanya,
seperti yang ditunjukkan padaTabel 5-2.

TMAMPU 5-2 XOR Logis


Dari sini, kita dapat melihat sebuah pola (seperti yang ditunjukkan pada Tabel 5-2):

• Ketika dua bit input sama (0, 0 atau 1, 1), hasilnya adalah 0.
• Ketika dua bit input berbeda (0, 1 atau 1, 0), hasilnya adalah 1. Pola lain,

yang berkaitan dengan bit flips, dapat dilihat pada Tabel 5-2:

• Saat Anda melakukan XOR dengan bit 0 sebagai bit kedua, bit pertama
tidak berubah.

• Saat Anda XOR dengan 1 bit sebagai bit kedua, bit pertama membalik (0 ke 1
atau 1 sampai 0).

Pola-pola ini menghasilkan peluang besar. Cipher XOR menyajikan peluang 50/50
bit 0 berubah menjadi 0 atau 1, dan peluang 50/50 bit 1 berubah menjadi 0 atau 1.

Ketika saya menerapkan algoritma ke plaintext dan kunci, hasil yang dihasilkan
disebut teks sandi, keluaran gobbledygook campur aduk yang akan dilihat oleh MITM,
tetapi tidak dapat dipahami. MengonversiJ untuk ciphertext terlihat seperti ini:

Jika saya mengirim seseorang baik ciphertext dan kunci, mereka dapat menerapkan algoritma yang
sama untuk mendekripsi:

Hasil yang dihasilkan adalah bitstream asli, plaintext.

1a, 1b

Langkah 1 Sekarang giliran Anda untuk berlatih mendekripsi ciphertext! Bayangkan seseorang baru saja
mengirimi Anda 9 byte ini:

00111111 00001001 00001111 00011001 00011110 00000101 00011000


00010101 01000111

Orang ini memberi tahu Anda bahwa byte adalah karakter ASCII/Unicode, dienkripsi
dengan cipher XOR, menggunakan kunci byte tunggal 01101100, yang berulang untuk
setiap byte plaintext/ciphertext.

Gunakan cipher XOR untuk mendekripsi plaintext.

A. Apa biner yang didekripsi?


B. Menggunakan www.asciitable.com, apa plaintext aslinya?

2a, 2b

Langkah 2 Sekarang Anda akan mengirim dan menerima pesan dan kunci terenkripsi XOR
dan kemudian mendekripsi pesan terenkripsi dengan kunci yang Anda terima.

A. Berpasangan dengan teman sekelas. Pilih kata yang terdiri dari tiga hingga lima
huruf dan temukan nilai ASCII/Unicode-nya. Munculkan kunci XOR byte tunggal
simetris. Enkripsi surat Anda dengan sandi XOR dan kunci yang Anda pilih.
Berikan pasangan Anda ciphertext dan kunci untuk mendekripsi.

B. Dekripsi ciphertext yang Anda terima dari mitra Anda dengan kunci yang
diterima dari mitra Anda.

Langkah 3 Untuk gambaran umum tentang seberapa terlibatnya AES, lihat dokumentasi resmi
AES di https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.197.pdf. Anda akan melihat bahwa
XOR, seperti yang disebutkan, adalah bagian dari AES.

Langkah 4 Enkripsi beberapa plaintext dengan alat AES online: https://


encodedecode.com/aes256-encrypt-online/. Perhatikan di alat bahwa ada banyak
mode untuk AES, yang menangani pengaruh satu blok terenkripsi terhadap blok
berikutnya.

Situs web berikut memiliki visual yang bagus dari berbagai mode operasi:
www.highgo.ca/2019/08/08/the-difference-in-five-modes-in-theaes-
encryption-algorithm/.
Catatan, seperti yang terlihat di situs web, XOR digunakan di semua mode kecuali yang pertama.

Anda mungkin juga menyukai