RSS Amplifier

Indirect Resource · Mar 14, 2021

Public-Key Cryptography

0
Sign in to vote or save

Budi Sukmana · Indirect Resource

Pembaruan Terkini: 17 November 2022

Salah satu solusi yang diajukan oleh Satoshi agar anonymous digital cash transaction dapat terjadi yaitu dengan penggunaan digital signature untuk mengirim bitcoin ke pihak penerima.

Sebelum memahami apa itu digital signature, kita harus memahami terlebih dahulu apa itu public key cryptography atau asymmetric cryptography.

Mesin Enigma adalah mesin enkripsi yang digunakan oleh Jerman untuk mengirim pesan secara rahasia pada saat Perang Dunia Kedua (sumber: Wikipedia)

Kriptografi berasal dari bahasa Yunani, kryptos, yang artinya secara harafiah adalah rahasia.

Kriptografi sendiri adalah sebuah studi dan praktek untuk dapat melakukan pertukaran informasi (komunikasi) yang aman (rahasia) di antara kedua belah pihak atau lebih agar tidak dapat dibaca oleh pihak yang tidak diinginkan.

Seperti biasa, mari kita mulai dengan berimajinasi.

Misalnya, Alice (A) ingin mengirim sebuah pesan ke Bob (B), tapi tidak ingin dapat dibaca oleh Chuck (C).

Untuk mencapai tujuan tersebut, Alice melakukan sebuah proses yang dinamakan enkripsi (encryption) terhadap pesan yang ingin disampaikan kepada Bob, dimana hanya mereka berdualah yang tahu cara melakukan dekripsi (decyrption) terhadap pesan tersebut.

Enkripsi (encryption) adalah proses mengamankan suatu informasi dengan membuat informasi tersebut tidak dapat dibaca tanpa bantuan pengetahuan khusus.

Dekripsi (decryption) adalah proses sebaliknya, yaitu agar proses yang telah dienkripsi dapat dibaca kembali.

Proses enkripsi-deskripsi yang mereka gunakan sebuah metode yang lebih sering disebut sebagai kunci (key), yang sangat sederhana seperti “+1 (1 karakter selanjutnya)” - yang artinya proses enkripsi dilakukan dengan menggeser setiap huruf dari setiap pesan sesungguhnya yang ingin disampaikan (plaintext) ke satu huruf selanjutnya. A menjadi B, B menjadi C dan seterusnya.

Jadi, apabila Alice ingin mengirim pesan “Saya Cinta Kamu” dengan menggunakan kunci (key) “+1”, maka pesan yang akan diterima oleh Bob atau seandainya Chuck berhasil mencuri pesan tersebut akan terbaca menjadi “Tbzb Djoub Lbnv” - yang disebut sebagai cyphertext.

In cryptography, ciphertext or cyphertext is the result of encryption performed on a plaintext using an algorithm, called a cipher.

Symmetric Cryptography

Ilustrasi di atas adalah sebuah analogi sederhana dari sebuah metode symmetric cryptography yang artinya di mana kunci (key) yang digunakan untuk mengekripsi sebuah pesan dan mendekripsi sebuah pesan adalah sama.

Tentunya “algoritma” dari “+1” adalah sebuah metode enkripsi yang tidak ideal dalam prakteknya, karena terlalu mudah ditebak dan hal ini dapat mengakibatkan:

  1. Seandainya Chuck berhasil mencuri beberapa cyphertext antara Alice dan Bob dan berhasil mengenal polanya, kemungkinan besar dalam waktu singkat, Chuck dapat menemukan kuncinya dengan relatif mudah.

  2. Selain itu, metode ini membutuhkan kesepakatan antara Alice dan Bob sebelum mereka mulai mengirim pesan. Bagaimana Bob bisa yakin, kalau Alice tidak membagikan kunci yang sama kepada Chuck? Dan juga sebaliknya.

Karena alasan ini, symmetric cryptography sudah tidak lagi digunakan dalam prakteknya.

Sebagai contoh lain, apabila kita berlangganan Netflix, pada sebuah film yang berjudul Enola Holmes (2020). Di mana Eudoria Holmes (ibu dari Enola Holmes) sering melakukan percakapan dengan meninggalkan berbagai cyphertext dengan menggunakan metode anagram atau letters into numbers, untuk Enola (adik dari Sherlock Holmes).

Apa yang Eudoria lakukan kepada Enola, adalah salah satu contoh sederhana dari penerapan symmetric cryptography.

Untuk mengatasi kelemahan dari symmetric cryptography di atas, di pertengahan tahun 70-an, muncul sebuah metode asymmetric cryptography atau yang lebih dikenal sebagai public-key cryptography.

