Cryptography

Halo teman-teman semua, sebelumnya perkenalkan dulu kami dari kelompok 4 PTI 2019 offering A yang beranggotakan :

  1. Akhmad Syaiful Anwar
  2. Dwi Risma Kumala Dewi
  3. Elok Rosyidatul Khasanah

Teman-teman apakah kalian pernah mendengar tentang cryptography ? apasih cryptography itu ? yuk langsung saja simak penjelasan berikut ini...

A. Cryptography In Practice
Saat memeriksa kekuatan sistem kripto, ada baiknya memeriksa jenis tingkat perlindungan berikut :
  • Mekanismenya atau algoritma yang digunakan
  • Biaya memulihkan teks dari kunci
  • Biaya enkripsi atau nilai data
  • Waktu serangan yang telah berlalu telah jatuh ke dalam besarnya umur data, terlepas dari biayanya
  • Seseorang telah memulihkan satu kunci atau satu pesan
Metode dasar, Operasi kriptografi modern dilakukan dengan menggunakan algoritma dan kunci. Pilihan algoritma tergantung pada jenis operasi kriptografi yang diinginkan. Ada beberapa faktor yang berperan dalam menentukan kekuatan suatu algoritma kriptografi yaitu ukuran kunci dan ruang kunci yang dihasilkan.

B. Historical Perspective
Kriptografi adalah suatu rahasia, manusia telah merancang sistem komunikasi rahasia selama yang mereka butuhkan untuk menjaga komunikasi tetap pribadi. Bangsa Romawi biasanya menggunakan metode berbeda yang dikenal dengan sandi geser. Dalam hal ini, satu huruf alfabet digeser sejumlah tempat dalam alfabet untuk huruf lain.
1. Sandi Geser
Chiper Shift apapun dapat dengan mudah dikodekan dan didekodekan pada roda dua lembar kertas dengan alfabet yang ditetapkan sebagai cincin, dengan memindahkan satu lingkaran nomor yang ditentukan dalam shift, kita dapat menerjemahkan karakter.
2. Mesin Enigma
Contoh terkenal dari mesin enkripsi yang relatif modern adalah Mesin Enigma Jerman dari Perang Dunia 2.
3. Subtitution Chiper
Membuat tebakan terpelajar sama seperti bermain hangman, tebakan yang benar dapat menyebabkan lebih banyak atau semua kunci terungkap.
Chiper Vigenere berfungsi sebagai sandi subtitusi polialfabetik yang bergantung pada kata sandi. Ini dilakukan dengan menyiapkan tabel subtitusi seperti berikut. Kemudian kata sandi dicocokkan dengan teks yang dimaksudkan untuk dienkripsi.
One-time pads adalah bentuk enkripsi yang menarik karena secara teoritis sempurna dan tidak dapat dipecahkan. Kuncinya berukuran sama atau lebih besar dari materi yang dienkripsi. Plaintext di XOR-kan terhadap kunci yang menghasilkan chipertext. Apa yang membuat pad satu kali "sempurna" adalah ukuran kuncinya.

C. Algoritma
Setiap skema enkripsi saat ini didasarkan pada algoritma, langkah demi langkah, prosedur komputasi rekursif untuk memecahkan masalah dalam sejumlah langkah yang terbatas. Algoritma kriptografi terdiri dari langkah-langkah matematika untuk mengenkripsi dan mendeskripsikan informasi.
Semua orang tahu cara menggunakan kenop untuk membuka pintu, tanpa kunci untuk membuka kenop, pengetahuan cara untuk membuka kunci itu tidak akan ada gunanya. Karena keamanan algoritma bergantung pada kunci, manajemen kunci menjadi perhatian kritis. Manajemen kunci mencakup segala sesuatu yang berkaitan dengan pertukaran, dan pencabutan kunci. Banyak algoritma kriptografi digital membutuhkan nomor acak untuk memberikan keacakan yang diinginkan. Tingkat atau jumlah keacakan disebut sebagai entropi. Entropi adalah ukuran ketidakpastian yang terkait dengan serangkaian nilai.

