Tujuan Kriptografi Jenis Algoritma Kriptografi Berdasarkan Jenis Kunci

2.2 Enkripsi dan Dekripsi

Proses menyadikan plaintext menjadi ciphertext disebut enkripsi encryption atau enciphering standard nama menurut ISO 7498-2. Sedangkan proses mengembalikan ciphertext menjadi plaintext semula dinamakan dekripsi decryption atau deciphering standard nama menurut ISO 7498-2. [12] Secara matematis, proses umum enkripsi dijelaskan sebagai berikut: � � = � Jadi, proses enkripsi E plaintext P akan menghasilkan ciphertext C. Sedangkan proses umum deskripsi adalah sebagai berikut: � � = � Proses dekripsi D ciphertext C, akan menghasilkan plaintext P. Proses umum yang terjadi pada kriptografi dapat dilihat pada Gambar 2.1. Gambar 2.1 Proses Umum Kriptografi [7] Gambar 2.1 merupakan proses umum kriptografi. Plaintext dienkripsi dengan menggunakan kunci enkripsi untuk menghasilkan ciphertext. Untuk mengubah ciphertext menjadi plaintext, ciphertext didekripsi menggunakan kunci dekripsi untuk menghasilkan plaintext.

2.3 Tujuan Kriptografi

Tujuan dari kriptografi adalah memberi layanan keamanan yang disebut juga dengan aspek keamanan. Aspek-aspek keamanan kriptografi sebagai berikut: 1. Kerahasian confidentiality, layanan yang ditujukan untuk menjaga agar pesan tidak dapat dibaca oleh pihak-pihak yang tidak berhak. Universitas Sumatera Utara 2. Integritas data data integrity, layanan yang menjamin bahwa pesan masih asliutuh atau belum pernah dimanipulasi selama pengiriman. 3. Otentikasi authentication, layanan yang berhubungan dengan identifikasi, baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi user authentication atau entity authentication maupun mengidentifikasi kebenaran sumber pesan data origin authentication. 4. Penyangkalan non-repudiation, layanan untuk mencegah entitas yang berkomunikasi melakukan penyangkalan, yaitu pengirim pesan menyangkal melakukan pengiriman atau penerima pesan menyangkal telah menerima pesan.[12]

2.4 Jenis Algoritma Kriptografi Berdasarkan Jenis Kunci

Berdasarkan jenis kunci yang dipakai terdapat 2 dua jenis algoritma kriptografi yaitu algoritma simetris dan algoritma asimetris.

2.4.1 Algoritma Simetris

Sistem kriptografi simetris menggunakan kunci yang sama pada proses penyandian dan proses pemulihan sandi seperti yang ditunjukan pada Gambar 2.2. [13] Gambar 2.2 Skema Kriptografi Simetris Gambar 2.2 menunjukan bagaimana cara kerja kriptografi simetris. Plaintext dienkripsi dengan kunci kemudian menghasilkan ciphertext, kemudian untuk mendekripsi ciphertext menggunakan kunci yang sama pada proses enkripsi untuk menghasilkan pesan asli atau plaintext. Universitas Sumatera Utara Kriptografi yang termasuk algoritma simetris adalah DES Data Encryption Standard, Blowfish, Twofish, Triple-DES, IDEA, Serpent, Affine, Playfair, AES Advanced Encryption Standard, dan sebagainya.

2.4.2 Algoritma Asimetris

Sistem kriptografi asimetris menggunakan kunci yang berbeda pada proses penyandian dan proses pemulihan sandi seperti yang ditunjukan pada Gambar 2.3.[13] Gambar 2.3 Skema Kriptografi Asimetris Gambar 2.3 menunjukan bagaimana cara kerja kriptografi asimetris. Plaintext dienkripsi dengan kunci publik kemudian menghasilkan ciphertext, kemudian untuk mendekripsi ciphertext membutuhkan kunci private yang menghasilkan pesan asli atau plaintext. Kriptografi yang termasuk algoritma asimetris adalah RSA, ElGamal, DSA dan sebagainya.

