Rumah > pembangunan bahagian belakang > Tutorial Python > Perkongsian rahsia tambahan dan automasi perkongsian - menggunakan Python

Perkongsian rahsia tambahan dan automasi perkongsian - menggunakan Python

WBOY
Lepaskan: 2023-08-18 15:05:45
ke hadapan
1613 orang telah melayarinya

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.

Pengenalan kepada Additive Secret Sharing

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))
Salin selepas log masuk

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.

Melaksanakan perkongsian rahsia aditif dalam Python

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)
Salin selepas log masuk

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.

Rekonstruksi Rahsia

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)
Salin selepas log masuk

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".

Memperkenalkan Share Proactivization

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.

Melaksanakan Pengaktifan Kongsi dalam Python

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)
Salin selepas log masuk

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)
Salin selepas log masuk

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".

Kesimpulan

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!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan