Lehmann Primary Test Tes Keprimaan Lehmann Algoritma FEAL Fast Data Encipherment Agorithm

2. Dekripsi dengan PGP Penerima email yang terenkripsi tersebut menggunakan kunci sesi session key untuk melakukan dekripsi terhadap email tersebut. Kunci sesi terdapat pada email yang terenkripsi tersebut diperoleh dengan cara mendekripsinya dengan kunci private. Seperti yang dipaparkan pada gambar 2.8 dibawah ini: Gambar 2.8 Proses dekripsi pada PGP Strategi yang sama digunakan untuk mendeteksi apakah suatu pesan sudah mengalami perubahan atau belum dan juga menentukan apakah pesan bersasal dari pengirim yang sebenarnya. Pengirim emenggunakan enkripsi PGP untuk memberikan tanda tangan digital digital signature pada pesan.

2.3 Lehmann Primary Test Tes Keprimaan Lehmann

Menurut Schneier 1996, berikut merupakan pengujian apakah p adalah bilangan prima: 1. Pilih sebuah bilangan acak a kurang dari p. 2. Hitung . 3. Jika , maka bukan bilangan prima. 4. Jika , maka kemungkinan bukan prima lebih dari 50. 5. Bila syarat telah terpenuhi maka dilakukan pengujian ulang sebanyak digit bilangan prima yang diambil. Jika pada pengujian terakhir atau , maka bilangan tersebut pasti bilangan prima. Demikian sehingga, kemungkinan acak sebagai witness pada bilangan sebagai bilangan tidak prima. Ulangi pengujian t kali. Jika perhitungan menghasilkan 1 atau - 1, tetapi tidak selalu menghasilkan 1, maka tingkat kesalahan kemungkinan p sebagai prima dengan . Contoh 1: Penulis ingin mengetahui apakah 17 adalah bilangan prima a 2 p Sesuai dengan ketentuan diatas dapat diambil kesimpulan bahwa merupakan bilangan prima Contoh 2: Penulis ingin mengetahui apakah adalah bilangan prima a 3 p Untuk hasil diatas tidak sesui dengan ketentuan pada point 2 dan 3 diatas maka dilakukan pengujian sekali lagi dengan mengganti nilai a. a 2 p Jika pengujian telah dilakukan sebanyak 2 kali dengan mengganti nilai a, namun hasilnya tidak sesuai dengan point 2 dan 3 diatas, maka dipastikan bilangan 27 bukan merupakan bilangan prima. Contoh 3: Penulis ingin mengetahui apakah adalah bilangan prima a 2 p Sesuai dengan ketentuan point 2 dan 3 diatas dapat diambil kesimpulan bahwa 103 merupakan bilangan prima

2.4 Algoritma FEAL Fast Data Encipherment Agorithm

FEAL merupakan singkatan dari Fast Data Encipherment Agorithm. FEAL merupakan enkripsi tipe simetris block ciphers. Algoritma ini dibuat dengan tujuan sebagai alternatif dari Data Encryption Standart DES dan di desain agar dapat beroperasi dengan lebih cepat pada perangkat lunak. FEAL termasuk kedalam keluarga algoritma yang memainkan peranan penting ke dalam perkembangan dan perbaikan dari berbagai macam teknik kriptanalis. Termasuk kriptanalis linear dan diferensial. Sama halnya seperti DES, FEAL berbasis algoritma Fiestel. FEAL pertama kali di publikasikan pada tahun 1987 oleh akhiro shmizu dan Shozi Miyaguchi dari NTT. Cipher ini rentan terhadap berbagai bentuk kriptanalis, dan telah berperan penting sebagai katalis pada pertemuan kriptanalis diferensial dan linear. Livia. 2010 Terdapat sejumlah revisi yang berbeda dari FEAL, meskipun semuanya merupakan cipher Fiestel, dan menggunakan dasar putaran kunci yang sama dan beroperasi pada blok 64-bit. FEAL-N memetakan bit blok plaintext dengan menggunakan 64-bit kunci rahasia. Sama halnya dengan DES, FEAL menggunakan N putaran cipher Feistel, namun dengan fungsi-f jauh lebih yang sederhana, dan di jumlahkan dengan state awal dan akhir yang melakukan XOR sebagian dari kedua data seperti melakukan subkey langsung dengan sebagian data. FEAL mempunyai panjang blok 64 bit, dibagi menjadi 32 + 32 blok, dan memiliki iterasi sebanyak 8 ronde seperti pada gambar. 2.9 dibawah ini: Gambar 2.9 Diagram Alir Algoritma FEAL Semuil dan Wijaya, 2009 ciphertext 2.4.1 Sejarah dan penjelasan Algoritma FEAL Untuk proses enkripsi, pertama kali program akan memerkas terlebih dahulu ada atau tidaknya teks pada kotak plaintext sebagi text input proses enkripsi, jika teks belum dimasukkan maka akan ditampilkan pesan peringatan dan program akan dihentikan. Jika teks sudah dimasukkan maka akan dilakukan pengecekan karakter pada teks masukan tersebut untuk validasi data. Pada fungsi enkrip, kemudian akan di cek jumkah karakter dari plaintextnya. Jika plaintext bukan kelipatan dari blok yang panjangnya 64 bit, maka akan ditambahakan angka “0” sebanyak jumlah karakter yang perlu ditambahkan agar jumlahnya merupakan kelipatan 64 bit dikurangi satu, dan karakter terakhir ditambahkan adalah nilai dari banyaknya karakter ditambahkan. Berikut akan dijelaskan salah satu algoritma FEAL-N, yaitu FEAL-8, a. Terdapat fungsi f fA,Y yang memetakan pasangan masukan 32 x 16 bit menjadi keluaran 32 bit. b. Pada fungsi f tersebut terdapat dua byte-oriented data subtitusi S0 dan S1 yang masing-masing digunakan dua kali. c. Masing-masing data subtitusi tersebut akan memetakan sepasang masukan 8- bit menjadi 8-bit keluaran. d. S0 dan S1 menambahkan 1 bit d e 0,1 menjadi 8-bit argumen x dan y, dengan mengabaikan carry teratas, kemudian hasilnya di geser ke kiri sebanyak 2-bit ROT2 S x, y = ROT 2x + y + mod 256 e. Terdapat pula fungsi key schedule fK A, B yang sama seperti fungsi f, fungsi ini memetakan dua 32-bit input menjadi keluaran 32-bit. f. Pada tabel 2.3 dibawah ini, Ai, Bi, Yi, ti, dan Ui adalah variable berukuran 8-bit Tabel 2.3 Sistem Kriptografi Algoritma FEAL U←f A,Y U←fK A, B t1 Ao ⊕A1 ⊕Y0 Ao ⊕A1 t2 A2 ⊕A3 ⊕Y1 A2 ⊕A3 U1 S1t1, t2 S1t1, t2 ⊕B0 U2 S0t2, U1 S0t2, U1 ⊕B1 U0 S0A0, U1 S0A0, U1 ⊕B2 U3 S1A3, U2 S1A3, U2 ⊕B3 2.4.2 Langkah Enkripsi Algoritma FEAL Adapun langkah enkripsi pada algoritma FEAL adalah sebagai berikut: 1. Algoritma ini menerima input berupa 64-bit plaintext dan 64-bit kunci 2. Jika inputan 64-bit plaintext maka keluarannya adalah 64-bit blok ciphertext C= C1, C2, C3, ..., C64 3. Dengan fungsi key schedule yang dijelaskan dibawah, maka ubah 16-bit subkey menjadi K1 dan K 4. Defenisikan M L = M 1 , M2, M3, ... M32, dan M R = M 33 , M34, M35, ...,M64 5. Lakukan XOR initial subkey: L0, R0 ←ML, MR ⊕ K8, K9,K10, K11. 6. R0 ←R0⊕L0. 7. Untuk i = 1 hingga i = 8, lakukan: Li ←Ri-1 Ri ←Li-1 ⊕fRi-1, Ki-1 Gunakan Table 1 untuk fA, Y dengan A = Ri-1=A0, A1, A2, A3 dan Y = Ki-1=Y0, Y1 8. Ls ← Ls⊕Rs 9. Lakukan XOR final subkey Rs,Ls ←Rs,Ls ⊕K12,K13,K14,K15 10. C ←Rs, Ls Algoritma dari proses pembangkit kunci adalah: 1. Pilih dua bilangan prima yang berbeda p dan q 2. Hitung 3. Hitung 4. Pilih sebua integer e dengan batas Dan memenuhi syarat: Dengan menggunakan algoritma extended euclian dapat diperoleh nilai d, dengan batas dan memenuhi syarat: ed ≡ 1 mod Ө 5. Diperoleh kunci public e, n dan kunci private d, n 6. Untuk memperoleh nilai signature digunakan persamaan: S = H d mod n, Nilai H diambil dari nilai validasi 7. Dan untuk verifikasi digunakan persamaan V = s e mod n Contoh Enkripsi 1: Diketahui public key: 2203, 5959 Private key : 2667, 5959 Nilai signature : 3784 Ciphertext: 2.4.3 Proses Validasi Key Schedule Algoritma FEAL Untuk proses validasi digunakan CRC cek. Pada CRC cek, pertama kali dilakukan inisialisasi tabel kemudian iCRC diatur sehingga semua bit-nya bernilai satu. Tabel CRC terdiri dai 256 buah nilai yang tiap nilainya mewakili satu karakter. Nilai ini dibuat secara acak, yang masing-masing memiliki panjang 64 bit. Setiap karakter nilai ini dibuat secara acak, yang masing-masing memiliki panjang 64 bit. Fungsi key schedule: 1. Fungsi ini menerima masukan 64-bit kunci K = k1 … k64. 2. Sedangkan keluarannya adalah 256-bit extended key 16-bit subkey Ki, 0 ≤ i ≤ 15. 3. Inisialisasi: U-2 ← 0, U-1 ← k1 … k32, U0 ← k33 … k64. U ≝U0, U1, U2, U3 untuk 8-bit Ui. 4. Hitung K0, ..., K15 untuk i = 1 hingga i = 8: a. U ←fKUi-2, Ui-1, Ui-3 fK didefinisikan pada Tabel 1, dengan A dan B menunjukkan 4-byte vector A0, A1, A2, A3, B0, B1, B2, B3 b. K2i-2 = U0, U1 K2i-1 = U2, U3 Ui ←U. 2.4.4 Proses Dekripsi algoritma FEAL Proses dekripsi FEAL sama dengan proses enkripsi, hanya pada proses dekripsi input yang digunakan berupa ciphertext dan proses kerja kebalikan dari proses enkripsi. Pada proses dekripsi urutan kunci yang digunakan merupaan kebalikan dari urutan kunci yang digunakan pada proses enkripsinya. Untuk mendekripsi ciphertext kembali menjadi plaintext, digunakan cara yang sama dengan sewaktu mengenkripsi plaintext menjadi ciphertext, yaitu dengan menggunakan kunci K yang sama dan ciphertext C = RS, LS yang menggantikan masukan plaintext. Namun fungsi key schedule digunakan secara terbalik. Untuk lebih spesifik, berikut ini adalah urutan key schedule pada saat melakukan dekripsi: 1. Subkey K12, K13,K14,K15 digunakan untuk XOR initial subkey 2. Sedangkan subkey K8,K9,K10,K11 digunakan untuk XOR final subkey. 3. Dan putaran kunci digunakan dari i=8 hingga i=1 tahap 7 Contoh Dekripsi 1: Diketahui kunci yang digunakan : elektro Nilai signature yang dimasukkan : Public key : 2203, 5959 Signature : 3784 Plaintext:

2.5 Algoritma ElGamal