Skim Perkongsian Rahsia Shamir

Pertimbangkan senario di mana anda perlu mendapatkan peti besi bank. Ia dianggap benar-benar tidak dapat ditembusi tanpa kunci, yang diberikan kepada anda pada hari pertama bekerja. Matlamat anda adalah untuk menyimpan kunci dengan selamat.

Katakan anda memutuskan untuk menyimpan kunci bersama anda pada setiap masa, memberikan akses kepada storan mengikut keperluan. Tetapi anda akan segera menyedari bahawa penyelesaian sedemikian tidak berskala baik dalam amalan, kerana kehadiran fizikal anda diperlukan setiap kali anda membuka storan. Bagaimana dengan percutian yang dijanjikan kepada anda? Di samping itu, persoalannya lebih menakutkan: bagaimana jika anda kehilangan satu-satunya kunci anda?

Dengan mengambil kira percutian anda, anda memutuskan untuk membuat salinan kunci dan mempercayakannya kepada pekerja lain. Walau bagaimanapun, anda faham bahawa ini juga tidak sesuai. Dengan menggandakan bilangan kunci, anda juga menggandakan peluang kecurian kunci.

Dalam keadaan terdesak, anda memusnahkan pendua dan memutuskan untuk membelah kunci asal kepada separuh. Sekarang, anda akan berfikir bahawa dua orang yang dipercayai dengan serpihan kunci perlu hadir secara fizikal untuk mengambil kunci dan membuka peti besi. Ini bermakna pencuri perlu mencuri dua keping, iaitu dua kali lebih sukar daripada mencuri satu kunci. Walau bagaimanapun, anda tidak lama lagi menyedari bahawa skim ini tidak lebih baik daripada hanya satu kunci, kerana jika seseorang kehilangan separuh kunci, kunci penuh tidak boleh dipulihkan.

Masalahnya boleh diselesaikan dengan satu siri kunci dan kunci tambahan, tetapi pendekatan ini akan memerlukan dengan cepat ΠΌΠ½ΠΎΠ³ΠΎ kunci dan kunci. Anda memutuskan bahawa reka bentuk yang ideal adalah untuk berkongsi kunci supaya keselamatan tidak bergantung sepenuhnya pada satu orang. Anda juga membuat kesimpulan bahawa mesti ada beberapa ambang untuk bilangan serpihan supaya jika satu serpihan hilang (atau jika seseorang pergi bercuti), keseluruhan kunci kekal berfungsi.

Bagaimana untuk berkongsi rahsia

Skim pengurusan utama jenis ini telah difikirkan oleh Adi Shamir pada tahun 1979 apabila beliau menerbitkan karyanya "Bagaimana untuk Berkongsi Rahsia". Artikel itu menerangkan secara ringkas apa yang dipanggil Skim Perkongsian Rahsia Shamir skim ambang untuk membahagikan nilai rahsia dengan cekap (seperti kunci kriptografi) kepada Skim Perkongsian Rahsia Shamir bahagian. Kemudian, bila dan hanya apabila sekurang-kurangnya Skim Perkongsian Rahsia Shamir daripada Skim Perkongsian Rahsia Shamir bahagian dipasang, anda boleh memulihkan rahsia dengan mudah Skim Perkongsian Rahsia Shamir.

Dari sudut keselamatan, sifat penting skim ini ialah penyerang tidak sepatutnya mengetahui apa-apa melainkan dia mempunyai sekurang-kurangnya Skim Perkongsian Rahsia Shamir bahagian. Malah kehadiran Skim Perkongsian Rahsia Shamir bahagian tidak boleh memberikan sebarang maklumat. Kami memanggil harta ini keselamatan semantik.

Interpolasi polinomial

Skim ambang Shamir Skim Perkongsian Rahsia Shamir dibina di sekeliling konsep interpolasi polinomial. Jika anda tidak biasa dengan konsep ini, ia sebenarnya agak mudah. Malah, jika anda pernah melukis titik pada graf dan kemudian menyambungkannya dengan garisan atau lengkung, anda sudah menggunakannya!

Skim Perkongsian Rahsia Shamir
Melalui dua mata anda boleh menarik bilangan polinomial tanpa had darjah 2. Untuk memilih satu-satunya daripada mereka, anda memerlukan mata ketiga. Ilustrasi: Wikipedia

