Perkongsian rahsia tambahan ialah kaedah berkongsi rahsia kepada sekumpulan peserta, supaya rahsia itu hanya boleh dibina semula apabila bilangan peserta tertentu berkumpul dan menyumbang bahagian mereka. Teknologi ini digunakan secara meluas dalam kriptografi dan pengiraan berbilang pihak yang selamat. Dalam artikel ini, kita akan membincangkan konsep perkongsian rahsia tambahan dan pengaktifan perkongsian dan cara melaksanakannya menggunakan Python.
Additive secret sharing adalah teknik yang membolehkan sekumpulan peserta berkongsi rahsia tanpa mendedahkan rahsia kepada mana-mana individu peserta. Rahsia dibahagikan kepada saham, dengan setiap peserta menerima satu. Rahsia itu hanya boleh dibina semula apabila sebilangan peserta berkumpul dan menawarkan saham mereka. Teknik ini juga dikenali sebagai perkongsian rahsia ambang.
Idea asas perkongsian rahsia tambahan adalah untuk menyatakan rahsia sebagai polinomial darjah (t-1), di mana t ialah ambang. Pilih pekali polinomial untuk menjadi integer rawak. Setiap peserta kemudiannya diberikan satu mata pada polinomial yang mewakili bahagian mereka. Dengan interpolasi menggunakan mata yang disediakan oleh peserta, rahsia itu boleh dibina semula.
Sebagai contoh, andaikan kita mempunyai rahsia S yang ingin dikongsikan kepada tiga peserta A, B dan C. Kami memilih polinomial darjah ke-2 dengan pekali rawak. Polinomial ini dinyatakan sebagai S(x) = a0 + a1x + a2x^2. Setiap peserta kemudiannya diberikan titik (x, S(x)) pada polinomial, di mana x ialah nilai unik yang dipilih untuk setiap peserta.
Participant A receives the point (1, S(1)) Participant B receives the point (2, S(2)) Participant C receives the point (3, S(3))
Kini, jika mana-mana dua peserta berkumpul dan memberikan mata mereka, mereka boleh membina semula polinomial dan dengan itu rahsianya. Walau bagaimanapun, jika seorang peserta hanya memberikan mata mereka, mereka tidak boleh membina semula rahsia itu.
Untuk melaksanakan perkongsian rahsia aditif dalam Python, kita boleh menggunakan perpustakaan Python yang dipanggil "secretsharing", yang menyediakan API yang mudah digunakan untuk melaksanakan perkongsian rahsia ambang. Pustaka menyediakan fungsi yang dipanggil "split_secret" yang menerima rahsia, bilangan saham dan ambang sebagai input dan mengembalikan senarai saham.
Berikut adalah contoh perkongsian rahsia antara tiga peserta menggunakan fungsi "split_secret" -
from secretsharing import SecretSharer
# Secret to be shared secret = "mysecret" # Number of shares to be generated n = 3 # Threshold value t = 2 # Generate shares shares = SecretSharer.split_secret(secret, n, t) # Print the shares for share in shares: print(share)
Dalam contoh di atas, kami mempunyai rahsia "mysecret" yang ingin kami kongsikan antara tiga pihak kalangan peserta. Kami menetapkan nilai ambang kepada 2, yang bermaksud mana-mana dua peserta boleh membina semula rahsia. Fungsi "split_secret" menjana tiga bahagian dan mencetaknya.
Untuk membina semula rahsia, kita boleh menggunakan fungsi "recover_secret" yang disediakan oleh perpustakaan "secretsharing". Fungsi ini menerima senarai saham sebagai input dan mengembalikan rahsia. Berikut ialah contoh membina semula rahsia menggunakan fungsi "recover_secret":
from secretsharing import SecretSharer # List of shares shares = ["1-mysecret", "2-mysecret", "3-mysecret"] # Reconstruct the secret secret = SecretSharer.recover_secret(shares) print(secret)
Dalam contoh di atas, kami mempunyai senarai stok yang ingin kami gunakan untuk membina semula rahsia tersebut. Fungsi "recover_secret" mengambil sebagai input senarai stok dan mengembalikan rahsia. Dalam contoh ini, rahsianya ialah "rahsia saya".
Share Proactivization ialah teknologi yang membolehkan sekumpulan peserta menyegarkan semula bahagian mereka secara proaktif tanpa mendedahkan rahsia. Teknik ini digunakan dalam situasi di mana rahsia mungkin perlu ditukar dengan kerap, seperti dalam kes kata laluan yang dikongsi.
Idea asas Share Proactivation ialah setiap peserta menjana bahagian baharu untuk rahsia baharu dan menghantarnya kepada orang lain. Saham baharu kemudiannya digabungkan untuk membina semula rahsia baharu. Saham lama dibuang dan saham baharu digunakan untuk membina semula rahsia baharu.
Untuk melaksanakan Proaktivasi Kongsi dalam Python, kita boleh menggunakan perpustakaan "perkongsian rahsia" yang sama seperti perkongsian rahsia tambahan. Pustaka menyediakan fungsi yang dipanggil "create_share" yang menerima rahsia dan ID perkongsian unik sebagai input dan mengembalikan bahagian rahsia baharu.
Berikut ialah contoh menyegarkan perkongsian secara aktif menggunakan fungsi "create_share" -
from secretsharing import SecretSharer # New secret new_secret = "mynewsecret" # Share ID share_id = "1" # Create a new share new_share = SecretSharer.create_share(new_secret, share_id) print(new_share)
Dalam contoh di atas, kami mempunyai rahsia baru "mynewsecret" yang ingin kami kongsikan kepada tiga peserta. Kami juga mempunyai ID bahagian "1" yang mewakili peserta yang akan menjana bahagian baharu. Fungsi "create_share" menerima rahsia baharu dan berkongsi ID sebagai input dan mengembalikan bahagian baharu rahsia itu.
Untuk membina semula rahsia baharu, kita boleh menggunakan fungsi "recover_secret" yang sama seperti sebelum ini. Namun, kali ini kami akan menggunakan saham baharu yang dijana oleh setiap peserta.
from secretsharing import SecretSharer # List of new shares new_shares = ["1-mynewsecret", "2-mysecret", "3-mysecret"] # Reconstruct the new secret new_secret = SecretSharer.recover_secret(new_shares) print(new_secret)
Dalam contoh di atas, kami mempunyai senarai stok baharu yang ingin kami gunakan untuk membina semula rahsia baharu. Fungsi "recover_secret" mengambil sebagai input senarai stok baharu dan mengembalikan rahsia baharu, dalam kes ini "mynewsecret".
Perkongsian rahsia tambahan dan automasi perkongsian ialah teknik berkuasa yang boleh digunakan untuk berkongsi maklumat sensitif dengan selamat di kalangan sekumpulan peserta. Pustaka "perkongsian rahsia" dalam Python menyediakan API yang mudah digunakan untuk melaksanakan teknik ini. Dengan menggunakan fungsi "split_secret" dan "create_share", kami boleh melaksanakan perkongsian rahsia tambahan dan automasi perkongsian dengan mudah. Selain itu, dengan menggunakan fungsi "recover_secret", kita boleh membina semula rahsia atau rahsia baharu dengan mudah.
Atas ialah kandungan terperinci Perkongsian rahsia tambahan dan automasi perkongsian - menggunakan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!