D. Hashing Functions
Hashing digunakan sebagai metode untuk menyimpan data dalam sebuah array agar penyimpanan data, pencarian data, penambahan data, dan penghapusan data dapat dilakukan dengan cepat. Selain digunakan pada penyimpanan data, fungsi hash juga digunakan pada algoritma enkripsi sidik jari digital (fingerprint) untuk mengautentifikasi pengirim dan penerima pesan.

Ada beberapa program yang tersedia yang akan menerima input dan menghasilkan nilai hash, memungkinkan kita memverifikasi integritas konten yang diunduh secara independen. Fungsi hash yang bekerja dengan baik untuk penyimpanan pada database belum tentu bekerja dengan baik untuk keperluan kriptografi atau pengecekan kesalahan. Ada beberapa fungsi hash yang diguanakan untuk keperluan kriptografi yaitu :
  • SHA
  • SHA-1
  • SHA-2
  • SHA-3
  • RIPEMD
  • RIPEMD-160
  • Message Digest
  • MD2
  • MD4
  • MD5
E. Symmetric Encryption
Enkripsi simetris adalah metode enkripsi informasi yang lebih tua dan sederhana. Dasar dari enkripsi simetris adalah pengirim dan penerima pesan sebelumnya telah memperoleh kunci yang sama. Beberapa algoritma enkripsi simetris yang populer digunakan saat ini adalah DES, 3DES, AES, dan IDEA. Berikut layout algoritma simetris :
Cast adalah algoritma enkripsi yang mirip dengan DES dalam strukturnya. Algoritma ini dirancang oleh Carlisle Adams dan Stafford Tavares. Cast menggunakan ukuran blok 64-bit untuk versi kunci 64-bit dan 128-bit, dan ukuran blok 128-bit untuk versi kunci 256-bit. Contohnya yaitu RC, RC2, RC4, RC5, RC6.
Blowfish dirancang pada tahun 1994 oleh Bruce Schneier. Ini adalah chiper blok-mode menggunakan blok 64-bit dan panjang kunci variabel dari 32 hingga 448 bit. Sedangkan Twofish juga dikembangkan oleh Bruce Schneier, David Wagner, Chris Hall Ferguson, John Kelsey, dan Doug Whiting. Twofish adalah salah satu dari lima finalis kompetisi AES.
IDEA (International Data Encryption Algorithm) dimulai sebagai PES, atau Encryption Cipher yang diusulkan pada tahun 1990, dan dimodifikasi untuk meningkatkan ketahanannya terhadap kriptanalisis diferensial dan namanya diubah menjadi IDEA pada tahun 1992. Ini adalah sandi mode blok menggunakan Ukuran blok 64-bit dan kunci 128-bit. Input plaintext dibagi menjadi empat segmen 16-bit, A, B, C, dan D. Proses ini menggunakan delapan putaran, dengan proses empat langkah terakhir. Keluaran dari empat langkah terakhir ini kemudian digabungkan untuk membentuk ciphertext.
Block vs Stream
Ketika operasi enkripsi dilakukan pada data, ada dua mode operasi utama, blok dan stream. Operasi blok dilakukan pada blok data, memungkinkan operasi transposisi dan substitusi. Hal ini dimungkinkan ketika potongan besar data hadir untuk operasi. Stream data menjadi lebih umum dengan audio dan video di seluruh Web. Berikut perbandingan antara Block dan Stream :

