91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 17KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-16
  • 語言: Python
  • 標簽: 雙線性對??python??

資源簡介

python3環境下的PBC庫,可用于雙線性配對計算的使用 python3環境下的PBC庫,可用于雙線性配對計算的使用 python3環境下的PBC庫,可用于雙線性配對計算的使用

資源截圖

代碼片段和文件信息

#!?/usr/bin/env?python3

“““
KSW.py

Written?by?Geremy?Condra
Licensed?under?GPLv3
Released?15?October?2009

An?implementation?of?the?Katz-Sahai-Waters?predicate
encryption?scheme?in?Python3.
“““

from?pypbc?import?*

#############################################
# Utilities ?????#
#############################################

def?dot_product(x?y?n):
“““Takes?the?dot?product?of?lists?x?and?y?over?F_n“““

if?len(x)?!=?len(y):
raise?ValueError(“x?and?y?must?be?the?same?length!“)
if?not?isinstance(n?int):
raise?ValueError(“n?must?be?an?integer!“)

return?sum([(x_i?*?y[i])?%?n?for?i?x_i?in?enumerate(x)])

#############################################
# Cryptosystem ?????#
#############################################

class?PublicKey:
g_G_p?=?None
g_G_r?=?None
Q?=?None
vector?=?None
def?__init__(self?gen_p?gen_r?Q?vector):
self.g_G_p?=?gen_p
self.g_G_r?=?gen_r
self.Q?=?Q
self.vector?=?vector

class?MasterSecretKey:
p?=?None
q?=?None
r?=?None
g_G_q?=?None
Hs?=?None
def?__init__(self?p?q?r?g_G_q?Hs):
self.p?=?p
self.q?=?q
self.r?=?r
self.g_G_q?=?g_G_q
self.Hs?=?Hs


class?Cryptosystem:

def?__init__(self?security)?->?“(PK?SK)“:
self.security?=?security
#?select?p?q?r
p?=?get_random_prime(100)
q?=?get_random_prime(100)
r?=?get_random_prime(100)
#?make?n
self.n?=?p*q*r
#?build?the?params
params?=?Parameters(n=self.n)
#?build?the?pairing
self.pairing?=?Pairing(params)
#?find?the?generators?for?the?G_p?G_q?and?G_r?subgroups
g_G_p?=?Element.random(self.pairing?G1)**(q*r)
g_G_r?=?Element.random(self.pairing?G1)**(p*q)
g_G_q?=?Element.random(self.pairing?G1)**(p*r)
#?choose?R0
R0?=?g_G_r?**?Element.random(self.pairing?Zr)
#?choose?the?random?R‘s
Rs?=?[(g_G_r**Element.random(self.pairing?Zr)?g_G_r**Element.random(self.pairing?Zr))?for?i?in?range(security)]
hs?=?[(g_G_p**Element.random(self.pairing?Zr)?g_G_p**Element.random(self.pairing?Zr))?for?i?in?range(security)]
#?choose?the?random?H‘s
Hs?=?[]
for?i?in?range(security):
Hs.append((hs[i][0]?*?Rs[i][0]?hs[i][1]?*?Rs[i][1]))
#?calculate?Q
Q?=?g_G_q?*?R0
#?build?the?public?and?master?secret?keys
self.pk?=?PublicKey(g_G_p?g_G_r?Q?Hs)
self.sk?=?MasterSecretKey(p?q?r?g_G_q?hs)


def?keygen(self?v:?“description?of?a?predicate“)?->?“SK_f“:
R5?=?self.pk.g_G_r**Element.random(self.pairing?Zr)
Q6?=?self.sk.g_G_q**Element.random(self.pairing?Zr)
Rs?=?[]
for?i?in?range(self.security):
#?build?r1
r1?=?Element(self.pairing?Zr?get_random(self.sk.p))
#?build?r2
r2?=?Element(self.pairing?Zr?get_random(self.sk.p))
Rs.append((r1?r2))
f1?=?Element(self.pairing?Zr?get_random(self.sk.q))
f2?=?Element(self.pairing?Zr?get_random(self.sk.q))
K?=?R5*Q6
for?pos?in?range(self.security):
#?get?h1?h2
h1?h2?=?self.sk.Hs[pos]
#?get?r1?r2
r1?r2?=?Rs[pos]
#?form?the?intermediate?value
i1?=?h1**(-r1)
i2?=?h2**(-r2)

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-11-21?17:22??pypbc-master\
?????文件????????1480??2017-11-21?17:22??pypbc-master\INSTALL
?????文件????????7601??2017-11-21?17:22??pypbc-master\KSW.py
?????文件????????1070??2017-11-21?17:22??pypbc-master\LICENSE
?????文件?????????683??2017-11-21?17:22??pypbc-master\Makefile
?????文件???????44874??2017-11-21?17:22??pypbc-master\pypbc.c
?????文件????????1912??2017-11-21?17:22??pypbc-master\pypbc.h
?????文件?????????390??2017-11-21?17:22??pypbc-master\setup.py
?????文件????????9837??2017-11-21?17:22??pypbc-master\test.py

評論

共有 條評論