Apakah cipher asimetris yang sangat mendasar yang dapat saya tampilkan di pub?

30

Saya mencoba menjelaskan dasar-dasar Bitcoin kepada orang tua saya.

Salah satu komponen inti dari bitcoin, adalah menandatangani transaksi untuk memastikan identitas Anda tidak dapat ditiru, dan dengan demikian kebutuhan untuk menjelaskan sandi asimetris yang disederhanakan.

Apa itu cipher asimetris yang sangat sederhana yang dapat saya gunakan sebagai contoh?

Bagaimana cipher yang disederhanakan ini digunakan untuk penandatanganan?

Ryan The Leach
sumber
17
Mengapa Anda harus masuk ke kriptografi untuk memiliki pub bicara tentang bitcoin? Sepengetahuan saya, bitcoin memecahkan masalah mempertahankan buku besar yang didistribusikan, khususnya menghindari masalah pengeluaran ganda. Motivasinya adalah untuk menghindari memiliki otoritas pusat, dan ini dapat dicapai dengan memungkinkan setiap peserta untuk menyetujui transaksi (alih-alih memberikan otoritas ini ke bank). Untuk menghindari peserta yang bermusuhan menyetujui transaksi mereka sendiri yang tidak valid, konsep bukti kerja diperkenalkan. Tidak perlu berbicara tentang kriptografi kunci publik.
Ariel
@Riri Kriptografi kunci publik, atau setidaknya tanda tangan digital, muncul ketika Anda ingin tahu bahwa orang yang mengatakan untuk mengirim 3 BTC dari Ariel ke Ryan sebenarnya adalah Ariel.
Derek Elkins
1
Benar, tapi ini bukan bitcoin spesifik sehingga orang tuanya hanya akan menganggapnya membingungkan.
Ariel
1
Anda dapat menjelaskan kripto asimetris, rantai blok, atau Bitcoin. Pilih salah satu.
Raphael
2
Pertanyaan ini mungkin lebih cocok untuk Kriptografi .
Raphael

Jawaban:

28

Jika Anda ingin menyajikan kriptografi kunci publik kepada orang tua atau teman Anda, maka saya sarankan Anda mengikuti beberapa panduan. Pertama, jangan bicara tentang fungsi tertentu, tidak ada yang peduli tentang SHAxxx, pertahankan konseptual pembicaraan Anda. Masalah yang dipecahkan oleh kriptografi kunci publik adalah memungkinkan dua pihak yang tidak pernah bertemu sebelumnya untuk secara aman bertukar informasi dalam saluran publik. Jangan bingung dengan aplikasi lain yang dicapai dengan enkripsi kunci publik, seperti tanda tangan digital atau otentikasi.

Ilustrasi sederhana yang mencerahkan tentang ini yang telah saya lihat adalah berikut ini. Misalkan dua pihak memiliki ember dan sejumlah warna, dan mereka ingin menyetujui senyawa rahasia tertentu. Mereka diizinkan saling mengirim ember dengan senyawa tertentu, tetapi apa pun yang dikirim terkena musuh jahat. Asumsi yang digarisbawahi adalah bahwa mencampur warna itu mudah, tetapi membusuk campuran menjadi bahannya sulit. Asumsi ini (yang mudah dihubungkan dengan sisi formal hal-hal) memungkinkan Anda untuk mencapai tujuan mereka. Pilih warna publik , dan izinkan kedua pihak untuk memilih warna rahasia, mari kita tunjukkan dengan S 1 , S 2 . Pihak pertama kemudian mengirim ember campuran P , S 1PS1,S2P,S1. Demikian pula, pihak kedua mengirim ember berisi campuran . Akhirnya, masing-masing pihak menambahkan warna pribadinya ke campuran yang diterimanya, dan sekarang kedua belah pihak memiliki campuran P , S 1 , S 2 , yang (menurut asumsi kami) tetap rahasia dari penyadap yang menguping. Versi formal dari ini adalah protokol pertukaran kunci Diffie-Hellman, yang bergantung pada kekerasan log diskrit.P,S2P,S1,S2

Sekarang, pemahaman saya tentang protokol bitcoin terbatas, tetapi ketika berbicara dengan orang tua Anda tentang hal itu, saya tidak melihat alasan untuk masuk ke kriptografi. Sebagian besar penjelasan populer yang saya lihat tidak perlu menyelidiki rincian implementasi, dan mulai berbicara tentang menemukan preimage hash sehingga hasilnya akan memiliki jumlah nol, kehilangan pandangan dari masalah yang sebenarnya. Seperti sebelumnya, saya sarankan untuk tetap bicara konseptual. Apa masalah yang coba diselesaikan oleh bitcoin, dan mengapa ini tidak sepele? Sepengetahuan saya, bitcoin memecahkan masalah mempertahankan buku besar yang didistribusikan, khususnya menghindari pengeluaran gandaxmasalah. Motivasinya adalah untuk menghindari memiliki otoritas pusat, dan ini dapat dicapai dengan memungkinkan setiap peserta untuk menyetujui transaksi (alih-alih memberikan otoritas ini ke bank). Untuk menghindari peserta yang bermusuhan menyetujui transaksi mereka sendiri yang tidak valid, konsep bukti kerja diperkenalkan. POW menggunakan hash sebagai kotak hitam, sehingga Anda dapat menghindari menyebutkan kandidat tertentu.

