Compare commits
5 Commits
c0494494a7
...
2d7e52f512
Author | SHA1 | Date | |
---|---|---|---|
2d7e52f512 | |||
c2698455de | |||
a10144f05d | |||
ccb4287671 | |||
523bae52a9 |
33
src/tpre.py
33
src/tpre.py
@ -351,18 +351,16 @@ def ReEncrypt(kFrag:list,
|
|||||||
# capsule, enc_Data = C
|
# capsule, enc_Data = C
|
||||||
|
|
||||||
|
|
||||||
# N 是加密节点的数量,t是阈值
|
# 将加密节点加密后产生的t个(capsule,ct)合并在一起,产生cfrags = {{capsule1,capsule2,...},ct}
|
||||||
def mergecfrag(sk_A: int, pk_A: point, pk_B: point,
|
def mergecfrag(cfrag_cts:list)->list:
|
||||||
N: int, t: int)->tuple[Tuple[point,point
|
ct_list = []
|
||||||
,int,point], ...]:
|
cfrags_list = []
|
||||||
cfrags = ()
|
cfrags = []
|
||||||
kfrags = GenerateReKey(sk_A,pk_B,N,t)
|
for cfrag_ct in cfrag_cts:
|
||||||
result = Encapsulate(pk_A)
|
cfrags_list.append(cfrag_ct[0])
|
||||||
K,capsule = result
|
cfrags_list.append(cfrag_ct[1])
|
||||||
for kfrag in kfrags:
|
cfrags.append(cfrags_list)
|
||||||
cfrag = ReEncapsulate(kfrag,capsule)
|
cfrags.append(ct_list[0])
|
||||||
cfrags = cfrags + (cfrag,)
|
|
||||||
|
|
||||||
return cfrags
|
return cfrags
|
||||||
|
|
||||||
|
|
||||||
@ -370,12 +368,13 @@ def mergecfrag(sk_A: int, pk_A: point, pk_B: point,
|
|||||||
def DecapsulateFrags(sk_B:int,
|
def DecapsulateFrags(sk_B:int,
|
||||||
pk_B: point,
|
pk_B: point,
|
||||||
pk_A:point,
|
pk_A:point,
|
||||||
cFrags:Tuple[Tuple[point,point,int,point]]
|
cFrags:list
|
||||||
) -> int:
|
) -> int:
|
||||||
'''
|
'''
|
||||||
return:
|
return:
|
||||||
K: sm4 key
|
K: sm4 key
|
||||||
'''
|
'''
|
||||||
|
|
||||||
Elist = []
|
Elist = []
|
||||||
Vlist = []
|
Vlist = []
|
||||||
idlist = []
|
idlist = []
|
||||||
@ -423,14 +422,14 @@ def DecapsulateFrags(sk_B:int,
|
|||||||
|
|
||||||
# M = IAEAM(K,enc_Data)
|
# M = IAEAM(K,enc_Data)
|
||||||
|
|
||||||
|
# cfrags = {{capsule1,capsule2,...},ct} ,ct->en_Data
|
||||||
def DecryptFrags(sk_B: int,
|
def DecryptFrags(sk_B: int,
|
||||||
pk_B: point,
|
pk_B: point,
|
||||||
pk_A: point,
|
pk_A: point,
|
||||||
cFrags: Tuple[Tuple[point,point,int,point]],
|
cfrags:list
|
||||||
C: Tuple[capsule,int]
|
|
||||||
) -> int:
|
) -> int:
|
||||||
capsule,enc_Data = C # 加密后的密文
|
capsules,enc_Data = cfrags # 加密后的密文
|
||||||
K = DecapsulateFrags(sk_B, pk_B, pk_A,cFrags)
|
K = DecapsulateFrags(sk_B, pk_B, pk_A, capsules)
|
||||||
|
|
||||||
iv = b'tpretpretpretpre'
|
iv = b'tpretpretpretpre'
|
||||||
sm4_dec = Sm4Cbc(K, iv, DO_DECRYPT) #pylint: disable= e0602
|
sm4_dec = Sm4Cbc(K, iv, DO_DECRYPT) #pylint: disable= e0602
|
||||||
|
Loading…
x
Reference in New Issue
Block a user