F. Asymmetric Encryption
Enkripsi asimetris lebih dikenal sebagai kriptografi kunci publik. Enkripsi asimetris sangat berbeda dengan enkripsi simetris. Enkripsi asimetris melibatkan dua kunci yang terpisah tetapi terkait secara matematis. Kunci digunakan dengan cara yang berlawanan. Satu kunci membatalkan tindakan yang lain dan sebaliknya. Berikut contoh ilustrasi menggunakan enkripsi asimetris :
Jadi, seperti yang ditunjukkan pada diatas, jika kita mengenkripsi pesan dengan satu kunci, kunci lainnya digunakan untuk mendekripsi pesan. Pada contoh diatas, Alice ingin mengirim pesan pribadi ke Bob, jadi dia menggunakan kunci publik Bob untuk mengenkripsi pesan. Kemudian, karena hanya kunci pribadi Bob yang dapat mendekripsi pesan, hanya Bob yang dapat membacanya. Dalam contoh yang lebih rendah, Bob ingin mengirim pesan, dengan bukti bahwa itu dari dia. Dengan mengenkripsinya dengan kunci pribadinya, siapa pun yang mendekripsinya dengan kunci publiknya tahu bahwa pesan itu berasal dari Bob. Berikut beberapa contoh protokol Asimetris yang populer :
1. Diffie-Hellman
Diffie-Hellman (DH) diciptakan pada tahun 1976 oleh Whitfield Diffie dan Martin Hellman. Protokol ini merupakan salah satu protokol enkripsi yang paling umum digunakan saat ini. Protokol ini memainkan peran dalam metode pertukaran kunci elektronik dari protokol Secure Sockets Layer (SSL). Protokol ini juga digunakan oleh protokol Transport Layer Security (TLS), Secure Shell (SSH), dan IP Security (IPsec). Diffie-Hellman penting karena memungkinkan berbagi kunci rahasia antara dua orang yang belum pernah saling menghubungi sebelumnya.
2. RSA
RSA adalah salah satu kriptosistem kunci publik pertama yang pernah ditemukan. Protokol ini dapat digunakan untuk enkripsi dan tanda tangan digital. RSA dinamai menurut penemunya, Ron Rivest, Adi Shamir, dan Leonard Adleman, dan pertama kali diterbitkan pada tahun 1977. Algoritma ini menggunakan produk dari dua bilangan prima yang sangat besar dan bekerja berdasarkan prinsip kesulitan dalam memfaktorkan bilangan yang besar tersebut. Yang terbaik adalah memilih bilangan prima besar yang panjangnya 100 hingga 200 digit dan panjangnya sama. 
3. ElGamal
ElGamal dapat digunakan untuk enkripsi dan tanda tangan digital. Taher ElGamal merancang sistem tersebut pada awal 1980-an. Sistem ini tidak pernah dipatenkan dan gratis untuk digunakan. Ini digunakan sebagai standar pemerintah AS untuk tanda tangan digital. Sistem ini didasarkan pada kesulitan menghitung logaritma diskrit dalam bidang terbatas. Tiga angka diperlukan untuk menghasilkan pasangan kunci. 
4. ECC
Elliptic curve cryptography (ECC) bekerja berdasarkan kurva eliptik. Kurva eliptik adalah fungsi sederhana yang digambarkan sebagai kurva looping lembut pada bidang X,Y. Untuk kriptografi, kurva eliptik berfungsi sebagai algoritma kunci publik. Pengguna menyetujui kurva eliptik dan titik kurva tetap. Informasi ini bukan rahasia bersama, dan poin-poin ini dapat dipublikasikan tanpa mengorbankan keamanan sistem.

Simetris vs Asimetris
Baik metode enkripsi simetris maupun asimetris memiliki kelebihan dan kekurangan. Enkripsi simetris cenderung lebih cepat, lebih sedikit melibatkan komputasi, dan lebih baik untuk transfer massal. Tetapi enkripsi simetris mengalami masalah manajemen kunci karena kunci harus dilindungi dari pihak yang tidak berwenang. Metode asimetris menyelesaikan masalah kerahasiaan kunci dengan kunci publik, tetapi menambahkan kompleksitas komputasi yang signifikan yang membuatnya kurang cocok untuk enkripsi massal.

G. Quantum Cryptography
Kriptografi kuantum adalah mekanisme yang menggunakan sistem kuantum untuk menjamin keamanan komunikasi. Kriptografi kuantum memiliki perbedaan dengan sistem kriptografi yang lainnya, terutama dalam pendeteksian kehadiran pihak ketiga (penyadap informasi). Bidang penelitian yang melibatkan mekanika kuantum dan kriptografi adalah kriptanalisis kuantum. Komputer kuantum mampu memfaktorkan bilangan prima besar secara eksponensial lebih cepat daripada komputer normal, berpotensi membuat algoritme RSA, dan sistem apa pun yang didasarkan pada pemfaktoran bilangan prima, tidak aman. Hal ini telah menyebabkan penelitian dalam kriptosistem yang tidak rentan terhadap perhitungan kuantum, bidang yang dikenal sebagai kriptografi pasca-kuantum.

H. Steganography
Steganografi atau Steganography adalah sebuah ilmu, teknik atau seni menyembunyikan sebuah pesan rahasia dengan suatu cara sehingga pesan tersebut hanya akan diketahui oleh si pengirim dan si penerima pesan rahasia tersebut. Beberapa alat deteksi steganografi yang populer termasuk Stegdetect, StegSecret, StegSpy, dan keluarga alat SARC. Keuntungan steganografi dibandingkan penggunaan enkripsi saja adalah bahwa pesan tidak menarik perhatian, dan kesulitan dalam mendeteksi pesan tersembunyi ini memberikan hambatan tambahan untuk analisis. Data yang disembunyikan dalam pesan steganografi sering juga dienkripsi, sehingga jika ditemukan, pesan akan tetap aman. Steganografi memiliki banyak kegunaan tetapi penggunaan yang paling dipublikasikan adalah untuk menyembunyikan materi ilegal, seringkali pornografi, atau diduga untuk komunikasi rahasia oleh jaringan teroris.

I. Cryptography Algorithm Use
Semakin banyak informasi yang dikodekan secara digital dan ditempatkan secara online maka semua data tersebut perlu diamankan. Cara terbaik untuk melakukannya dengan teknologi saat ini adalah dengan menggunakan enkripsi. Bagian ini mempertimbangkan beberapa tugas kriptografi dicapai algoritma dan yang paling cocok. Terdapat 4 aspek keamanan informasi, yaitu kerahasiaan, integritas, autentikasi, dan nonrepudiation. Berikut contoh penggunaan algoritma kriptografi :
1. Cipher Suites
Di berbagai aplikasi, kriptografi digunakan sebagai kumpulan fungsi. Algoritma yang berbeda dapat digunakan untuk autentifikasi, enkripsi atau dekripsi, tanda tangan digital, dan hashing. 
2. Strong and Weak Ciphers
Ada berbagai macam sandi yaitu sandi kuat dan lemah. Dari macam-macam sandi tersebut memiliki kekuatan dan kelemahan yang berbeda. Konsep cipher kuat dengan lemah adalah bahwa seiring waktu cipher dapat menjadi rentan terhadap serangan. Penerapan atau pemilihan cipher harus mempertimbangkan bahwa tidak semua cipher masih kuat. Saat memilih sandi untuk digunakan, penting untuk membuat pilihan yang tepat.
3. Key Exchange 
Pertukaran kunci adalah elemen dasar utama dari sistem enkripsi sistematis yang aman. Dalam sistem asimetris, masalah pertukaran kunci adalah salah satu publikasi kunci.
4. Key Esrow
Definisi kunci escrow adalah sistem dimana kunci pribadi anda disimpan baik oleh anda maupun pemerintah. Kunci Escrow dapat memecahkan masalah yang terjadi ketika kunci hilang. 
5. Session Keys
Session key (kunci sesi) adalah kunci simetris yang digunakan untuk mengenkripsi pesan selama sesi komunikasi. 
6. Ephemeral Keys
Ephemeral keys adalah kunci kriptografi yang digunakan hanya sekali setelah kunci tersebut dibuat. Ketika kunci ini digunakan sebagai bagian dari skema Diffie-Hellman, maka akan membentuk pertukaran kunci Ephemeral Diffie-Hellman (EDH).
7. Key Stretching
Key stretching adalah mekanisme yang mengambil apa yang akan menjadi kunci lemah dan “meregangkan” kunci agar sistem lebih aman dari serangan brute force. Bentuk umum dari Key Stretching yaitu :
  • Password-Based Key Derivation Function 2 (PBKDF2) adalah fungsi derivasi kunci yang dirancang untuk menghasilkan kunci turunan dari kata sandi.
  • Bcrypt adalah mekanisme peregangan kunci yang menggunakan Blowfish cipher dan menambahkan fungsi adaptif untuk meningkatkan jumlah iterasi.
Ada beberapa syarat dan prinsip yang terkait dengan kerahasiaan. Dua di antaranya, confusion dan diffusion, muncul dari karya mani Claude Shannon dalam teori komunikasi.
  • Confusion adalah prinsip untuk mempengaruhi keacakan output. Konsep tersebut dioperasionalkan dengan memastikan bahwa setiap karakter ciphertext bergantung pada beberapa bagian kunci.
  • Difusi adalah prinsip bahwa analisis statistik plaintext dan ciphertext menghasilkan bentuk dispersi yang memberikan satu struktur independen dari yang lain.
Digital Signatures atau tanda tangan digital disebut sebagai kunci aliran dokumen yang benar-benar tanpa kertas. Tanda tangan digital didasarkan pada fungsi hashing dan kriptografi asimetris. Berikut operasi tanda tangan digital :
Digital rights management (DRM) adalah proses untuk melindungi kekayaan intelektual dari penggunaan yang tidak sah. Tetapi fokus yang paling terkonsentrasi adalah mencegah pembajakan perangkat lunak atau konten digital. Berikut contoh pengaplikasian kriptografi :
  1. PGP dapat diterapkan pada program email populer untuk menangani sebagian besar tugas enkripsi sehari-hari menggunakan kombinasi protokol enkripsi simetris dan asimetris. 
  2. GnuPG, or Gnu Privacy Guard, adalah implementasi open source dari standar OpenPGP. Alat berbasis baris perintah ini adalah program enkripsi kunci publik yang dirancang untuk melindungi komunikasi elektronik seperti email. Ini beroperasi mirip dengan PGP dan termasuk metode untuk mengelola kunci publik/pribadi.
Membangun mekanisme perlindungan data ke dalam sistem database bukanlah hal baru (sudah ada sejak lama), tetapi adopsi fungsi ini oleh perusahaan berjalan lambat. Algoritma enkripsi simetris seperti 3DES dan AES digunakan untuk mengenkripsi data secara internal dalam database. Saat menyiapkan skema kriptografi, penting untuk menggunakan teknologi yang telah terbukti. Pustaka kriptografi yang terbukti dan generator bilangan acak yang benar secara kriptografis adalah elemen dasar yang terkait dengan program yang solid.