Ariel
sumber
Bitcoin menyelesaikan masalah pengeluaran ganda (yang dilakukan melalui blockchain, yang algoritma "bukti kerja" yang Anda gambarkan sangat penting) dan otentikasi terdistribusi dari permintaan transfer (yang jarang dibahas, karena hanya terkait dengan yang sudah ada Masalah yang terpecahkan, yaitu otentikasi pesan melalui kunci asimetris).
Jules
15

Metafora yang umum saya dengar digunakan adalah membuat banyak gembok, menyimpan semua kunci, dan mengirimkan gembok terbuka kepada siapa saja yang menginginkannya. Maka siapa pun dengan gembok seperti itu dapat mengirimi Anda pesan rahasia dengan memasukkannya ke dalam kotak dan kemudian menggunakan salah satu gembok untuk menguncinya sebelum mengirimkannya kepada Anda. Tidak ada seorang pun selain Anda yang memiliki kunci, sehingga bahkan pengirim tidak dapat membuka kotak setelah terkunci - khususnya, layanan pos tidak dapat mengintip pesan Anda sama sekali. Mereka bahkan mungkin memiliki gembok dari Anda juga, tetapi itu tidak membantu mereka membuka kunci kotak.

(Saya berikan contoh ini untuk menjawab pertanyaan Anda sebagaimana dinyatakan, tanpa pendapat khusus tentang apakah itu benar-benar berguna untuk penjelasan bitcoin.)

Ben Millwood
sumber
1
Ini adalah penjelasan yang berguna tentang enkripsi asimetris, tetapi untuk menjelaskan cara kerja bitcoin yang benar-benar Anda butuhkan adalah verifikasi tanda tangan , yang merupakan kebalikannya: Anda memiliki banyak gembok yang pecah saat Anda membukanya, dan mengirimkan kunci kepada siapa saja yang mungkin membutuhkan mereka. Kemudian ketika Anda mengirim pesan, Anda memasukkannya ke dalam sebuah kotak dan meletakkan gembok di atasnya, sehingga siapa pun yang memiliki kunci dapat memberi tahu Anda mengirimnya.
Jules
@ Jules Saya sangat suka penjelasan ini, membuatnya analog dengan segel tamper.
Ryan The Leach
7

Masalah dengan menjelaskan cipher asimetris (dan alasan mengapa sebagian besar penjelasan pop benar-benar gagal untuk menjelaskan apa pun) adalah bahwa mereka terjalin dengan gagasan bahwa ada masalah yang (seharusnya) tidak dapat dipecahkan, yang merupakan salah satu ide di balik kompleksitas komputasi.

Setelah Anda mendapatkan titik itu, sebuah kode asimetris adalah "hanya" fungsi yang mudah untuk dihitung tetapi dianggap sulit untuk dibalik. Anda bahkan bisa membuatnya sendiri, lihat implementasi kunci pertukaran Diffie-Hellman asli sebagai referensi.

quicksort
sumber
3
Itu bukan keseluruhan cerita. Pasti sulit untuk membalikkan kecuali Anda memiliki kunci pribadi.
Ben Millwood
+1 untuk Diffie-Hellman. Ini adalah protokol yang cukup sederhana untuk dijelaskan, yang sesuai dengan contoh warna.
Ariel
4

Saya tidak berpikir ada sistem enkripsi asimetris yang mudah dibuktikan. Sebaliknya, jelaskan apa yang dilakukannya, bukan bagaimana melakukannya. Sebenarnya, saya harus melakukan ini baru-baru ini, untuk menggambarkan cara kerja PGP. Untuk BitCoin, berkonsentrasi pada bagian kedua, menandatangani pesan.

Saya dapat membuat dua angka terkait. Satu disebut kunci pribadi , yang lain kunci publik . Saya menyimpan rahasia pertama, dan memberi tahu semua orang yang kedua. Siapa pun yang ingin mengirimi saya pesan mengambil kunci publik saya, dan mengenkripsi pesan mereka dengannya. Setelah selesai, tidak ada yang bisa mendekripsi pesannya, bahkan pengirimnya pun tidak. Ketika saya menerima pesan, saya bisa mendekripsi dengan kunci pribadi saya.

Atau, saya dapat mengenkripsi pesan dengan kunci pribadi saya, dan mengirim pesan terenkripsi dan non-terenkripsi ke orang kedua. Jika mereka memiliki kunci publik saya, maka mereka dapat mendekripsi bagian pesan yang dienkripsi, dan itu akan sama dengan bagian yang tidak dienkripsi. Ini menunjukkan bahwa saya adalah orang yang mengenkripsi pesan.

Jika mereka bertanya bagaimana kunci dihasilkan, maka katakan

Saya memikirkan dua bilangan prima yang sangat besar, dan kemudian mengubahnya melalui fungsi matematika. Itu memuntahkan kunci pribadi dan publik.

Ini tentu saja, mengabaikan fakta bahwa enkripsi asimetris biasanya tidak berfungsi pada pesan itu sendiri, melainkan pada kunci sesi (untuk enkripsi), atau pada hash (verifikasi tanda tangan). Ini juga mengabaikan persyaratan yang sangat penting bahwa Anda harus menjaga kunci pribadi Anda tetap pribadi - siapa pun yang memiliki akses untuk dapat berpura-pura menjadi Anda.

CSM
sumber