From 5edb151b05d0e109f892f4c53674d8ac5601ea35 Mon Sep 17 00:00:00 2001 From: dqy <1016751306@qq.com> Date: Thu, 19 Oct 2023 11:11:01 +0800 Subject: [PATCH 1/5] =?UTF-8?q?refactor:=20=E4=BF=AE=E6=94=B9demo.py:=20?= =?UTF-8?q?=E5=88=A0=E9=99=A4GenerateKeyPair=E7=9A=84=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/demo.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/demo.py b/src/demo.py index 57567d2..7fc6da4 100644 --- a/src/demo.py +++ b/src/demo.py @@ -1,14 +1,14 @@ from tpre import * # 1 -pk_a, sk_a = GenerateKeyPair(1, ()) +pk_a, sk_a = GenerateKeyPair() m = b"hello world" # 2 capsule_ct = Encrypt(pk_a, m) # 3 -pk_b, sk_b = GenerateKeyPair(1, ()) +pk_b, sk_b = GenerateKeyPair() N = 5 T = 2 From 0112821ea659164f1f270e4f27844893e6e5dc9f Mon Sep 17 00:00:00 2001 From: sangge <2251250136@qq.com> Date: Thu, 19 Oct 2023 11:55:25 +0800 Subject: [PATCH 2/5] test: test demo --- src/demo.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/demo.py b/src/demo.py index 57567d2..f68dc8a 100644 --- a/src/demo.py +++ b/src/demo.py @@ -1,17 +1,17 @@ from tpre import * # 1 -pk_a, sk_a = GenerateKeyPair(1, ()) +pk_a, sk_a = GenerateKeyPair() m = b"hello world" # 2 capsule_ct = Encrypt(pk_a, m) # 3 -pk_b, sk_b = GenerateKeyPair(1, ()) +pk_b, sk_b = GenerateKeyPair() -N = 5 -T = 2 +N = 70 +T = 49 # 5 rekeys = GenerateReKey(sk_a, pk_b, N, T) From 22909c297684b6925f6ac50ee3c7327aeac751d5 Mon Sep 17 00:00:00 2001 From: sangge <2251250136@qq.com> Date: Thu, 19 Oct 2023 14:33:14 +0800 Subject: [PATCH 3/5] style: clean code --- src/tpre.py | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/tpre.py b/src/tpre.py index 989cae7..a4c2f20 100644 --- a/src/tpre.py +++ b/src/tpre.py @@ -29,8 +29,7 @@ sm2p256v1 = CurveFp( Gy=0xBC3736A2F4F6779C59BDCEE36B692153D0A9877CC62A474002DF32E52139F0A0, ) -# 椭圆曲线 -G = sm2p256v1 +point = Tuple[int, int] # 生成元 g = (sm2p256v1.Gx, sm2p256v1.Gy) @@ -200,7 +199,6 @@ def GenerateKeyPair() -> Tuple[point, int]: return public_key, secret_key - def Encrypt(pk: point, m: bytes) -> Tuple[capsule, bytes]: enca = Encapsulate(pk) K = enca[0].to_bytes(16) @@ -244,7 +242,7 @@ def hash5(id: int, D: int) -> int: sm3.update(id.to_bytes(32)) sm3.update(D.to_bytes(32)) hash = sm3.digest() - hash = int.from_bytes(hash, "big") % G.N + hash = int.from_bytes(hash, "big") % sm2p256v1.N return hash @@ -254,19 +252,19 @@ def hash6(triple_G: Tuple[point, point, point]) -> int: for j in i: sm3.update(j.to_bytes(32)) hash = sm3.digest() - hash = int.from_bytes(hash, "big") % G.N + hash = int.from_bytes(hash, "big") % sm2p256v1.N return hash def f(x: int, f_modulus: list, T: int) -> int: - ''' + """ 功能: 通过多项式插值来实现信息的分散和重构 例如: 随机生成一个多项式f(x)=4x+5,质数P=11,其中f(0)=5,将多项式的系数分别分配给两个人,例如第一个人得到(1, 9),第二个人得到(2, 2).如果两个人都收集到了这两个点,那么可以使用拉格朗日插值法恢复原始的多项式,进而得到秘密信息"5" param: x, f_modulus(多项式系数列表), T(门限) return: res - ''' + """ res = 0 for i in range(T): res += f_modulus[i] * pow(x, i) @@ -284,7 +282,7 @@ def GenerateReKey(sk_A: int, pk_B: point, N: int, T: int) -> list: # 计算临时密钥对(x_A, X_A) x_A = random.randint(0, sm2p256v1.N - 1) X_A = multiply(g, x_A) - + pk_A = multiply(g, sk_A) # d是Bob的密钥对与临时密钥对的非交互式Diffie-Hellman密钥交换的结果 @@ -293,7 +291,7 @@ def GenerateReKey(sk_A: int, pk_B: point, N: int, T: int) -> list: # 计算多项式系数, 确定代理节点的ID(一个点) f_modulus = [] # 计算f0 - #f0 = (sk_A * inv(d, G.P)) % G.P + # f0 = (sk_A * inv(d, G.P)) % G.P f0 = (sk_A * inv(d, sm2p256v1.N)) % sm2p256v1.N f_modulus.append(f0) # 计算fi(1 <= i <= T - 1) From edcc0c60d8a9fef2afa2d61155e886c5752f7977 Mon Sep 17 00:00:00 2001 From: sangge <2251250136@qq.com> Date: Thu, 19 Oct 2023 14:54:03 +0800 Subject: [PATCH 4/5] docs: init docs --- src/README_app.md | 0 src/README_app_en.md | 0 src/README_tpre.md | 0 src/README_tpre_en.md | 0 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/README_app.md create mode 100644 src/README_app_en.md create mode 100644 src/README_tpre.md create mode 100644 src/README_tpre_en.md diff --git a/src/README_app.md b/src/README_app.md new file mode 100644 index 0000000..e69de29 diff --git a/src/README_app_en.md b/src/README_app_en.md new file mode 100644 index 0000000..e69de29 diff --git a/src/README_tpre.md b/src/README_tpre.md new file mode 100644 index 0000000..e69de29 diff --git a/src/README_tpre_en.md b/src/README_tpre_en.md new file mode 100644 index 0000000..e69de29 From a17adc8f4b292a2f4630a289cf392ab176129c9d Mon Sep 17 00:00:00 2001 From: sangge <2251250136@qq.com> Date: Thu, 19 Oct 2023 14:56:01 +0800 Subject: [PATCH 5/5] feat: init 3 types of machine --- src/client.py | 0 src/node.py | 0 src/server.py | 0 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/client.py create mode 100644 src/node.py create mode 100644 src/server.py diff --git a/src/client.py b/src/client.py new file mode 100644 index 0000000..e69de29 diff --git a/src/node.py b/src/node.py new file mode 100644 index 0000000..e69de29 diff --git a/src/server.py b/src/server.py new file mode 100644 index 0000000..e69de29