Pertimbangkan polinomial dengan darjah satu, Skim Perkongsian Rahsia Shamir. Jika anda ingin memplot fungsi ini pada graf, berapa banyak mata yang anda perlukan? Nah, kita tahu bahawa ini adalah fungsi linear yang membentuk garis dan oleh itu ia memerlukan sekurang-kurangnya dua titik. Seterusnya, pertimbangkan fungsi polinomial dengan darjah dua, Skim Perkongsian Rahsia Shamir. Ini ialah fungsi kuadratik, jadi sekurang-kurangnya tiga titik diperlukan untuk memplot graf. Bagaimana pula dengan polinomial dengan darjah tiga? Sekurang-kurangnya empat mata. Dan seterusnya dan seterusnya.

Perkara yang sangat menarik tentang harta ini ialah, memandangkan tahap fungsi polinomial dan sekurang-kurangnya Skim Perkongsian Rahsia Shamir mata, kita boleh memperoleh mata tambahan untuk fungsi polinomial ini. Kami memanggil ekstrapolasi mata tambahan ini interpolasi polinomial.

Mengada-adakan rahsia

Anda mungkin sudah menyedari bahawa di sinilah skema bijak Shamir berlaku. Katakan rahsia kita Skim Perkongsian Rahsia Shamir - Adakah Skim Perkongsian Rahsia Shamir. Kita boleh pusing Skim Perkongsian Rahsia Shamir ke satu titik pada graf Skim Perkongsian Rahsia Shamir dan menghasilkan fungsi polinomial dengan darjah Skim Perkongsian Rahsia Shamir, yang memenuhi perkara ini. Biar kami ingatkan anda itu Skim Perkongsian Rahsia Shamir akan menjadi ambang serpihan yang diperlukan, jadi jika kita menetapkan ambang kepada tiga serpihan, kita mesti memilih fungsi polinomial dengan darjah dua.

Polinomial kami akan mempunyai bentuk Skim Perkongsian Rahsia ShamirJika Skim Perkongsian Rahsia Shamir ΠΈ Skim Perkongsian Rahsia Shamir β€” integer positif yang dipilih secara rawak. Kami hanya membina polinomial dengan darjah Skim Perkongsian Rahsia Shamir, di mana pekali bebas Skim Perkongsian Rahsia Shamir - Ini rahsia kami Skim Perkongsian Rahsia Shamir, dan untuk setiap yang berikutnya Skim Perkongsian Rahsia Shamir istilah terdapat pekali positif yang dipilih secara rawak. Jika kita kembali kepada contoh asal dan andaikan itu Skim Perkongsian Rahsia Shamir, maka kita mendapat fungsi Skim Perkongsian Rahsia Shamir.

Pada ketika ini kita boleh menjana serpihan dengan menyambung Skim Perkongsian Rahsia Shamir integer unik dalam Skim Perkongsian Rahsia ShamirJika Skim Perkongsian Rahsia Shamir (kerana itu rahsia kita). Dalam contoh ini, kami ingin mengedarkan empat serpihan dengan ambang tiga, jadi kami menjana mata secara rawak Skim Perkongsian Rahsia Shamir dan hantar satu mata kepada setiap empat orang yang dipercayai, penjaga kunci. Kami juga memberitahu orang ramai Skim Perkongsian Rahsia Shamir, kerana ini dianggap maklumat awam dan perlu untuk pemulihan Skim Perkongsian Rahsia Shamir.

Memulihkan rahsia

Kami telah membincangkan konsep interpolasi polinomial dan bagaimana ia mendasari skema ambang Shamir Skim Perkongsian Rahsia Shamir. Apabila mana-mana tiga daripada empat pemegang amanah ingin memulihkan Skim Perkongsian Rahsia Shamir, mereka hanya perlu interpolasi Skim Perkongsian Rahsia Shamir dengan keunikan tersendiri. Untuk melakukan ini, mereka boleh menentukan mata mereka Skim Perkongsian Rahsia Shamir dan hitung polinomial interpolasi Lagrange menggunakan formula berikut. Jika pengaturcaraan lebih jelas kepada anda daripada matematik, maka pi pada dasarnya adalah pengendali for, yang mendarabkan semua hasil, dan sigma ialah for, yang menambah segala-galanya.

Skim Perkongsian Rahsia Shamir

Skim Perkongsian Rahsia Shamir

pada Skim Perkongsian Rahsia Shamir kita boleh menyelesaikannya seperti ini dan mengembalikan fungsi polinomial asal kita:

Skim Perkongsian Rahsia Shamir

Kerana kita tahu itu Skim Perkongsian Rahsia Shamir, pemulihan Skim Perkongsian Rahsia Shamir dilakukan secara ringkas:

Skim Perkongsian Rahsia Shamir

Menggunakan aritmetik integer yang tidak selamat