2.4.3 Algoritma ElGamal

Algoritma kriptografi ElGamal merupakan salah satu algoritma kunci asimetris yang didasarkan pada logaritma diskrit. Algoritma kriptografi ElGamal ditemukan oleh Taher ElGamal pada tahun 1984[13]. Skema sistem kriptografi ElGamal dapat dilihat pada Gambar 2.4. Universitas Sumatera Utara Gambar 2.4 Sistem Kriptografi Algoritma ElGamal Gambar 2.4 menunjukkan cara kerja algoritma ElGamal yaitu plainteks di enkripsi dengan menggunakan kunci publik p, g dan y. y didapat dari rumus � = � � ��� � dengan menggunakan kunci private x. Kemudian plainteks dienkripsi dengan rumus � 1 = � � ��� � dan � 2 = � � ���� � dan menghasilkan chipertext. Chipertext didekripsi dengan menggunakan kunci private d dan menggunakan rumus dekripsi � = [� 2 × � 1 � −1 ��� �] untuk menghasilkan plainteks. Berikut pembangkit kunci ElGamal: 1. Bilangan prima p 255. 2. Dua bilangan acak g dan x dengan syarat � � dan � �. 3. Bilangan acak k dengan syarat 0 ≤ � ≤ � − 2. 4. � = � � ��� �. 5. � ������ = �, �, �. 6. � ������� = �. Untuk mengenkripsi pesan dibutuhkan k, C 1 , C 2 , dan P. Untuk C 1 dan C 2 dapat dihasilkan menggunakan rumus: � 1 = � � ��� � ....................................................................................... 1 � 2 = � � � ��� � ............................................................................ 2 Untuk mendekripsi pesan dapat menggunakan rumus: � = � 2 � 1 � ��� � � = [� 2 × � 1 � −1 ��� �] .................................................................... 3 Untuk � 1 � −1 dapat dihitung dengan rumus: Universitas Sumatera Utara � 1 � −1 = � 1 �−1−� ��� � ..................................................................... 4 dimana: k = kunci publik bilangan acak c 1 = hasil cipherteks 1 c 2 = hasil cipherteks 2 m = pesan atau teks asli Sebagai contoh penggunaan algoritma ElGamal, untuk melakukan enkripsi diambil bilangan prima � = 257, bilangan acak � = 3, � = 4 dan � = 7. Hitung � = � � ��� � → � = 81. Pengirim ingin mengirim huruf “A” maka nilai dari setiap huruf dapat diambil dari tabel ASCII. Maka enkripsi dapat dilakukan seperti berikut: 1. A dalam ASCII bernilai 65. 2. Hitung � 1 = � � ��� � → � 1 = 3 7 ��� 257→ � 1 = 131. 3. Hitung � 2 = � � � ��� � → � 2 = 81 7 × 65 ��� 257 → � 2 = 210 Pengirim akan mengirim � 1 dan � 2 kepada penerima pesan rahasia. Untuk melakukan dekripsi dibutuhkan nilai x, � 1 dan � 2 . Maka enkripsi dapat dilakukan seperti berikut: 1. Hitung � 1 � −1 = � 1 �−1−� ��� � → � 1 � −1 = 131 257−1−4 ��� 252 →� 1 � −1 = 190. 2. Hitung � = � 2 × � 1 � −1 ��� � → � = 210 × 190 ��� 257 → m = 65. 3. Kemudian bilangan 65 diubah ke ASCII menjadi huruf “A”. Setelah melakukan dekripsi, penerima menemukan pesan rahasia yaitu teks asli yang sebelum dilakukan enkripsi oleh pengirim pesan rahasia. Maka didapat plainteks “A” dan tersampaikan pesan rahasia.

2.5 Bilangan Prima