From e68bf52b9160478866a08aa9a7b5de52d832ac6d Mon Sep 17 00:00:00 2001 From: sangge <2251250136@qq.com> Date: Fri, 17 Nov 2023 08:13:13 +0800 Subject: [PATCH 01/10] refactor: rename demo to speed_test --- src/demo.py | 71 ----------------------------------------------- src/speed_test.py | 61 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 71 deletions(-) delete mode 100644 src/demo.py create mode 100644 src/speed_test.py diff --git a/src/demo.py b/src/demo.py deleted file mode 100644 index a5d00ed..0000000 --- a/src/demo.py +++ /dev/null @@ -1,71 +0,0 @@ -from tpre import * -import time - -# for T in range(2, 20, 2): -N = 10 -T = N // 2 -# print(f"当前门限值: N = {N}, T = {T}") - -start_total_time = time.time() -# 1 -start_time = time.time() -pk_a, sk_a = GenerateKeyPair() -# print("pk_a: ", pk_a) -# print("sk_a: ", sk_a) -end_time = time.time() -elapsed_time = end_time - start_time -# print(f"密钥生成运行时间:{elapsed_time}秒") - -# 2 -start_time = time.time() -m = b"hello world" -capsule_ct = Encrypt(pk_a, m) -capsule = capsule_ct[0] -print("check capsule: ", Checkcapsule(capsule)) -capsule = (capsule[0], capsule[1], -1) -print("check capsule: ", Checkcapsule(capsule)) -# print("capsule_ct: ", capsule_ct) -end_time = time.time() -elapsed_time = end_time - start_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) -# print("rekeys: ", rekeys) -end_time = time.time() -elapsed_time = end_time - start_time -# print(f"重加密密钥生成算法运行时间:{elapsed_time}秒") - -# 7 -start_time = time.time() -cfrag_cts = [] - -for rekey in rekeys: - cfrag_ct = ReEncrypt(rekey, capsule_ct) - # cfrag_ct = ReEncrypt(rekeys[0], capsule_ct) - cfrag_cts.append(cfrag_ct) -# print("cfrag_cts: ", cfrag_cts) -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) -# print("cfrags: ", cfrags) -# m = DecryptFrags(sk_b, pk_b, pk_a, cfrags) -m = DecryptFrags(sk_a, pk_b, pk_a, cfrags) -# print("m = ", m) -end_time = time.time() -elapsed_time = 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}秒") -# print("成功解密:", m) -# print(f"算法总运行时间:{total_time}秒") -# print() diff --git a/src/speed_test.py b/src/speed_test.py new file mode 100644 index 0000000..3762a93 --- /dev/null +++ b/src/speed_test.py @@ -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() From 6a345d7466bdb5213d599d94d8258d31adfabacb Mon Sep 17 00:00:00 2001 From: sangge <2251250136@qq.com> Date: Fri, 17 Nov 2023 08:13:49 +0800 Subject: [PATCH 02/10] docs: add x64 speed test log --- src/perf.log | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/perf.log diff --git a/src/perf.log b/src/perf.log new file mode 100644 index 0000000..58e72eb --- /dev/null +++ b/src/perf.log @@ -0,0 +1,49 @@ +default +当前门限值: N = 20, T = 10 +密钥生成运行时间:0.0026531219482421875秒 +加密算法运行时间:0.005305290222167969秒 +重加密密钥生成算法运行时间:0.0764169692993164秒 +重加密算法运行时间:0.007088994979858399秒 +解密算法运行时间:0.08717870712280273秒 +成功解密: b'hello world' +算法总运行时间:0.1786430835723877秒 + +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秒 \ No newline at end of file From ca46f0d9d8369d5dbc1291ed0f507cd4486a8326 Mon Sep 17 00:00:00 2001 From: sangge <2251250136@qq.com> Date: Fri, 17 Nov 2023 08:26:12 +0800 Subject: [PATCH 03/10] feat: Added platform distinction --- basedockerfile | 6 +++++- lib/{ => linux/amd64}/libgmssl.so | Bin lib/{ => linux/amd64}/libgmssl.so.3 | Bin lib/{ => linux/amd64}/libgmssl.so.3.0 | Bin lib/{ => linux/amd64}/libsdf_dummy.so | Bin lib/{ => linux/amd64}/libsdf_dummy.so.3 | Bin lib/{ => linux/amd64}/libsdf_dummy.so.3.0 | Bin lib/{ => linux/amd64}/libskf_dummy.so | Bin lib/{ => linux/amd64}/libskf_dummy.so.3 | Bin lib/{ => linux/amd64}/libskf_dummy.so.3.0 | Bin 10 files changed, 5 insertions(+), 1 deletion(-) rename lib/{ => linux/amd64}/libgmssl.so (100%) rename lib/{ => linux/amd64}/libgmssl.so.3 (100%) rename lib/{ => linux/amd64}/libgmssl.so.3.0 (100%) rename lib/{ => linux/amd64}/libsdf_dummy.so (100%) rename lib/{ => linux/amd64}/libsdf_dummy.so.3 (100%) rename lib/{ => linux/amd64}/libsdf_dummy.so.3.0 (100%) rename lib/{ => linux/amd64}/libskf_dummy.so (100%) rename lib/{ => linux/amd64}/libskf_dummy.so.3 (100%) rename lib/{ => linux/amd64}/libskf_dummy.so.3.0 (100%) diff --git a/basedockerfile b/basedockerfile index 960c6ca..2d607a7 100644 --- a/basedockerfile +++ b/basedockerfile @@ -2,7 +2,11 @@ FROM python:3.11 COPY requirements.txt /app/ -COPY lib/* /lib/ +# 设置目标平台参数 +ARG TARGETPLATFORM + +# 根据目标平台复制相应架构的库文件 +COPY lib/${TARGETPLATFORM}/* /lib/ WORKDIR /app diff --git a/lib/libgmssl.so b/lib/linux/amd64/libgmssl.so similarity index 100% rename from lib/libgmssl.so rename to lib/linux/amd64/libgmssl.so diff --git a/lib/libgmssl.so.3 b/lib/linux/amd64/libgmssl.so.3 similarity index 100% rename from lib/libgmssl.so.3 rename to lib/linux/amd64/libgmssl.so.3 diff --git a/lib/libgmssl.so.3.0 b/lib/linux/amd64/libgmssl.so.3.0 similarity index 100% rename from lib/libgmssl.so.3.0 rename to lib/linux/amd64/libgmssl.so.3.0 diff --git a/lib/libsdf_dummy.so b/lib/linux/amd64/libsdf_dummy.so similarity index 100% rename from lib/libsdf_dummy.so rename to lib/linux/amd64/libsdf_dummy.so diff --git a/lib/libsdf_dummy.so.3 b/lib/linux/amd64/libsdf_dummy.so.3 similarity index 100% rename from lib/libsdf_dummy.so.3 rename to lib/linux/amd64/libsdf_dummy.so.3 diff --git a/lib/libsdf_dummy.so.3.0 b/lib/linux/amd64/libsdf_dummy.so.3.0 similarity index 100% rename from lib/libsdf_dummy.so.3.0 rename to lib/linux/amd64/libsdf_dummy.so.3.0 diff --git a/lib/libskf_dummy.so b/lib/linux/amd64/libskf_dummy.so similarity index 100% rename from lib/libskf_dummy.so rename to lib/linux/amd64/libskf_dummy.so diff --git a/lib/libskf_dummy.so.3 b/lib/linux/amd64/libskf_dummy.so.3 similarity index 100% rename from lib/libskf_dummy.so.3 rename to lib/linux/amd64/libskf_dummy.so.3 diff --git a/lib/libskf_dummy.so.3.0 b/lib/linux/amd64/libskf_dummy.so.3.0 similarity index 100% rename from lib/libskf_dummy.so.3.0 rename to lib/linux/amd64/libskf_dummy.so.3.0 From 4020213ff4ce135e8b940ba03741996259274b68 Mon Sep 17 00:00:00 2001 From: sangge <2251250136@qq.com> Date: Fri, 17 Nov 2023 09:24:20 +0800 Subject: [PATCH 04/10] feat: get local ip from socket --- src/client.py | 13 +++++++++++-- src/node.py | 12 +++++++++++- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/client.py b/src/client.py index 85a5634..2f0e8c9 100644 --- a/src/client.py +++ b/src/client.py @@ -370,8 +370,17 @@ async def receive_request(i_m: IP_Message): def get_own_ip() -> str: - ip = os.environ.get("HOST_IP", "IP not set") - return ip + ip = os.environ.get("HOST_IP") + if not ip: # 如果环境变量中没有IP + try: + # 从网卡获取IP + s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + s.connect(("8.8.8.8", 80)) # 通过连接Google DNS获取IP + ip = s.getsockname()[0] + s.close() + except: + raise ValueError("Unable to get IP") + return str(ip) # get node list from central server diff --git a/src/node.py b/src/node.py index 7d4e061..ce1ca21 100644 --- a/src/node.py +++ b/src/node.py @@ -42,7 +42,17 @@ def send_ip(): # 用环境变量获取本机ip def get_local_ip(): global ip - ip = os.environ.get("HOST_IP", "IP not set") + ip = os.environ.get("HOST_IP") + if not ip: # 如果环境变量中没有IP + try: + # 从网卡获取IP + s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + s.connect(("8.8.8.8", 80)) # 通过连接Google DNS获取IP + ip = str(s.getsockname()[0]) + s.close() + except: + raise ValueError("Unable to get IP") + def init(): From 547d661038e139777e58dbdc2ab3763f1d48e057 Mon Sep 17 00:00:00 2001 From: sangge <2251250136@qq.com> Date: Fri, 17 Nov 2023 09:24:34 +0800 Subject: [PATCH 05/10] feat: change ci --- .gitea/workflows/ci.yaml | 41 +++++++++------------------------------- 1 file changed, 9 insertions(+), 32 deletions(-) diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index bcd41a8..99c706e 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -1,4 +1,4 @@ -name: Deploy App +name: Test CI on: push: @@ -6,41 +6,18 @@ on: - main jobs: - deploy: - name: Deploy to Web Server + test: + name: test speed runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v3 - - - name: copy file via ssh password - uses: cross-the-world/scp-pipeline@master + - name: Set up Docker container + uses: addnab/docker-run-action@v3 with: - host: "110.41.155.96" - user: ${{ secrets.USERNAME }} - pass: ${{ secrets.PASSWORD }} - local: "src/*" - remote: /root/mimajingsai/src/ - - - name: copy file via ssh password - uses: cross-the-world/scp-pipeline@master - with: - host: "110.41.130.197" - user: ${{ secrets.USERNAME }} - pass: ${{ secrets.PASSWORD }} - local: "src/*" - remote: /root/mimajingsai/src/ - - - name: copy file via ssh password - uses: cross-the-world/scp-pipeline@master - with: - host: "110.41.21.35" - user: ${{ secrets.USERNAME }} - pass: ${{ secrets.PASSWORD }} - local: "src/*" - remote: /root/mimajingsai/src/ - - - + image: git.mamahaha.work/sangge/tpre:base + options: -v .:/app # 将当前工作目录挂载到容器中 + run: | + python speed_test.py # 执行Python脚本 From b2de585483ea5e435a48eea4bf253a9f39de8373 Mon Sep 17 00:00:00 2001 From: sangge <2251250136@qq.com> Date: Fri, 17 Nov 2023 09:32:56 +0800 Subject: [PATCH 06/10] feat: update ci --- .gitea/workflows/ci.yaml | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index 99c706e..6095118 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -14,10 +14,6 @@ jobs: - name: Checkout repository uses: actions/checkout@v3 - - name: Set up Docker container - uses: addnab/docker-run-action@v3 - with: - image: git.mamahaha.work/sangge/tpre:base - options: -v .:/app # 将当前工作目录挂载到容器中 - run: | - python speed_test.py # 执行Python脚本 + - name: Run script in Docker container + run: | + docker run -v $PWD:/app git.mamahaha.work/sangge/tpre:base python speed_test.py From 44f56257cf0cbfe18c9d207b30e10712fc2edd31 Mon Sep 17 00:00:00 2001 From: sangge <2251250136@qq.com> Date: Fri, 17 Nov 2023 09:35:34 +0800 Subject: [PATCH 07/10] feat: update ci --- .gitea/workflows/ci.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index 6095118..2154bbd 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -9,6 +9,9 @@ jobs: test: name: test speed runs-on: ubuntu-latest + + container: + image: catthehacker/ubuntu:act-latest steps: - name: Checkout repository From f7f7cf0b9897aea7f7d9fe53d3cbf0a30f6128d1 Mon Sep 17 00:00:00 2001 From: sangge <2251250136@qq.com> Date: Fri, 17 Nov 2023 09:36:48 +0800 Subject: [PATCH 08/10] test: test ci --- .gitea/workflows/ci.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index 2154bbd..b49d3ff 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -9,7 +9,7 @@ jobs: test: name: test speed runs-on: ubuntu-latest - + container: image: catthehacker/ubuntu:act-latest @@ -19,4 +19,5 @@ jobs: - name: Run script in Docker container run: | + docker run -v $PWD:/app git.mamahaha.work/sangge/tpre:base ls docker run -v $PWD:/app git.mamahaha.work/sangge/tpre:base python speed_test.py From e3dd76ed48a9d224e0c62dee61991a01b144262e Mon Sep 17 00:00:00 2001 From: sangge <2251250136@qq.com> Date: Fri, 17 Nov 2023 09:38:39 +0800 Subject: [PATCH 09/10] feat: update ci --- .gitea/workflows/ci.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index b49d3ff..ee93258 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -19,5 +19,5 @@ jobs: - name: Run script in Docker container run: | - docker run -v $PWD:/app git.mamahaha.work/sangge/tpre:base ls - docker run -v $PWD:/app git.mamahaha.work/sangge/tpre:base python speed_test.py + echo $PWD + docker run -v $PWD:/app git.mamahaha.work/sangge/tpre:base python src/speed_test.py From e0d15e7b886454c75998d51a8ee103ba2a5980dc Mon Sep 17 00:00:00 2001 From: sangge <2251250136@qq.com> Date: Fri, 17 Nov 2023 09:39:40 +0800 Subject: [PATCH 10/10] feat: update ci --- .gitea/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index ee93258..3166619 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -19,5 +19,5 @@ jobs: - name: Run script in Docker container run: | - echo $PWD + ls $PWD docker run -v $PWD:/app git.mamahaha.work/sangge/tpre:base python src/speed_test.py