CN111614456B - 一种针对sm4算法的多方协同加密方法 - Google Patents

一种针对sm4算法的多方协同加密方法 Download PDF

Info

Publication number
CN111614456B
CN111614456B CN202010373340.4A CN202010373340A CN111614456B CN 111614456 B CN111614456 B CN 111614456B CN 202010373340 A CN202010373340 A CN 202010373340A CN 111614456 B CN111614456 B CN 111614456B
Authority
CN
China
Prior art keywords
participants
tau
encryption
key
cooperative
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010373340.4A
Other languages
English (en)
Other versions
CN111614456A (zh
Inventor
何德彪
杨伊
张韵茹
罗敏
李莉
黄欣沂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan University WHU
Original Assignee
Wuhan University WHU
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan University WHU filed Critical Wuhan University WHU
Priority to CN202010373340.4A priority Critical patent/CN111614456B/zh
Publication of CN111614456A publication Critical patent/CN111614456A/zh
Application granted granted Critical
Publication of CN111614456B publication Critical patent/CN111614456B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明属于信息安全技术领域,尤其涉及一种针对SM4算法的多方协同加/解密方法与介质。参与方为τ(τ≥2)个可信实体,表示为P1,...,Pτ。该方法主要包括密钥与消息分配、S盒协同计算,协同生成轮密钥和协同加、解密。本发明产生的有益效果如下:1.本发明实现了SM4算法的协同加/解密运算,数据加密由多方共同参与,有效防止权利集中,使得该方法与系统更适用于分布式场景下的应用。2.本发明使用了基于安全两方计算的乘加转换器来保证交互时双方的数据隐私,进一步增强了系统的安全性。

Description

一种针对SM4算法的多方协同加密方法
技术领域
本发明属于信息安全技术领域,尤其涉及一种针对SM4算法的多方协同加/解密方法及介质。
背景技术
SM4算法是一种32轮迭代非平衡Feistel结构的分组加密算法,其设计简洁、资源利用率高、模块实现容易,具有安全高效的特点,主要应用于无线局域网的实时通信。
为了防止权力过于集中,越来越多的应用开始在分布式背景下实现。安全多方计算能有效解决分布式场景中一组互不信任的参与方之间保护隐私的协同计算问题,通过分割秘密或协同操作等方法,达到风险分散和容忍入侵的目的,提高相关方案在分布式场景中的适用性,极大地提高方案的安全性和稳定性。
发明内容
本发明设计了一种针对SM4算法的多方协同加/解密方法与系统,参与方各自持有一部分密钥,并通过安全多方计算协同生成轮密钥、完成数据的加/解密。该方法能有效解决分布式网络通信中数据加密的高效性、安全性与稳定性等问题。
本发明的上述技术问题主要是通过下述技术方案得以解决的:
一种针对SM4算法的多方协同加/解密方法,其特征在于,包括:
步骤1、密钥管理中心生成相关密钥与并进行消息分配,具体是:
密钥管理中心产生加/解密密钥key,再将密钥分成τ份并分发给τ个参与方,使得等式
Figure BDA0002478969700000011
成立;密钥管理中心将每一轮使用的系统向量Cj分成τ份并分发给τ个参与方,使得等式
Figure BDA0002478969700000012
成立;用户将明文M分成τ份并分发给τ个参与方,使得等式
Figure BDA0002478969700000021
Figure BDA0002478969700000022
成立;
步骤2、参与方进行S盒协同计算,具体是每个参与方与其他τ-1个参与方两两交互联合计算各自S盒的输出,其中i∈{0,…,31},表示执行的轮数;
步骤3、参与方协同生成轮密钥,具体是:τ个参与方协同计算出各自的轮密钥;
步骤4、参与方协同进行加/解密。
在上述的一种针对SM4算法的多方协同加/解密方法,定义Pα和Pβ分别是第α个协同加/解密参与方和第β个协同加/解密参与方,其中α,β∈{1,…,τ},步骤2具体包括:
步骤2.1、Pα的S盒输入为
Figure BDA0002478969700000023
其中j∈{0,…,3},表示双方均有4个S盒,可以并行执行运算,也可以串行执行运算;计算
Figure BDA0002478969700000024
并随机选择
Figure BDA0002478969700000025
其中A∈GL(8,2),(Ci)j∈GF(28)且为系统向量,其余的参与方也执行与Pα相同的操作;
步骤2.2、Pα和Pβ执行
Figure BDA0002478969700000026
Pα输入
Figure BDA0002478969700000027
Pβ输入
Figure BDA0002478969700000028
Figure BDA0002478969700000029
输出
Figure BDA00024789697000000210
给Pα,输出
Figure BDA00024789697000000211
给Pβ,满足
Figure BDA00024789697000000212
τ个参与方则调用
Figure BDA00024789697000000213
Figure BDA00024789697000000214
步骤2.3、在完成所有乘加转换器调用之后,Pα计算
Figure BDA00024789697000000215
Figure BDA00024789697000000216
并将
Figure BDA00024789697000000217
发送给剩下的τ-1个参与方;其余的参与方也执行与Pα相同的操作,每个参与方都能算出
Figure BDA00024789697000000218
Figure BDA00024789697000000219
步骤2.4、Pα计算
Figure BDA00024789697000000220
再计算
Figure BDA00024789697000000221
其余的参与方也执行与Pα相同的操作;
步骤2.5、Pα的S盒输出为
Figure BDA00024789697000000222
其余的参与方也输出各自的结果。
在上述的一种针对SM4算法的多方协同加/解密方法,步骤3具体包括
步骤3.1、Pα拥有部分加密密钥keyα=(key0 α,key1 α,key2 α,key3 α),计算
Figure BDA00024789697000000223
步骤3.2、从i=0到i=31,循环执行以下操作:
步骤3.21、Pα计算
Figure BDA0002478969700000031
并将其作为S盒的输入;
步骤3.22、Pα与其他τ-1个参与方进行S盒协同计算,Pα得到
Figure BDA0002478969700000032
步骤3.23、Pα计算
Figure BDA0002478969700000033
在上述的一种针对SM4算法的多方协同加/解密方法,步骤4中,
加密具体包括:
步骤4.01、Pα拥有部分明文Mα=(X0 α,X1 α,X2 α,X3 α),轮密钥rki α
步骤4.02、从i=0到i=31,循环执行以下操作:
步骤4.021、Pα计算
Figure BDA0002478969700000034
并将其作为S盒的输入;
步骤4.022、Pα与其他τ-1个参与方进行S盒协同计算,Pα得到
Figure BDA0002478969700000035
步骤4.023、Pα计算
Figure BDA0002478969700000036
步骤4.03、Pα得到部分密文
Figure BDA0002478969700000037
步骤4.04、τ个参与方协同加密,最终得到密文
Figure BDA0002478969700000038
解密具体包括:
步骤4.11、Pα拥有部分明文Mα=(X0 α,X1 α,X2 α,X3 α),轮密钥rki α
步骤4.12、从i=0到i=31,循环执行以下操作:
步骤4.121、Pα计算
Figure BDA0002478969700000039
并将其作为S盒的输入;
步骤4.122、Pα与其他τ-1个参与方进行S盒协同计算,Pα得到
Figure BDA00024789697000000310
步骤4.123、Pα计算
Figure BDA00024789697000000311
步骤4.13、Pα得到部分密文
Figure BDA00024789697000000312
步骤4.14、τ个参与方协同加密,最终得到密文
Figure BDA00024789697000000313
一种计算机存储介质,其特征在于,存储有计算机程序,运行计算机程序包括以下步骤:
步骤1、密钥管理中心生成相关密钥与并进行消息分配,具体是:
密钥管理中心产生加/解密密钥key,再将密钥分成τ份并分发给τ个参与方,使得等式
Figure BDA00024789697000000314
成立;密钥管理中心将每一轮使用的系统向量Cj分成τ份并分发给τ个参与方,使得等式
Figure BDA00024789697000000315
成立;用户将明文M分成τ份并分发给τ个参与方,使得等式
Figure BDA00024789697000000316
Figure BDA00024789697000000317
成立;
步骤2、参与方进行S盒协同计算,具体是每个参与方与其他τ-1个参与方两两交互联合计算各自S盒的输出,其中i∈{0,…,31},表示执行的轮数;
步骤3、参与方协同生成轮密钥,具体是:τ个参与方协同计算出各自的轮密钥;
步骤4、参与方协同进行加/解密。
在上述的一种计算机存储介质,定义Pα和Pβ分别是第α个协同加/解密参与方和第β个协同加/解密参与方,其中α,β∈{1,…,τ},步骤2具体包括:
步骤2.1、Pα的S盒输入为
Figure BDA0002478969700000041
其中j∈{0,…,3},表示双方均有4个S盒,可以并行执行运算,也可以串行执行运算;计算
Figure BDA0002478969700000042
并随机选择
Figure BDA0002478969700000043
其中A∈GL(8,2),(Ci)j∈GF(28)且为系统向量,其余的参与方也执行与Pα相同的操作;
步骤2.2、Pα和Pβ执行
Figure BDA0002478969700000044
Pα输入
Figure BDA00024789697000000422
Pβ输入
Figure BDA0002478969700000045
Figure BDA0002478969700000046
输出(di αβ)j给Pβ,输出(di βα)j给Pβ,满足
Figure BDA0002478969700000047
τ个参与方则调用
Figure BDA0002478969700000048
Figure BDA0002478969700000049
步骤2.3、在完成所有乘加转换器调用之后,Pα计算
Figure BDA00024789697000000410
Figure BDA00024789697000000411
并将
Figure BDA00024789697000000412
发送给剩下的τ-1个参与方;其余的参与方也执行与Pα相同的操作,每个参与方都能算出
Figure BDA00024789697000000413
Figure BDA00024789697000000414
步骤2.4、Pα计算
Figure BDA00024789697000000415
再计算
Figure BDA00024789697000000416
其余的参与方也执行与Pα相同的操作;
步骤2.5、Pα的S盒输出为
Figure BDA00024789697000000417
其余的参与方也输出各自的结果。
在上述的一种计算机存储介质,步骤3具体包括
步骤3.1、Pα拥有部分加密密钥keyα=(key0 α,key1 α,key2 α,key3 α),计算
Figure BDA00024789697000000418
步骤3.2、从i=0到i=31,循环执行以下操作:
步骤3.21、Pα计算
Figure BDA00024789697000000419
并将其作为S盒的输入;
步骤3.22、Pα与其他τ-1个参与方进行S盒协同计算,Pα得到
Figure BDA00024789697000000420
步骤3.23、Pα计算
Figure BDA00024789697000000421
在上述的一种计算机存储介质,步骤4中,
加密具体包括:
步骤4.01、Pα拥有部分明文Mα=(X0 α,X1 α,X2 α,X3 α),轮密钥rki α
步骤4.02、从i=0到i=31,循环执行以下操作:
步骤4.021、Pα计算
Figure BDA0002478969700000051
并将其作为S盒的输入;
步骤4.022、Pα与其他τ-1个参与方进行S盒协同计算,Pα得到
Figure BDA0002478969700000052
步骤4.023、Pα计算
Figure BDA0002478969700000053
步骤4.03、Pα得到部分密文
Figure BDA0002478969700000054
步骤4.04、τ个参与方协同加密,最终得到密文
Figure BDA0002478969700000055
解密具体包括:
步骤4.11、Pα拥有部分明文Mα=(X0 α,X1 α,X2 α,X3 α),轮密钥rki α
步骤4.12、从i=0到i=31,循环执行以下操作:
步骤4.121、Pα计算
Figure BDA0002478969700000056
并将其作为S盒的输入;
步骤4.122、Pα与其他τ-1个参与方进行S盒协同计算,Pα得到
Figure BDA0002478969700000057
步骤4.123、Pα计算
Figure BDA0002478969700000058
步骤4.13、Pα得到部分密文
Figure BDA0002478969700000059
步骤4.14、τ个参与方协同加密,最终得到密文
Figure BDA00024789697000000510
因此,本发明具有如下优点:1.本发明实现了SM4算法的协同加/解密运算,数据加密由多方共同参与,有效防止权利集中,使得该方法与系统更适用于分布式场景下的应用。2.本发明使用了基于安全两方计算的乘加转换器来保证交互时双方的数据隐私,进一步增强了系统的安全性。
附图说明
图1是本发明实施例的S盒协同计算交互过程示意图。
图2是本发明实施例的数据加密过程示意图。
具体实施方式
下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
实施例:
本发明利用SM4算法中的S盒协同计算达到多方协同加/解密的目的,通过以下技术方案实现:参与方为τ个可信实体,表示为P1,...,Pτ。每个参与方与其他τ-1个参与方两两交互联合计算各自S盒的输出,其中i∈{0,...,31},表示执行的轮数。以Pα和Pβ为例,其中α,β∈{1,...,τ}。Pα的S盒输入为
Figure BDA00024789697000000615
其中j∈{0,...,3},表示双方均有4个S盒并行执行运算。Pα计算
Figure BDA0002478969700000061
随机选择
Figure BDA0002478969700000062
其他τ-1个参与方也执行与Pα相同的操作。
Figure BDA0002478969700000063
为基于安全两方计算的乘加转换器,每两个参与方之间均需调用一次该乘加转换器,τ个参与方则调用
Figure BDA0002478969700000064
次。以Pα和Pβ为例,Pα输入
Figure BDA0002478969700000065
Pβ输入
Figure BDA0002478969700000066
Figure BDA0002478969700000067
输出(di αβ)j给Pα,输出(di βα)j给Pβ。其中
Figure BDA0002478969700000068
在完成所需的所有乘加转换器调用之后,Pα计算
Figure BDA0002478969700000069
并将
Figure BDA00024789697000000610
发送给剩下的τ-1个参与方。其余的参与方也执行与Pα相同的操作,这样每个参与方最后都能算出
Figure BDA00024789697000000611
Pα计算
Figure BDA00024789697000000612
再计算
Figure BDA00024789697000000613
其余的参与方也执行与Pα相同的操作。Pα的S盒输出为
Figure BDA00024789697000000614
其余的参与方也输出各自的结果。最终各参与方利用各自S 盒的输出值,协同生成轮密钥以及密文。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

Claims (1)

1.一种针对SM4算法的多方协同加密方法,其特征在于,包括:
步骤1、密钥管理中心生成相关密钥与并进行消息分配,具体是:
密钥管理中心产生加密密钥key,再将密钥分成τ份并分发给τ个协同加密参与方,使得等式
Figure FDA0003509314920000011
成立;密钥管理中心将每一轮使用的系统向量Cj分成τ份并分发给τ个协同加密参与方,使得等式
Figure FDA0003509314920000012
Figure FDA0003509314920000013
成立;用户将明文M分成τ份并分发给τ个协同加密参与方,使得等式
Figure FDA0003509314920000014
成立,其中i∈{0,…,31},表示执行的轮数;
步骤2、协同加密参与方进行S盒协同计算,具体是每个协同加密参与方与其他τ-1个参与方两两交互联合计算各自S盒的输出;
步骤3、协同加密参与方协同生成轮密钥,具体是:τ个协同加密参与方协同计算出各自的轮密钥;
步骤4、协同加密参与方协同进行加密;
定义Pα和Pβ分别是第α个协同加密参与方和第β个协同加密参与方,其中α,β∈{1,…,τ},步骤2具体包括:
步骤2.1、Pα的S盒输入为
Figure FDA0003509314920000015
其中j∈{0,…,3},表示第α个协同加密参与方有4个S盒,并行执行运算,或者串行执行运算;计算
Figure FDA0003509314920000016
并随机选择
Figure FDA0003509314920000017
其中A∈GL(8,2),(Ci)j∈GF(28)且为系统向量,其余的参与方也执行与Pα相同的操作;
步骤2.2、Pα和Pβ执行
Figure FDA0003509314920000018
Pα输入
Figure FDA0003509314920000019
Pβ输入
Figure FDA00035093149200000110
Figure FDA00035093149200000111
输出(di αβ)j给Pα,输出(di βα)j给Pβ,满足
Figure FDA00035093149200000112
τ个参与方则调用
Figure FDA00035093149200000113
Figure FDA00035093149200000114
步骤2.3、在完成步骤2.2之后,Pα计算
Figure FDA00035093149200000115
Figure FDA00035093149200000116
并将
Figure FDA00035093149200000117
发送给剩下的τ-1个参与方;其余的参与方也执行与Pα相同的操作,每个参与方都计算出
Figure FDA00035093149200000118
Figure FDA00035093149200000119
步骤2.4、Pα计算
Figure FDA00035093149200000120
再计算
Figure FDA00035093149200000121
其余的参与方也执行与Pα相同的操作;
步骤2.5、Pα的S盒输出为
Figure FDA0003509314920000021
其余的参与方也输出各自的结果;
步骤3具体包括
步骤3.1、Pα拥有部分加密密钥keyα=(key0 α,key1 α,key2 α,key3 α),计算
Figure FDA0003509314920000022
步骤3.2、从i=0到i=31,循环执行以下操作:
步骤3.21、Pα计算
Figure FDA0003509314920000023
并将其作为S盒的输入;
步骤3.22、Pα计算
Figure FDA0003509314920000024
Figure FDA0003509314920000025
是Pα与其他τ-1个参与方进行S盒协同计算获得;
步骤4中,
加密具体包括:
步骤4.01、Pα拥有部分明文Mα=(X0 α,X1 α,X2 α,X3 α),轮密钥rki α
步骤4.02、从i=0到i=31,循环执行以下操作:
步骤4.021、Pα计算
Figure FDA0003509314920000026
并将其作为S盒的输入;
步骤4.022、Pα与其他τ-1个参与方进行S盒协同计算,Pα得到
Figure FDA0003509314920000027
步骤4.023、Pα计算
Figure FDA0003509314920000028
步骤4.03、Pα得到部分密文
Figure FDA0003509314920000029
步骤4.04、τ个参与方协同加密,最终得到密文
Figure FDA00035093149200000210
CN202010373340.4A 2020-05-06 2020-05-06 一种针对sm4算法的多方协同加密方法 Active CN111614456B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010373340.4A CN111614456B (zh) 2020-05-06 2020-05-06 一种针对sm4算法的多方协同加密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010373340.4A CN111614456B (zh) 2020-05-06 2020-05-06 一种针对sm4算法的多方协同加密方法

Publications (2)

Publication Number Publication Date
CN111614456A CN111614456A (zh) 2020-09-01
CN111614456B true CN111614456B (zh) 2022-04-01

Family

ID=72203075

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010373340.4A Active CN111614456B (zh) 2020-05-06 2020-05-06 一种针对sm4算法的多方协同加密方法

Country Status (1)

Country Link
CN (1) CN111614456B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116915406B (zh) * 2023-09-14 2023-12-01 北京电子科技学院 电子投标文件的协同解密开标方法、存储介质及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104579636A (zh) * 2015-02-16 2015-04-29 滨州职业学院 一种超高速实现sm4算法的系统及其运行方法
CN106712930A (zh) * 2017-01-24 2017-05-24 北京炼石网络技术有限公司 一种sm4加密方法及装置
CN110855425A (zh) * 2019-10-25 2020-02-28 武汉大学 一种轻量级多方协同sm9密钥生成、密文解密方法与介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017101122A1 (zh) * 2015-12-18 2017-06-22 深圳市振华微电子有限公司 管用分离的计算机加密锁

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104579636A (zh) * 2015-02-16 2015-04-29 滨州职业学院 一种超高速实现sm4算法的系统及其运行方法
CN106712930A (zh) * 2017-01-24 2017-05-24 北京炼石网络技术有限公司 一种sm4加密方法及装置
CN110855425A (zh) * 2019-10-25 2020-02-28 武汉大学 一种轻量级多方协同sm9密钥生成、密文解密方法与介质

Also Published As

Publication number Publication date
CN111614456A (zh) 2020-09-01

Similar Documents

Publication Publication Date Title
CN110008717B (zh) 支持隐私保护的决策树分类服务系统及方法
CN108667625B (zh) 协同sm2的数字签名方法
CN112104619B (zh) 基于外包密文属性加密的数据访问控制系统和方法
CN110414981B (zh) 一种支持ZKPs的同态加密方法和区块链交易金额加密方法
CN112383388B (zh) 一种基于云计算大数据的双秘钥加密系统及方法
CN101399660A (zh) 协商组群密钥的方法和设备
Rawat et al. Efficient extended diffie-hellman key exchange protocol
Chang et al. Privacy-preserving federated learning via functional encryption, revisited
CN113765662A (zh) 一种基于sm2算法的签名及解密方法和系统
CN115174116A (zh) 一种数据包签名与验签系统
CN111614456B (zh) 一种针对sm4算法的多方协同加密方法
CN114124347A (zh) 一种基于区块链的安全多方计算方法及系统
CN112152808B (zh) 一种基于sm2算法的多方协同数字签名方法
CN113869499A (zh) 一种高效的不经意神经网络转化方法
CN117353912A (zh) 基于双线性映射的三方隐私集合交集基数计算方法及系统
CN117370927A (zh) 基于区块链的安全多方计算融合方法及系统
CN117034287A (zh) 基于隐私计算互联互通技术的多方联合建模安全增强方法
CN107294972B (zh) 基于身份的广义多接收者匿名签密方法
CN110048852A (zh) 基于非对称密钥池的量子通信服务站数字签密方法和系统
Li et al. An efficient privacy-preserving bidirectional friends matching scheme in mobile social networks
CN116055152A (zh) 一种基于格的访问控制加解密方法及系统
CN113343261B (zh) 一种基于门限审计的交易隐私保护方法
CN115603896A (zh) 优化mpc下aes加密的隐私保护方法及系统
CN115834038A (zh) 基于国家商用密码算法的加密方法及装置
CN113849831A (zh) 一种基于sm2算法的两方协同签名和解密方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant