Kali ini, penulis akan membahas perihal salah satu variabel dalam dunia mata uang virtual, yakni tanda tangan digital (digital signature).

Mungkin anda bertanya, apa perannya? Apa fungsinya? Apa gunanya? Sejatinya, tanda tangan digital sangat dibutuhkan ketika proses pembuatan blok dilakukan pada mata uang virtual.

Teknisnya, tanda tangan digital ini seperti halnya membubuhkan tanda tangan di atas kertas pada umumnya. Hanya saja, pembubuhan tanda tangan ini dilakukan secara digital, bisa pada dokumen, atau sebuah file.

Membuat Tanda Tangan Digital

Ada dua hal yang perlu dilakukan agar tanda tangan digital ini bisa berfungsi layaknya tanda tangan tulisan tangan diatas kertas. Pertama, pembubuhan tanda tangan digital ini hanya bisa dilakukan oleh anda sendiri. Namun, orang lain yang bisa melihatnya, akan bisa memferifikasi keabsahannya.

Kedua, pembubuhan tanda tangan ini sebagai pengikat atas sebuah dokumen tertentu. Sehingga tidak bisa digunakan untuk menunjukkan persetujuan ataupun dukungan anda pada dokumen tertentu lainnya.

Selanjutnya, bagaimana bisa membuat tanda tangan digital ini dalam kriptografi? Skema tanda tangan digital terdiri dari tiga algoritma berikut:

⦁ (sk, pk): = generateKeys (keysize)

Metode generateKeys ini berfungsi untuk memperoleh ukuran key dan juga membuat generate key pair-nya. Sementara sk adalah private key yang bersifat rahasia dan dijaga kerahasiaannya untuk menandatangani sebuah pesan. Dan, pk adalah public key yang bisa diberikan kepada orang lain. Dengan key ini, orang lain akan bisa melakukan verifikasi atas tanda tangan digital itu.

Sebagai catatan dalam hal ini, bahwa generateKeys dan sign bisa berupa algoritma acak. Pada dasarnya generateKeys akan lebih baik jika diacak. Karena dengan begitu bisa membuat key yang berbeda untuk orang yang berbeda pula. Di lain hal, selalu menjadi deterministik, sesuai dengan fungsinya.

BACA JUGA :  Hacker Berhasil Mencuri Rp 7,1 Triliun dari Bursa Mata Uang Virtual Jepang

⦁ sig: = sign(sk, message)

Metode ini akan mengambil key dan juga pesan (message). Selanjutnya, sk sebagai input, untuk bisa menghasilkan output berupa tanda tangan pada pesan dibawah sk .

⦁ isValid: = verify (pk, message, sig)

Cara ini untuk mengambil pesan, tanda tangan, dan public key sebagai inputnya. Lalu, menjadikannya bernilai boolean, yakni benar atau salah (true atau false). Sedangkan isValid akan menghasilkan pernyataan true, jika sig dalam pesan tersebut berisikan tanda tangan yang valid, dibawah public key (pk). Selanjutnya, akan bernillai false jika menunjukkan kebalikannya.

Ketiga algoritma tersebut, harus bisa memenuhi dua hal berikut:

⦁ Tanda tangan yang valid, harus terverifikasi terlebih dahulu.

verify(pk, message, sign(sk, message)) == true

⦁ Tanda tangan bersifat existentially unforgeable (tidak bisa dirubah).

Apakah pembahasan ini cukup jelas dan dapat anda pahami?

LEAVE A REPLY

Please enter your comment!
Please enter your name here