forked from sangge/tpre-python
chore: create test folder
This commit is contained in:
93
src/testcode/demo2.py
Normal file
93
src/testcode/demo2.py
Normal file
@@ -0,0 +1,93 @@
|
||||
from tpre import *
|
||||
import time
|
||||
import openpyxl
|
||||
|
||||
# 初始化Excel工作簿和工作表
|
||||
wb = openpyxl.Workbook()
|
||||
ws = wb.active
|
||||
ws.title = "算法性能结果"
|
||||
headers = [
|
||||
"门限值 N",
|
||||
"门限值 T",
|
||||
"密钥生成运行时间",
|
||||
"加密算法运行时间",
|
||||
"重加密密钥生成算法运行时间",
|
||||
"重加密算法运行时间",
|
||||
"解密算法运行时间",
|
||||
"算法总运行时间",
|
||||
]
|
||||
ws.append(headers)
|
||||
|
||||
|
||||
for N in range(4, 21, 2):
|
||||
T = N // 2
|
||||
print(f"当前门限值: N = {N}, T = {T}")
|
||||
|
||||
start_total_time = time.time()
|
||||
# 1
|
||||
start_time = time.time()
|
||||
pk_a, sk_a = GenerateKeyPair()
|
||||
m = b"hello world"
|
||||
end_time = time.time()
|
||||
elapsed_time_key_gen = end_time - start_time
|
||||
print(f"密钥生成运行时间:{elapsed_time_key_gen}秒")
|
||||
|
||||
# ... [中间代码不变]
|
||||
# 2
|
||||
start_time = time.time()
|
||||
capsule_ct = Encrypt(pk_a, m)
|
||||
end_time = time.time()
|
||||
elapsed_time_enc = end_time - start_time
|
||||
print(f"加密算法运行时间:{elapsed_time_enc}秒")
|
||||
|
||||
# 3
|
||||
pk_b, sk_b = GenerateKeyPair()
|
||||
|
||||
# 5
|
||||
start_time = time.time()
|
||||
id_tuple = tuple(range(N))
|
||||
rekeys = GenerateReKey(sk_a, pk_b, N, T, id_tuple)
|
||||
end_time = time.time()
|
||||
elapsed_time_rekey_gen = end_time - start_time
|
||||
print(f"重加密密钥生成算法运行时间:{elapsed_time_rekey_gen}秒")
|
||||
|
||||
# 7
|
||||
start_time = time.time()
|
||||
cfrag_cts = []
|
||||
|
||||
for rekey in rekeys:
|
||||
cfrag_ct = ReEncrypt(rekey, capsule_ct)
|
||||
cfrag_cts.append(cfrag_ct)
|
||||
end_time = time.time()
|
||||
re_elapsed_time = (end_time - start_time) / len(rekeys)
|
||||
print(f"重加密算法运行时间:{re_elapsed_time}秒")
|
||||
|
||||
# 9
|
||||
start_time = time.time()
|
||||
cfrags = mergecfrag(cfrag_cts)
|
||||
m = DecryptFrags(sk_b, pk_b, pk_a, cfrags)
|
||||
end_time = time.time()
|
||||
elapsed_time_dec = end_time - start_time
|
||||
end_total_time = time.time()
|
||||
total_time = end_total_time - start_total_time - re_elapsed_time * len(rekeys)
|
||||
print(f"解密算法运行时间:{elapsed_time_dec}秒")
|
||||
print("成功解密:", m)
|
||||
print(f"算法总运行时间:{total_time}秒")
|
||||
print()
|
||||
|
||||
# 将结果保存到Excel
|
||||
ws.append(
|
||||
[
|
||||
N,
|
||||
T,
|
||||
elapsed_time_key_gen,
|
||||
elapsed_time_enc,
|
||||
elapsed_time_rekey_gen,
|
||||
re_elapsed_time,
|
||||
elapsed_time_dec,
|
||||
total_time,
|
||||
]
|
||||
)
|
||||
|
||||
# 保存Excel文件
|
||||
wb.save("结果.xlsx")
|
||||
63
src/testcode/lenth_test.py
Normal file
63
src/testcode/lenth_test.py
Normal file
@@ -0,0 +1,63 @@
|
||||
from tpre import *
|
||||
import time
|
||||
|
||||
N = 20
|
||||
T = N // 2
|
||||
print(f"当前门限值: N = {N}, T = {T}")
|
||||
|
||||
for i in range(1, 10):
|
||||
total_time = 0
|
||||
|
||||
# 1
|
||||
start_time = time.time()
|
||||
pk_a, sk_a = GenerateKeyPair()
|
||||
m = b"hello world" * pow(10, i)
|
||||
print(f"明文长度:{len(m)}")
|
||||
end_time = time.time()
|
||||
elapsed_time = end_time - start_time
|
||||
total_time += elapsed_time
|
||||
print(f"密钥生成运行时间:{elapsed_time}秒")
|
||||
|
||||
# 2
|
||||
start_time = time.time()
|
||||
capsule_ct = Encrypt(pk_a, m)
|
||||
end_time = time.time()
|
||||
elapsed_time = end_time - start_time
|
||||
total_time += elapsed_time
|
||||
print(f"加密算法运行时间:{elapsed_time}秒")
|
||||
|
||||
# 3
|
||||
pk_b, sk_b = GenerateKeyPair()
|
||||
|
||||
# 5
|
||||
start_time = time.time()
|
||||
id_tuple = tuple(range(N))
|
||||
rekeys = GenerateReKey(sk_a, pk_b, N, T, id_tuple)
|
||||
end_time = time.time()
|
||||
elapsed_time = end_time - start_time
|
||||
total_time += elapsed_time
|
||||
print(f"重加密密钥生成算法运行时间:{elapsed_time}秒")
|
||||
|
||||
# 7
|
||||
start_time = time.time()
|
||||
cfrag_cts = []
|
||||
|
||||
for rekey in rekeys:
|
||||
cfrag_ct = ReEncrypt(rekey, capsule_ct)
|
||||
cfrag_cts.append(cfrag_ct)
|
||||
end_time = time.time()
|
||||
elapsed_time = (end_time - start_time) / len(rekeys)
|
||||
total_time += elapsed_time
|
||||
print(f"重加密算法运行时间:{elapsed_time}秒")
|
||||
|
||||
# 9
|
||||
start_time = time.time()
|
||||
cfrags = mergecfrag(cfrag_cts)
|
||||
m = DecryptFrags(sk_b, pk_b, pk_a, cfrags)
|
||||
end_time = time.time()
|
||||
elapsed_time = end_time - start_time
|
||||
total_time += elapsed_time
|
||||
print(f"解密算法运行时间:{elapsed_time}秒")
|
||||
print("成功解密:")
|
||||
print(f"算法总运行时间:{total_time}秒")
|
||||
print()
|
||||
139
src/testcode/perf.log
Normal file
139
src/testcode/perf.log
Normal file
@@ -0,0 +1,139 @@
|
||||
12th Gen Intel(R) Core(TM) i5-12490F
|
||||
|
||||
0.01 cores
|
||||
当前门限值: N = 20, T = 10
|
||||
密钥生成运行时间:0.9953160285949707秒
|
||||
加密算法运行时间:0.006381511688232422秒
|
||||
重加密密钥生成算法运行时间:12.903082609176636秒
|
||||
重加密算法运行时间:0.989858603477478秒
|
||||
解密算法运行时间:19.69758915901184秒
|
||||
成功解密: b'hello world'
|
||||
算法总运行时间:34.59222791194916秒
|
||||
|
||||
0.1 cores
|
||||
当前门限值: N = 20, T = 10
|
||||
密钥生成运行时间:0.004191160202026367秒
|
||||
加密算法运行时间:0.09498381614685059秒
|
||||
重加密密钥生成算法运行时间:0.7050104141235352秒
|
||||
重加密算法运行时间:0.09499671459197997秒
|
||||
解密算法运行时间:1.5005874633789062秒
|
||||
成功解密: b'hello world'
|
||||
算法总运行时间:2.3997695684432983秒
|
||||
|
||||
1 cores
|
||||
当前门限值: N = 20, T = 10
|
||||
密钥生成运行时间:0.0030488967895507812秒
|
||||
加密算法运行时间:0.005570888519287109秒
|
||||
重加密密钥生成算法运行时间:0.07791781425476074秒
|
||||
重加密算法运行时间:0.006881630420684815秒
|
||||
解密算法运行时间:0.08786344528198242秒
|
||||
成功解密: b'hello world'
|
||||
算法总运行时间:0.18128267526626587秒
|
||||
|
||||
4 cores
|
||||
当前门限值: N = 20, T = 10
|
||||
密钥生成运行时间:0.0026373863220214844秒
|
||||
加密算法运行时间:0.004965305328369141秒
|
||||
重加密密钥生成算法运行时间:0.07313323020935059秒
|
||||
重加密算法运行时间:0.006896591186523438秒
|
||||
解密算法运行时间:0.08880448341369629秒
|
||||
成功解密: b'hello world'
|
||||
算法总运行时间:0.17643699645996094秒
|
||||
|
||||
rk3399
|
||||
0.01 cores
|
||||
当前门限值: N = 20, T = 10
|
||||
密钥生成运行时间:3.9984750747680664秒
|
||||
加密算法运行时间:9.599598169326782秒
|
||||
重加密密钥生成算法运行时间:132.99906015396118秒
|
||||
重加密算法运行时间:12.120013177394867秒
|
||||
解密算法运行时间:153.29800581932068秒
|
||||
成功解密: b'hello world'
|
||||
算法总运行时间:312.0151523947716秒
|
||||
|
||||
0.1 cores
|
||||
当前门限值: N = 20, T = 10
|
||||
密钥生成运行时间:0.09907650947570801秒
|
||||
加密算法运行时间:0.205247163772583秒
|
||||
重加密密钥生成算法运行时间:7.498294830322266秒
|
||||
重加密算法运行时间:0.7300507187843323秒
|
||||
解密算法运行时间:8.998314619064331秒
|
||||
成功解密: b'hello world'
|
||||
算法总运行时间:17.53098384141922秒
|
||||
|
||||
1 cores
|
||||
当前门限值: N = 20, T = 10
|
||||
密钥生成运行时间:0.008650541305541992秒
|
||||
加密算法运行时间:0.02130866050720215秒
|
||||
重加密密钥生成算法运行时间:0.30187034606933594秒
|
||||
重加密算法运行时间:0.0274674654006958秒
|
||||
解密算法运行时间:0.3521096706390381秒
|
||||
成功解密: b'hello world'
|
||||
算法总运行时间:0.7114066839218139秒
|
||||
|
||||
4 cores
|
||||
当前门限值: N = 20, T = 10
|
||||
密钥生成运行时间:0.00883340835571289秒
|
||||
加密算法运行时间:0.021309614181518555秒
|
||||
重加密密钥生成算法运行时间:0.3036940097808838秒
|
||||
重加密算法运行时间:0.0277299165725708秒
|
||||
解密算法运行时间:0.3464491367340088秒
|
||||
成功解密: b'hello world'
|
||||
算法总运行时间:0.7080160856246949秒
|
||||
|
||||
12th Gen Intel(R) Core(TM) i5-12490F
|
||||
|
||||
当前门限值: N = 20, T = 10
|
||||
明文长度:110
|
||||
密钥生成运行时间:0.0033216476440429688秒
|
||||
加密算法运行时间:0.00811624526977539秒
|
||||
重加密密钥生成算法运行时间:0.11786699295043945秒
|
||||
重加密算法运行时间:0.009650790691375732秒
|
||||
解密算法运行时间:0.12125396728515625秒
|
||||
成功解密:
|
||||
算法总运行时间:0.2602096438407898秒
|
||||
|
||||
明文长度:1100
|
||||
密钥生成运行时间:0.0034990310668945312秒
|
||||
加密算法运行时间:0.008537054061889648秒
|
||||
重加密密钥生成算法运行时间:0.10165071487426758秒
|
||||
重加密算法运行时间:0.009756004810333252秒
|
||||
解密算法运行时间:0.13438773155212402秒
|
||||
成功解密:
|
||||
算法总运行时间:0.257830536365509秒
|
||||
|
||||
明文长度:11000
|
||||
密钥生成运行时间:0.0035142898559570312秒
|
||||
加密算法运行时间:0.005819797515869141秒
|
||||
重加密密钥生成算法运行时间:0.1130058765411377秒
|
||||
重加密算法运行时间:0.010429942607879638秒
|
||||
解密算法运行时间:0.1242990493774414秒
|
||||
成功解密:
|
||||
算法总运行时间:0.25706895589828493秒
|
||||
|
||||
明文长度:110000
|
||||
密钥生成运行时间:0.002706289291381836秒
|
||||
加密算法运行时间:0.00833749771118164秒
|
||||
重加密密钥生成算法运行时间:0.11022734642028809秒
|
||||
重加密算法运行时间:0.010864639282226562秒
|
||||
解密算法运行时间:0.13867974281311035秒
|
||||
成功解密:
|
||||
算法总运行时间:0.2708155155181885秒
|
||||
|
||||
明文长度:1100000
|
||||
密钥生成运行时间:0.003710031509399414秒
|
||||
加密算法运行时间:0.04558920860290527秒
|
||||
重加密密钥生成算法运行时间:0.10261368751525879秒
|
||||
重加密算法运行时间:0.009720635414123536秒
|
||||
解密算法运行时间:0.15311646461486816秒
|
||||
成功解密:
|
||||
算法总运行时间:0.3147500276565552秒
|
||||
|
||||
明文长度:11000000
|
||||
密钥生成运行时间:0.008045673370361328秒
|
||||
加密算法运行时间:0.3575568199157715秒
|
||||
重加密密钥生成算法运行时间:0.09267783164978027秒
|
||||
重加密算法运行时间:0.009347784519195556秒
|
||||
解密算法运行时间:0.4754812717437744秒
|
||||
成功解密:
|
||||
算法总运行时间:0.9431093811988831秒
|
||||
61
src/testcode/speed_test.py
Normal file
61
src/testcode/speed_test.py
Normal file
@@ -0,0 +1,61 @@
|
||||
from tpre import *
|
||||
import time
|
||||
|
||||
N = 20
|
||||
T = N // 2
|
||||
print(f"当前门限值: N = {N}, T = {T}")
|
||||
|
||||
total_time = 0
|
||||
|
||||
# 1
|
||||
start_time = time.time()
|
||||
pk_a, sk_a = GenerateKeyPair()
|
||||
m = b"hello world"
|
||||
end_time = time.time()
|
||||
elapsed_time = end_time - start_time
|
||||
total_time += elapsed_time
|
||||
print(f"密钥生成运行时间:{elapsed_time}秒")
|
||||
|
||||
# 2
|
||||
start_time = time.time()
|
||||
capsule_ct = Encrypt(pk_a, m)
|
||||
end_time = time.time()
|
||||
elapsed_time = end_time - start_time
|
||||
total_time += elapsed_time
|
||||
print(f"加密算法运行时间:{elapsed_time}秒")
|
||||
|
||||
# 3
|
||||
pk_b, sk_b = GenerateKeyPair()
|
||||
|
||||
# 5
|
||||
start_time = time.time()
|
||||
id_tuple = tuple(range(N))
|
||||
rekeys = GenerateReKey(sk_a, pk_b, N, T, id_tuple)
|
||||
end_time = time.time()
|
||||
elapsed_time = end_time - start_time
|
||||
total_time += elapsed_time
|
||||
print(f"重加密密钥生成算法运行时间:{elapsed_time}秒")
|
||||
|
||||
# 7
|
||||
start_time = time.time()
|
||||
cfrag_cts = []
|
||||
|
||||
for rekey in rekeys:
|
||||
cfrag_ct = ReEncrypt(rekey, capsule_ct)
|
||||
cfrag_cts.append(cfrag_ct)
|
||||
end_time = time.time()
|
||||
elapsed_time = (end_time - start_time) / len(rekeys)
|
||||
total_time += elapsed_time
|
||||
print(f"重加密算法运行时间:{elapsed_time}秒")
|
||||
|
||||
# 9
|
||||
start_time = time.time()
|
||||
cfrags = mergecfrag(cfrag_cts)
|
||||
m = DecryptFrags(sk_b, pk_b, pk_a, cfrags)
|
||||
end_time = time.time()
|
||||
elapsed_time = end_time - start_time
|
||||
total_time += elapsed_time
|
||||
print(f"解密算法运行时间:{elapsed_time}秒")
|
||||
print("成功解密:", m)
|
||||
print(f"算法总运行时间:{total_time}秒")
|
||||
print()
|
||||
Reference in New Issue
Block a user