J. Contoh Implementasi Kriptografi Pada Kehidupan Sehari-Hari
Anjungan Tunai Mandiri atau Automatic Teller Machine (ATM) digunakan nasabah bank untuk melakukan transaksi perbankan. Utamanya, kegunaan ATM adalah untuk menarik uang secara tunai (cash withdrawal), namun saat ini ATM juga digunakan untuk transfer uang (pemindah bukuan), mengecek saldo, membayar tagihan kartu ponsel, membeli tiket kereta api, dan sebagainya.
Transaksi lewat ATM memerlukan kartu magnetik (disebut juga kartu ATM) yang terbuat dari plastik dan kode PIN (Personal Information Number) yang berasosiasi dengan kartu tersebut. PIN terdiri dari 4 angka yang harus dijaga kerahasiannya oleh pemilik kartu ATM, sebab orang lain yang mengetahui PIN dapat menggunakan kartu ATM yang dicuri atau hilang untuk melakukan penarikan uang.
PIN digunakan untuk memverifikasi kartu yang dimasukkan oleh nasabah di ATM. Proses verifikasi dilakukan di komputer pusat (host) bank, oleh karena itu harus ada komunikasi dua arah antara ATM dan komputer host. ATM mengirim PIN dan informasi tambahan pada kartu ke komputer host, host melakukan verifikasi dengan cara membandingkan PIN yang di-entry-kan oleh nasabah dengan PIN yang disimpan di dalam basisdata komputer host, lalu mengirimkan pesan tanggapan ke ATM yang menyatakan apakah transaksi dapat dilanjutkan atau ditolak.
Selama transmisi dari ATM ke komputer host, PIN harus dilindungi dari penyadapan oleh orang yang tidak berhak. Bentuk perlindungan yang dilakukan selama transmisi adalah dengan mengenkripsikan PIN. Di sisi bank, PIN yang disimpan di dalam basisdata juga dienkripsi.
Algoritma enkripsi yang digunakan adalah DES dengan mode ECB. Karena DES bekerja dengan mengenkripsikan blok 64-bit, maka PIN yang hanya terdiri dari 4 angka (32 bit) harus ditambah dengan padding bits sehingga panjangnya menjadi 64 bit. Padding bits yang ditambahkan berbeda-beda untuk setiap PIN, bergantung pada informasi tambahan pada setiap kartu ATM-nya.
Karena panjang PIN hanya 4 angka, maka peluang ditebak sangat besar. Seseorang yang memperoleh kartu ATM curian atau hilang dapat mencoba semua kemungkinan kode PIN yang mungkin, sebab hanya ada 10 ´ 10 ´ 10 ´ 10 = 10.000 kemungkinan kode PIN 4-angka. Untuk mengatasi masalah ini, maka kebanyakan ATM hanya membolehkan peng-entry-an PIN maksimum 3 kali, jika 3 kali tetap salah maka ATM akan ‘menelan’ kartu ATM. Masalah ini juga menunjukkan bahwa kriptografi tidak selalu dapat menyelesaikan masalah keamanan data.
Berikut beberapa tips yang dapat Anda lakukan untuk lebih menjamin keamanan transaksi ATM Anda:
  1. Tanda tangani bagian belakang ATM/Debit sebelum menyimpannya di tempat yang aman
  2. Jaga kerahasiaan PIN kartu ATM/Debit dengan tidak memberitahukannya ke siapa pun dan hindari mencatat nomor PIN ATM Anda
  3. Ganti PIN kartu ATM/Debit secara berkala dengan kombinasi yang tak mudah ditebak
  4. Gunakan PIN yang berbeda jika Anda memiliki lebih dari satu kartu ATM/Debit
  5. Perhatikan lingkungan sekitar sebelum, selama, dan sesudah Anda melakukan transaksi di ATM.
  6. Tutupi tangan Anda saat Anda memasukkan PIN.
  7. Simpan slip transaksi ATM Anda dan lakukan pengecekan saldo rekening Anda secara berkala.
  8. Segera hubungi layanan 24 jam di HSBC Phone Banking jika Anda menemukan transaksi tak wajar di rekening Anda.

Rujukan : Buku Principles of Computer Security oleh WM.Arthur Conklin, Ph.D., dan Greg White, Ph.D.

Demikian penjelasan tentang kriptografi dari kelompok 4, jika ada yang ingin disampaikan bisa ditulis melalui kolom komentar dan jika ada kurang lebihnya kami mohon maaf sebesar-besarnya. Terima kasih.

Komentar