Walaupun kita telah berjaya menerapkan idea asas Shamir Skim Perkongsian Rahsia Shamir, kita ditinggalkan dengan masalah yang kita abaikan sehingga kini. Fungsi polinomial kami menggunakan aritmetik integer yang tidak selamat. Ambil perhatian bahawa untuk setiap titik tambahan yang diperoleh penyerang pada graf fungsi kami, terdapat lebih sedikit kemungkinan untuk mata lain. Anda boleh melihat ini dengan mata anda sendiri apabila anda merancang peningkatan bilangan mata untuk fungsi polinomial menggunakan aritmetik integer. Ini adalah tidak produktif kepada matlamat keselamatan yang kami nyatakan, kerana penyerang seharusnya tidak tahu apa-apa sehingga mereka mempunyai sekurang-kurangnya Skim Perkongsian Rahsia Shamir serpihan.

Untuk menunjukkan betapa lemahnya litar aritmetik integer, pertimbangkan senario di mana penyerang memperoleh dua mata Skim Perkongsian Rahsia Shamir dan mengetahui maklumat awam itu Skim Perkongsian Rahsia Shamir. Daripada maklumat ini dia boleh simpulkan Skim Perkongsian Rahsia Shamir, sama dengan dua, dan masukkan nilai yang diketahui ke dalam formula Skim Perkongsian Rahsia Shamir ΠΈ Skim Perkongsian Rahsia Shamir.

Skim Perkongsian Rahsia Shamir

Penyerang kemudian boleh mencari Skim Perkongsian Rahsia Shamir, mengira Skim Perkongsian Rahsia Shamir:

Skim Perkongsian Rahsia Shamir

Oleh kerana kita telah menentukan Skim Perkongsian Rahsia Shamir sebagai integer positif yang dipilih secara rawak, terdapat bilangan terhad yang mungkin Skim Perkongsian Rahsia Shamir. Menggunakan maklumat ini, penyerang boleh membuat kesimpulan Skim Perkongsian Rahsia Shamir, kerana apa-apa yang lebih besar daripada 5 akan berjaya Skim Perkongsian Rahsia Shamir negatif. Ini ternyata benar kerana kita telah menentukannya Skim Perkongsian Rahsia Shamir

Penyerang kemudiannya boleh mengira nilai yang mungkin Skim Perkongsian Rahsia Shamirmenggantikan Skim Perkongsian Rahsia Shamir Π² Skim Perkongsian Rahsia Shamir:

Skim Perkongsian Rahsia Shamir

Dengan pilihan terhad untuk Skim Perkongsian Rahsia Shamir ia menjadi jelas betapa mudahnya untuk memilih dan menyemak nilai Skim Perkongsian Rahsia Shamir. Terdapat hanya lima pilihan di sini.

Menyelesaikan masalah dengan aritmetik integer yang tidak selamat

Untuk menghapuskan kelemahan ini, Shamir mencadangkan menggunakan aritmetik modular, menggantikan Skim Perkongsian Rahsia Shamir pada Skim Perkongsian Rahsia ShamirJika Skim Perkongsian Rahsia Shamir ΠΈ Skim Perkongsian Rahsia Shamir β€” set semua nombor perdana.

Mari cepat ingat bagaimana aritmetik modular berfungsi. Jam dengan tangan adalah konsep yang biasa. Dia menggunakan jam tangan iaitu Skim Perkongsian Rahsia Shamir. Sebaik sahaja jarum jam melepasi dua belas, ia kembali kepada satu. Sifat menarik sistem ini ialah hanya dengan melihat jam, kita tidak dapat menyimpulkan berapa banyak pusingan yang dibuat oleh jarum jam. Walau bagaimanapun, jika kita tahu bahawa jarum jam telah berlalu 12 empat kali, kita boleh menentukan sepenuhnya bilangan jam yang telah berlalu menggunakan formula mudah Skim Perkongsian Rahsia ShamirJika Skim Perkongsian Rahsia Shamir adalah pembahagi kita (di sini Skim Perkongsian Rahsia Shamir), Skim Perkongsian Rahsia Shamir ialah pekali (berapa kali pembahagi masuk ke nombor asal tanpa baki, di sini Skim Perkongsian Rahsia Shamir), dan Skim Perkongsian Rahsia Shamir ialah bakinya, yang biasanya mengembalikan panggilan operator modulo (di sini Skim Perkongsian Rahsia Shamir). Mengetahui semua nilai ini membolehkan kita menyelesaikan persamaan untuk Skim Perkongsian Rahsia Shamir, tetapi jika kita terlepas pekali, kita tidak akan dapat memulihkan nilai asal.