Yang di mana secara konseptual apabila Bob ingin menerima sebuah pesan yang terenkripsi (cyphertext) dari Alice:

  1. Tanpa perlu berkomunikasi dengan Alice (pengirim), sebelumnya Bob (penerima) perlu membuat dua buah kunci, yaitu: sebuah public key dan sebuah private key yang di sebut sebagai keypair (keychain).

    Di mana, public key adalah output yang berasal dari sebuah fungsi matematika satu arah (one-way mathematical function) yang berasal dari private key sebagai input.

  2. Kemudian Bob dapat membagikan public key tersebut kepada Alice atau siapapun dan siapapun itu dapat menggunakannya untuk mengenkripsi setiap pesan yang ingin disampaikan kepada Bob.

  3. Dengan menggunakan private key (kunci yang berbeda dengan public key, tapi secara fungsi matematika terkait), Bob dapat mendekripsi setiap cyphertext yang diterima olehnya.

  4. Seandainya Chuck memiliki public key milik Bob, yang dapat dilakukan oleh Chuck hanyalah mengekripsi sebuah pesan untuk Bob, bukan mendekripsinya! Asalkan private key milik Bob tersebut, HANYA disimpan dan diketahui oleh Bob saja.

Public-key cryptography atau asymmetric cryptography

Dalam film The Imitation Game (2014) - berdasarkan kisah nyata - Alan Turing yang diperankan oleh Benedict Cumberbach, membuat sebuah mesin (Turing’s Machine) untuk mencoba mendekripsi berbagai cyphertext yang dikirim dari pusat kepemimpinan Jerman (Nazi pada saat itu) melalui mesin Enigma (ilustrasi di paling atas) untuk memberikan berbagai instruksi khusus kepada para tentara yang sedang berada di lokasinya masing-masing.

Pada prinsipnya, apa yang dilakukan oleh Alan Turing adalah melakukan sebuah proses brute-force attack, untuk menebak private key yang digunakan pada mesin enigma.

Mengingat, tidak ada formula matematika untuk membalikkan private key dari sebuah public key.

Artinya, bukan berarti Chuck tidak dapat menemukan private key milik Bob, tapi artinya Chuck HARUS melakukan brute-force attack, seperti apa yang sudah dilakukan oleh Alan Turing saat itu.

Dan dalam konteks untuk menemukan Bitcoin private key pada saat ini dapat memakan waktu milyaran tahun! 😱

I think the important insight into the nature of money is that money is a form of communication. At its very basic level, money isn’t value. Money represents an abstraction of value; it’s a way of communicating value. It’s a language.

~ Andreas Antonoupoulos

Lagi-lagi

Uang hanyalah representasi (abstraksi) dari imajinasi kolektif kita terhadap sebuah nilai (value).

Jadi, apabila kita setuju bahwa bitcoin sebagai salah satu jenis uang digital, maka menerima dan mengirim (transaksi) bitcoin dapat disebut juga sebagai salah satu bentuk komunikasi (form of communication).

Tapi, bentuk komunikasi yang seperti apa?

Tentunya yang harus sesuai dengan tujuan utama yang ditawarkan oleh Bitcoin, yaitu agar anonymous digital cash transaction dapat terjadi di internet.

Jadi, bagaimana agar pihak pengirim dapat melakukan sebuah transaksi dengan mengirim bitcoin kepada pihak penerima tanpa harus menunjukkan atau memperkenalkan dirinya, baik ke pihak penerima maupun kepada Bitcoin Network?

Public-key cryptography adalah jawabannya.

Jadi, untuk dapat mengirim bitcoin yang perlu kita ketahui - seperti Alice ingin mengirim pesan rahasia kepada Bob - hanyalah public key (bitcoin address) dari pihak penerima. Dan agar pihak penerima dapat mengirim bitcoin tersebut ke pihak selanjutnya, yang harus lakukan dilakukan oleh pihak penerima adalah dengan melakukan digital signing menggunakan private key miliknya.

The cypherpunks were entranced by this idea. With public keys as identities, you could be identified not by your name or email, but by your public key. This, they believed, would make surveillance and censorship a thing of the past. It would also be impossible to create forgeries or frame someone. If someone quoted a message signed by your private key, there could be no doubt that it was authentic.

~ Haseeb Qureshi

Yang dapat juga dikatakan, bahwa keychain yang kita miliki adalah “perpanjangan” dari identitas kita yang sesungguhnya.

Setelah mengetahui bahwa representasi identitas kita di Bitcoin Network, adalah private key dan bitcoin address (yang berasal dari public key) yang kita miliki.

Yang menjadi pertanyaan selanjutnya adalah bagaimana para pihak di Bitcoin Network, dapat mengetahui bahwa transaksi yang kita buat adalah valid sebelum kemudian akhirnya dicatatkan ke dalam sebuah blok di Bitcoin Blockchain?

No posts

Read the original on budisukmana.substack.com

Comments

Nothing yet. Say the first thing.

    Sign in to join the conversation.