Nama
: Wildan
Kelas
: Tk 3 Kripto
NPM
: 0302100586
7.5.2. Authentication With RSA Jika seseorang (misal Allice) ingin menandatangani sebuah message M sehingga tidak dapat dipungkiri bahwa benar message itu dari dia (si pengirim yaitu Allice), untuk melakukan hal ini maka Allice menerapkan algoritma deskripsinya terhadap M dengan kunci privatenya (kSA)sehingga didapat message yang telah ditandatangani misal M’ dimana: M’ = d(M, kSA). Bagi orang lain, misal Bob, yang menerima M’ dapat menggunakan algoritma enkripsi dengan public keynya Allice (KPA) dan kemudian menghitung e(M’, KPA) = M. Bagaimanapun, hanya Allice yang membuat suatu pesan yang M menjadi M’ karena hanya Allice yang mengetahui kunci privatenya dan sulit untuk pihak lain yang tidak mengetahui KSA untuk mendapatkan M’ yang tidak mengetahui kunci privatenya Allice.
Gambar 1. RSA Authentication dengan Bob sebagai pengirim dan Allice sebagai penerima
Tentu saja, skema diatas tidak menyediakan keamanan. Jika faktor secrecy juga menjadi pertimbangan, maka Allice dapat mengirimkan message yang telah ditandatangani dengan mengenkripsinya terlebih dahulu.
Berikut ini merupakan illustrasi umum dari penggunaan RSA sebagai authentikasi : Allice mengirim message M kepada Bob dengan kriptogram C = eKPB(M) dan menansdatanganinya dengan S(M) = eKPB(dKSA(M)). Bob dapat memverifikasi ke authentikasiannya dengan cara menghitung : eKPA(dKSB(S(M))) dimana hasil dari perhitungan tersebut harus sama dengan M. Catatan : hal ini hanya berlaku jika nA
Gambar 2. Proses secrecy dan authentication pada RSA
Contoh kasus (RSA Authentication): Jika diketahui p=47, q=157 dan e=17, bagaimana kita dapat menandatangani pesan ”OK”? Dengan menghitung nilai M menjadi integer yaitu 1511. Maka tandatangan yang didapat adalah d(1511) = 1511157 = 1657 mod 2773 Jika kita mengirimkan pesan ini kepada seseorang yang memiliki public key (725,2881) message yang terenkripsi menjadi 1511725 = 1369 mod 2881 dan tandatangan yang terenkripsinya adalah : 1657725 = 2304 mod 2881; sehingga kita akan kirimkan: (1369,2304).
Penerima akan mendekode pesan tersebut dengan private keynya d=65; M=136965=1511 mod 2881 dan memeriksa tandatangan tersebut dengan: S=230465=1657 mod 2881, e(S)=165717=1511 mod 2773. dan didapatkan bahwa e(S)=M sehingga M valid. Signature Security Allice tidak dapat menolak telah mengirim pesan M: karena hanya dia yang dapat membuat S dengan KSA. Bob atau pihak lain tidak dapat merubah M untuk M’ : S(M’) ≠ S(M) dan menghitung S(M’) tidak dapat dilakukan tanpa mengetahui KSA.
7.5.3. Shared Secrets Sistem secret sharing ini bekerja dengan cara beberapa orang bersama-sama untuk dapat merekontruksi
kunci yang lengkap, tetapi tidak ada satupun dapat
melakukannya sendiri. Contoh penerapannya adalah membuka sebuah brankas dengan menggunakan 2 buah kunci dan peluncuran missile yang memerlukan persetujuan 3 pihak. Misal kita memiliki n orang yang memiliki otoritas (’key holders’) dan diperlukan k bagian dari kunci untuk dapat ’membuka pintu’ untuk akses ke secret S. Hal ini berarti :
untuk subset {i1,...,ik} dan {1,...,n}, dimana p1,...,pn merupakan n bagian dari kunci. Walau bagaimanapun, jika kurang dari k bagian tidak memungkinkan untuk mendapatkan informasi tentang secret S :
Untuk dapat melakukan hal ini, misal pilih untuk seluruh secret sebuah polinomial berderajat k-1 dimana koefisien yang lebih kecil adalah S, sehingga didapat :
Koefisien lain αi dipilih secara random dan berbeda antara secret yang satu dengan yang lain. Bagi i pihak yang berwenang menerima 1 bagian dari secret sebagai nilai dari polinomial untuk nilai setiap i :
Hal ini memenuhi seluruh kondisi : k pihak yang berwenang dapat merekontruksi polinomial dengan menggunakan suatu interpolasi dan akan didapatkan S, tetapi k-1 atau kurang dari itu tidak dapat merekontruksinya. Contoh kasus (Secret Sharings) : Secret S=0105, dishare kepada n=5 orang sedemikian sehingga diperlukan 2 dari 5 dapat mengakses S (k=2)
dan
Jika dua orang ingin merekontruksi S maka (misal 2 dan 5) :
Tetapi jika hanya satu orang ingin merekontruksi S maka hal itu tidak mungin dapat dilakukan. Secret sharing dapat digunakan untuk membuat ’access structures’ ke secret: Terdapat kurang dari n user dan beberapa user menerima bagian lebih banyak dibandingkan yang lain. Sebagai contoh : bayangkan untuk membagi sebuah brankas pada Bank memerlukan 1 orang direktur atau 2 orang yang berwenang untuk mewakili atau 1 orang yang berwenang yang mewakili dengan 2 kasir atau 5 orang kasir.
misalkan k=10 dan ketentuan yang dilakukan agar skema tersebut dapat berjalan : •
Direktur bank menerima 10 bagian
•
setiap orang yang berwenang untuk mewakilkan menerima 6 bagian
•
dan, setiap kasir hanya menerima 2 bagian
dengan ini maka : •
Seorang direktur sendirian dapat membuka brankas karena memiliki 10 bagian
•
2 orang yang berwenang untuk mewakili memiliki 12 bagian sehingga dapat mebuka brankas
•
1 orang yang berwenang mewakili dan 2 kasir memiliki 10 bagian
•
dan 5 orang kasir memiliki 10 bagian Dengan demikia maka skema yang telah diajukan diatas untuk access structure
dapat dilakukan. Masalah yang timbul dalam penggunaan secret sharing adalah saat jumlah yang berpartisipasi didalamnya cukup besar maka skema yang akan dibuat akan menjadi lebih kompleks.