Kami boleh menunjukkan cara ini meningkatkan keselamatan skim kami dengan menggunakan skim tersebut pada contoh dan penggunaan terdahulu kami Skim Perkongsian Rahsia Shamir. Fungsi polinomial baharu kami Skim Perkongsian Rahsia Shamir, dan mata baharu Skim Perkongsian Rahsia Shamir. Kini penjaga kunci boleh sekali lagi menggunakan interpolasi polinomial untuk membina semula fungsi kami, hanya kali ini operasi penambahan dan pendaraban mesti disertakan dengan pengurangan modulo Skim Perkongsian Rahsia Shamir (contohnya Skim Perkongsian Rahsia Shamir).

Menggunakan contoh baharu ini, mari kita anggap bahawa penyerang mempelajari dua daripada mata baharu ini, Skim Perkongsian Rahsia Shamir, dan maklumat awam Skim Perkongsian Rahsia Shamir. Kali ini, penyerang, berdasarkan semua maklumat yang dia ada, mengeluarkan fungsi berikut, di mana Skim Perkongsian Rahsia Shamir ialah set semua integer positif, dan Skim Perkongsian Rahsia Shamir mewakili pekali modulus Skim Perkongsian Rahsia Shamir.

Skim Perkongsian Rahsia Shamir

Sekarang penyerang kami menemui semula Skim Perkongsian Rahsia Shamir, mengira Skim Perkongsian Rahsia Shamir:

Skim Perkongsian Rahsia Shamir

Kemudian dia mencuba lagi Skim Perkongsian Rahsia Shamirmenggantikan Skim Perkongsian Rahsia Shamir Π² Skim Perkongsian Rahsia Shamir:

Skim Perkongsian Rahsia Shamir

Kali ini dia menghadapi masalah yang serius. Formula tiada nilai Skim Perkongsian Rahsia Shamir, Skim Perkongsian Rahsia Shamir ΠΈ Skim Perkongsian Rahsia Shamir. Oleh kerana terdapat bilangan gabungan yang tidak terhingga bagi pembolehubah ini, dia tidak boleh mendapatkan sebarang maklumat tambahan.

Pertimbangan Keselamatan

Skim perkongsian rahsia Shamir mencadangkan keselamatan dari sudut teori maklumat. Ini bermakna bahawa matematik adalah tahan walaupun terhadap penyerang dengan kuasa pengkomputeran tanpa had. Walau bagaimanapun, litar masih mengandungi beberapa isu yang diketahui.

Sebagai contoh, skim Shamir tidak mencipta serpihan untuk diperiksa, iaitu, orang ramai boleh bebas membentangkan serpihan palsu dan mengganggu pemulihan rahsia yang betul. Penyimpan serpihan yang bermusuhan dengan maklumat yang mencukupi bahkan boleh menghasilkan serpihan lain dengan menukar Skim Perkongsian Rahsia Shamir mengikut budi bicara anda sendiri. Masalah ini diselesaikan menggunakan skim perkongsian rahsia yang boleh disahkan, seperti skim Feldman.

Masalah lain ialah panjang mana-mana serpihan adalah sama dengan panjang rahsia yang sepadan, jadi panjang rahsia mudah ditentukan. Masalah ini boleh diselesaikan secara remeh padding rahsia dengan nombor arbitrari sehingga panjang tetap.

Akhir sekali, adalah penting untuk ambil perhatian bahawa kebimbangan keselamatan kami mungkin melangkaui reka bentuk itu sendiri. Untuk aplikasi kriptografi dunia sebenar, selalunya terdapat ancaman serangan saluran sisi di mana penyerang cuba mengekstrak maklumat berguna daripada masa pelaksanaan aplikasi, caching, ranap sistem, dsb. Jika ini membimbangkan, pertimbangan yang teliti harus diberikan semasa pembangunan untuk menggunakan langkah perlindungan seperti fungsi dan carian masa tetap, menghalang memori daripada disimpan ke cakera, dan beberapa pertimbangan lain yang berada di luar skop artikel ini.

Demo

Pada halaman ini Terdapat demonstrasi interaktif skim perkongsian rahsia Shamir. Demonstrasi berdasarkan perpustakaan ssss-js, yang merupakan port JavaScript untuk program popular ssss. Ambil perhatian bahawa mengira nilai yang besar Skim Perkongsian Rahsia Shamir, Skim Perkongsian Rahsia Shamir ΠΈ Skim Perkongsian Rahsia Shamir mungkin mengambil masa.

Sumber: www.habr.com

Tambah komen