CN111106936A - 一种基于sm9的属性加密方法与系统 - Google Patents
一种基于sm9的属性加密方法与系统 Download PDFInfo
- Publication number
- CN111106936A CN111106936A CN201911177626.9A CN201911177626A CN111106936A CN 111106936 A CN111106936 A CN 111106936A CN 201911177626 A CN201911177626 A CN 201911177626A CN 111106936 A CN111106936 A CN 111106936A
- Authority
- CN
- China
- Prior art keywords
- user
- key
- representing
- attribute
- private key
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
- H04L9/3073—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了信息安全技术领域,具体涉及一种基于SM9的属性加密方法与系统,旨在解决现有技术中基于身份标识的加密算法存在用户信息管理开销大、维护困难、用户隐私易泄露的技术问题。密钥生成中心生成系统主私钥和系统主公钥;密钥生成中心KGC基于用户B的请求,结合用户B的属性集、用户B所在组的身份标识,生成用户私钥;用户A结合系统主公钥、用户B所在组的身份标识对消息进行加密;用户B通过用户私钥对密文解密得到解密结果。本发明基于属性加密机制将用户的私钥和密文用一组属性集关联起来,只有密钥属性与密文属性相匹配才能对密文执行解密操作,不会因为系统中成员的数量而影响加密开销,具有更灵活的访问控制结构。
Description
技术领域
本发明属于信息安全技术领域,具体涉及一种基于SM9的属性加密方法与系统。
背景技术
加密算法作为保护数据隐私的重要工具之一,得到了工业界和学术界的广泛关注。当前加密算法根据其所基于的密钥体制可分为:对称加密算法和公钥加密算法。其中,公钥加密算法因有效解决密钥分发与管理问题而被用于多用户场景应用中,如物联网、云计算等。
SM9椭圆曲线公钥密码算法是由国家密码管理局发布的标识密码算法(参见“GM/T0044-2016SM9标识密码算法”标准,国家密码管理局,2016年3月),算法包括数据加密、数字签名、密钥交换等算法和协议。其中,SM9公钥加密算法作为基于身份标识的加密算法,在避免传统公钥加密中证书管理流程的同时,兼具高效性、高安全性等特点,可被广泛用于邮件传输、数据传输等领域。SM9公钥加密算法包括系统初始化算法(SM9_Setup)、用户密钥生成算法(SM9_KeyGen)、密钥封装算法(SM9_KeyEnc)、密钥解封算法(SM9_KeyDec)、加密算法(SM9_Enc)和解密算法(SM9_Dec)。然而,基于身份标识的加密算法在云计算、大数据等多用户环境下存在用户信息维护成本高、用户信息易泄露、系统访问策略不灵活等缺陷。
发明内容
本发明的目的在于提供一种基于SM9的属性加密方法与系统,以解决现有技术中基于身份标识的加密算法存在用户信息管理开销大、维护困难、用户隐私易泄露的技术问题。
为达到上述目的,本发明所采用的技术方案是:一种基于SM9的属性加密方法,包括:a、获取基于SM9的属性加密方法所需的系统参数;b、由密钥生成中心KGC生成系统主私钥MSK,并结合系统参数生成系统主公钥MPK;c、密钥生成中心KGC基于用户B的请求,结合系统主私钥MSK、用户B的属性集AtB、用户B所在组的身份标识GID和系统参数,生成用户私钥USK并发送给用户B;d、用户A结合系统主公钥MPK、用户B所在组的身份标识GID和系统参数对消息M进行加密并将产生的密文CT发送给用户B;e、用户B通过用户私钥USK结合系统参数对密文CT解密得到解密结果M′。
所述系统参数包括:椭圆曲线参数、辅助函数和双线性对参数。
所述步骤b包括:
b1.密钥生成中心KGC随机产生s,t∈{1,2,...,n-1},并令MSK=s||t作为系统主私钥,其中,s为系统主私钥的组成部分之一,t为系统主私钥组成部分之二,n表示群G1、G2、GT的阶,G1表示加法循环群之一,G2表示加法循环群之二,GT表示乘法循环群,群G1,G2和群GT有相同的阶;
b2.密钥生成中心KGC根据所选主私钥的组成部分s,t,通过以下公式计算并公布系统主公钥MPK:
MPK={s·P1,t·P1} (1)
其中,令PK1=s·P1表示系统主公钥组成部分之一,令PK2=t·P1表示系统主公钥组成部分之二,P1表示群G1的生成元。
所述步骤c包括:
c1.用户B将自己所在群组的身份标识GID发送给密钥生成中心KGC,请求用户私钥;
c2.密钥生成中心KGC收到用户B的请求后,确认GID是否合法并验证用户B是否在GID对应的群组中;如果验证通过,密钥生成中心KGC为用户B选择随机数r2∈{1,2,3,...,n-1},并结合生成的系统主私钥MSK=s||t、用户B的属性集AtB、用户B所在组的身份标识GID和计算公式(2)作为用户B私钥的一部分:
其中,s k1表示用户B私钥的组成部分之一,h1表示由安全的密码杂凑函数派生的密码函数,P2表示群G2的生成元;
c3.对于属性集AtB中的每个属性j,KGC选择随机数mj∈{1,2,3,...,n-1}并计算公式(3)、(4)作为用户B私钥的属性私钥:
c5.用户B接收并秘密保存密钥生成中心KGC发送的用户私钥USK。
所述步骤d包括:
d1.用户A查询用户B所在群组的身份标识GID,如果对应GID存在,则计算公式(5)作为加密中间值:
QB=h1(GID,n)·P1+PK1 (5)
其中,QB表示加密中间值;
d2.用户A随机选择r1∈{1,2,3,...,n-1},计算公式(6)、(7)、(8):
C1=r1·QB (6)
g=e(PK1,P2) (7)
其中,C1表示密文的组成部分之一,g表示加密中间结果,e表示从G1×G2到GT的双线性对,ω表示密文的组成部分之四;
d3.将用户A选择的随机数r1作为根节点的秘密,构建访问控制树T;访问控制树T中的所有非叶节点x都有一个随机多项式qx,多项式的次数dx与该点门限kx满足公式(9):
dx=kx-1 (9)
从根节点开始,令qr(0)=r1,其中,qr(0)表示根节点r所对应的多项式在变量取0时的值,然后随机选取其他节点x,对应多项式变量取0时应满足公式(10):
qx(0)=qparent(x)(index(x)) (10)
其中,qx(0)表示非叶子节点x所对应的多项式在变量取0时的值;qparent(x)(index(x))表示节点parent(x)所对应的多项式在变量取index(x)时的值,parent(x)表示节点x的父节点,index(x)表示节点x所对应的索引值,x表示访问控制树T中的非叶子节点,T表示访问控制树;
Cy=qy(0)·PK2 (11)
其中,Cy表示密文的组成部分之五,表示密文的组成部分之六,qy(0)表示叶子节点y所对应的的多项式在变量取0时的值,qy(0)·PK2表示两者在椭圆曲线上进行标量乘,PK2表示系统主公钥的组成部分之二;att(y)表示叶子节点y对应的属性值,y表示访问控制树T上的叶子节点;
d5.用户A计算:
K=KDF(C1||ω||GID,mlen+K2_len) (13)
其中,K表示派生密钥,KDF()表示密钥派生函数,用于生成消息加密密钥和消息认证密钥,GID表示用户B所在群组的身份标识,mlen表示待加密消息M的比特长,M表示待加密消息,K2_len表示比特串K2的比特长,K2表示用于生成消息认证码的密钥;
令K1为派生密钥K的前mlen比特,K1表示加密密钥,K2为后面K2_len比特,如果K1为全0比特,跳至步骤d2,否则进入步骤d6;
C3=H1(K2||C2) (15)
所述步骤e包括:
e1.用户B接收到密文CT后,首先用等式(16)对叶子结点y∈Y进行解密,得到对叶子节点y的解密结果DecrypteNode(CT,USK,y):
其中,my为在用户私钥生成阶段,由KGC(密钥生成中心)生成的随机数;
e2.访问控制树的非叶子节点中的秘密值由拉格朗日插值定理求得,即当且仅当门限值为kx,多项式次数为dx=kx-1的非叶子节点X的子节点Y中,有kx个秘密值被用户B所知时,意味着用户B有满足此节点门限的kx个属性,用户B可以解出该非叶子节点X的秘密值,非叶子节点X的秘密值解法如下:
其中,Sx为非叶节点x的子节点的集合,kx为节点x的门限值,z为Sx集合中的一个点,Fz=DecrypteNode(CT,USK,z)表示z节点的解密值,Fx=DecrypteNode(CT,USK,x)表示x节点的解密值,表示拉格朗日系数;
e3.当且仅当用户B的属性满足访问控制树T的门限要求时,用户B可以通过步骤e2解密到根节点,其结果有:
其中,R表示解密阶段中求得的中间结果之一;
此时随机数r1、r2均嵌入到双线性对的结果中,接着,计算
其中,ω*表示解密阶段中求得的中间结果之二;
e4.用户B计算K′=KDF(C1||ω*||GID,mlen+K2_len),其中,K′表示解密阶段中求得中间结果之三,取K′的前mlen比特K′1和后K2_len比特K′2,K′1表示解密阶段中求得的解密密钥,K′2表示解密阶段中求得的认证密钥。如果K′1为全0,则解密系统报错并退出,否则进入步骤e5;
一种基于SM9的属性加密系统,包括:系统初始化模块、系统密钥生成模块、用户密钥生成模块、消息加密模块和用户解密模块,所述系统初始化模块,用于产生整个加密系统所需的系统参数;所述系统密钥生成模块,用于生成系统主私钥和系统主公钥;所述用户密钥生成模块,用于基于系统主私钥和用户B的属性信息生成用户B的用户私钥;所述消息加密模块,用于用户A基于系统主公钥和用户B的属性信息对消息M进行加密,并将密文CT发送给用户B;所述用户解密模块,用于用户B基于用户私钥对密文CT解密得到解密结果M′。
一种基于SM9的属性加密系统,包括:存储器和处理器,所述存储器用于存储指令,所述处理器用于根据所述指令进行操作以执行上述任一项所述方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述任一项所述方法的步骤。
与现有技术相比,本发明所达到的有益效果:本发明基于属性加密机制将用户的私钥和密文用一组属性集(如年龄、籍贯)关联起来,只有密钥属性与密文属性相匹配才能对密文执行解密操作,基于属性的加密系统不仅不会因为系统中成员的数量而影响加密开销,还具有更灵活的访问控制结构,与传统加密机制相比,基于属性的加密机制具有灵活性、隐私性、动态性、高效性等特点,更适用于大数据、云服务等多用户场景下的多对多通信方式。
附图说明
图1是本发明实施例提供的一种基于SM9的属性加密方法的流程示意图;
图2是本发明实施例提供的一种基于SM9的属性加密方法的系统主密钥生成实例流程示意图;
图3是本发明实施例提供的一种基于SM9的属性加密方法的用户密钥生成实例交互示意图;
图4是本发明实施例提供的一种基于SM9的属性加密方法的数据加密实例流程示意图;
图5是本发明实施例提供的一种基于SM9的属性加密方法的数据解密实例流程示意图。
具体实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
如图1所示,一种基于SM9的属性加密方法,包括如下步骤:
步骤1、系统初始化,获取基于SM9的属性加密方法所需的系统参数;
步骤2、系统主密钥生成,由密钥生成中心KGC生成系统主私钥MSK,并结合系统参数生成系统主公钥MPK;
步骤3、用户私钥生成,密钥生成中心KGC基于用户B的请求,结合系统主私钥MSK、用户B的属性集AtB、用户B所在组的身份标识GID和系统参数,生成用户私钥USK并发送给用户B;
步骤4、消息加密,用户A结合系统主公钥MPK、用户B所在组的身份标识GID和系统参数对消息M进行加密并将产生的密文CT发送给用户B;
步骤5、密文解密,用户B通过用户私钥USK结合系统参数对密文CT解密得到解密结果M′。
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。
步骤1、初始化(Setup):该步骤主要用于产生整个加密系统所需参数。参数包括:椭圆曲线相关参数:(cid、q、Fq、a、b、n、k、cf、G1、G2、P1、P2);辅助函数:(H1、h1、KDF)等;双线性对相关参数:e、eid、GT。本发明是基于SM9加密算法的改进和优化,因此,与SM9使用相同的系统参数,
其中,cid为曲线识别符,q为大素数,Fq为椭圆曲线基域,a、b为椭圆曲线方程的参数,系Fq中的元素,n表示群G1、G2、GT的阶,G1表示加法循环群之一,G2表示加法循环群之二,GT表示乘法循环群,群G1,G2和群GT有相同的阶,cf为相对于n的余因子;k为椭圆曲线E(Fq)相对于n的嵌入次数,P1为加法循环群之一G1的生成元,P2为加法循环群之二G2的生成元;辅助函数H1()表示安全的密码杂凑函数,h1为由H1()生成的密码函数,KDF()表示密钥派生函数,用于派生出K1和K2,K1表示加密密钥,K2表示用于生成消息认证码的密钥;eid为双线性对e的标识符,GT为n阶乘法循环群。
上述密码函数h1(Z,N)算法如下:
步骤1.1)密码函数h1(Z,N):
输入:比特串Z,整数N;
输出:整数h∈[1,N-1]。
步骤1.1.1)初始化一个32比特构成的计数器ct=0x00000001;
其中,hlen表示输出整数h的比特长;
计算Hai=H1(0x01||Z||ct);
ct++;
其中,v表示安全杂凑函数H1()的杂凑输出的比特长,H1()表示前文所提及的安全杂凑函数,i表示该步骤循环次数的计数器,hlen/v表示循环总次数,Hai表示计算中间结果,0x01表示Tate对,即双线性对;
步骤1.1.6)计算h=(Hamod(N-1))+1。
其中,h表示该算法的输出,Ha表示步骤1.1.5)的计算结果,Hamod(N-1)表示Ha对N-1进行取模运算。
上述密钥派生函数KDF()算法构造如下:
步骤1.2)密钥派生函数KDF(Z,klen):
输入:比特串Z(双方共享的数据),整数klen(表示要获得的密钥数据的比特长度)。
输出:长度为klen的密钥数据比特串K。
步骤1.2.1)初始化一个32比特构成的计数器ct=0x00000001;
计算Hai=H1(Z||ct);
Ct++;
其中,hlen/v表示循环总次数,Hai表示计算中间结果。
步骤2)系统主密钥生成:由密钥生成中心KGC生成系统主公钥MPK和系统主私钥MSK,其中系统主公钥MPK,由KGC公开;系统主私钥MSK,由KGC保密。
如图2所示,具体过程如下:
步骤2.1:KGC随机产生s,t∈{1,2,...,n-1},并令MSK=s||t作为系统主私钥。
步骤2.2:KGC根据所选主私钥的组成部分s,t,根据所选主私钥s,通过公式(1)计算并公布系统主公钥MPK,
MPK={s·P1,t·P1} (1)
其中,s为系统主私钥的组成部分之一,t为系统主私钥组成部分之二;令PK1=s·P1表示系统主公钥组成部分之一,令PK2=t·P1表示系统主公钥组成部分之二;
步骤3.用户私钥生成(UserKeyGen):如图3,该步骤主要用于产生用户B的加密私钥。在该步骤中,用户私钥里面基于属性集的属性私钥为本发明主要创新点之一。具体过程如下:
步骤3.1:用户B将自己所在群组的身份标识GD发送给KGC,请求用户私钥。
步骤3.2:KGC收到用户B的请求后,确认GID是否合法并验证用户B是否在GID对应的群组中。如果验证通过,KGC为用户B选择随机数r2∈{1,2,3,...,n-1},并结合生成的系统主私钥MSK=s||t、用户B的属性集AtB、用户B所在组的身份标识GID,计算公式(2)作为用户B私钥的一部分。
其中,sk1表示用户B私钥的组成部分之一,h1表示由安全的密码杂凑函数派生的密码函数,P2表示群G2的生成元,G2表示本专利中使用的加法循环群,n表示群G2的阶。
步骤3.3:对于属性集AtB中的每个属性j,KGC选择随机数mj∈{1,2,3,...,n-1}并计算公式(3)、(4)作为用户B私钥的属性私钥。
步骤3.5:用户B接收并秘密保存KGC发送的用户私钥USK。
步骤4.数据加密(Encrypt):如图4,该步骤主要用于用户A对消息M进行加密产生密文CT。该步骤与SM9加密算法中加密过程基本相同,但是在密文中加入了基于属性加密的密文部分。具体过程如下:
步骤4.1:加密用户A查询用户B所在群组的标识GID,如果对应GID存在,则计算公式(5)作为加密中间值。
QB=h1(GID,n)·P1+PK1 (5)
其中,QB表示加密中间值;
步骤4.2:用户A随机选择r1∈{1,2,3,...,n-1},计算公式(6)、(7)、(8)得到加密中间结果C1、g、ω。
C1=r1·QB (6)
g=e(PK1,P2) (7)
其中,C1表示密文的组成部分之一,g表示加密中间结果,e表示从G1×G2到GT的双线性对,ω表示密文的组成部分之四;
步骤4.3:系统将用户A选择的随机数r1作为根节点的秘密,构建访问控制树T。访问控制树T中的所有非叶节点x都有一个随机多项式qx,多项式的次数dx与该点门限kx满足公式(9):
dx=kx-1 (9)
从根节点开始,令qr(0)=r1,其中qr(0)表示根节点r所对应的多项式在变量取0时的值,然后随机选取其他节点x,对应多项式变量取0时应满足公式(10)。
qx(0)=qparent(x)(index(x)) (10)
其中,qx(0)表示非叶子节点x所对应的多项式在变量取0时的值;qparent(x)(index(x))表示节点parent(x)所对应的多项式在变量取index(x)时的值,parent(x)表示节点x的父节点,index(x)表示节点x所对应的索引值,x表示访问控制树T中的非叶子节点,T表示访问控制树;
Cy=qy(0)·PK2 (11)
其中,Cy表示密文的组成部分之五,表示密文的组成部分之六,qy(0)表示叶子节点y所对应的的多项式在变量取0时的值,P1表示群G1的生成元,G1表示本专利中使用的加法循环群,qy(0)·PK2表示两者在椭圆曲线上进行标量乘,PK2表示系统主公钥的组成部分之二;att(y)表示叶子节点y对应的属性值,H1()表示安全的密码杂凑函数,y表示访问控制树T上的叶子节点,T表示访问控制树;
步骤4.5:用户A计算
K=KDF(C1||ω||GID,mlen+K2-len) (13)
其中,K表示派生密钥,KDF()表示密钥派生函数,用于生成消息加密密钥和消息认证密钥,C1和ω均为密文的一部分,GID表示用户B所在群组的身份标识,mlen表示消息M的比特长,M表示待加密消息,K2_len表示比特串K2的比特长,K2表示用于生成消息认证码的密钥;
令K1为派生密钥K的前mlen比特,K2为后面K2_len比特,如果K1为全0比特,跳至步骤4.2,否则进入步骤4.6。
C3=H1(K2||C2) (15)
步骤5.数据解密(Decrypt):如图5,该步骤主要用于用户B解密用户A发送来的密文信息CT,生成解密结果M′。具体解密过程如下:
步骤5.1:用户B接收到密文CT后,首先用等式(16)对叶子结点y∈Y进行解密,得到对叶子节点y的解密结果DecrypteNode(CT,USK,y)。
其中,my为在用户私钥生成阶段,由KGC(密钥生成中心)生成的随机数;
步骤5.2:访问控制树的非叶子节点中的秘密值由拉格朗日插值定理求得,即当且仅当非叶子节点X(门限值为kx,多项式次数为dx=kx-1)的子节点Y中,有kx个秘密值被用户B所知时,意味着用户B有满足此节点门限的kx个属性,用户B可以解出该非叶子节点X的秘密值。非叶子节点X的秘密值解法如下:
其中,Sx为非叶节点x的子节点的集合,kx为节点x的门限值,z为Sx集合中的一个点,Fz=DecrypteNode(CT,USK,z)表示z节点的解密值(参见步骤5.1),Fx=DecrypteNode(CT,USK,x)表示x节点的解密值。 表示拉格朗日系数。
步骤5.3:当且仅当用户B的属性满足访问控制树T的门限要求时,用户B可以通过步骤5.2)解密到根节点,其结果有:
其中,R表示解密阶段中求得的中间结果之一;
此时随机数r1、r2均嵌入到双线性对的结果中,接着,计算
其中,ω*表示解密阶段中求得的中间结果之二;
可以证明ω*与ω相等,证明过程见(20):
步骤5.4:用户B计算K′=KDF(C1||ω*||GID,mlen+K2_len),其中,K′表示解密阶段中求得中间结果之三,取K′的前mlen比特K′1和后K2_len比特K′2,K′1表示解密阶段中求得的解密密钥,K′2表示解密阶段中求得的认证密钥。如果K′1为全0,则解密系统报错并退出,否则进入步骤5.5。
本发明基于属性加密机制将用户的私钥和密文用一组属性集(如年龄、籍贯)关联起来,只有密钥属性与密文属性相匹配才能对密文执行解密操作,基于属性的加密系统不仅不会因为系统中成员的数量而影响加密开销,还具有更灵活的访问控制结构,与传统加密机制相比,基于属性的加密机制具有灵活性、隐私性、动态性、高效性等特点,更适用于大数据、云服务等多用户场景下的多对多通信方式。
根据上述方法,本发明还提供一种基于SM9的属性加密系统,包括:
系统初始化模块,用于产生整个加密系统所需的系统参数,参数包括:椭圆曲线相关参数;辅助函数;双线性对相关参数等。
系统密钥生成模块,用于有密钥生成中心KGC生成系统主公私钥(MPK,MSK),其中,MPK为系统主公钥,MSK为系统主私钥。
用户密钥生成模块,用于产生用户B的用户私钥,密钥生成中心KGC基于用户B的请求,结合系统主私钥MSK、用户B的属性集AtB、用户B所在组的身份标识GID和系统参数,生成用户私钥USK并发送给用户B。
消息加密模块,用于用户A产生消息M的加密密文CT,用户A结合系统主公钥MPK、用户B所在组的身份标识GID和系统参数对消息M进行加密并将产生的密文CT发送给用户B。
用户解密模块,用于由密文接收者用户B对密文CT进行解密得到解密后的消息M′,用户B通过用户私钥USK结合系统参数对密文CT解密得到解密结果M′。
根据上述方法,本发明还提供一种基于SM9的属性加密系统,包括:存储器和处理器,存储器用于存储指令,处理器用于根据所述指令进行操作以执行前述方法的步骤。
根据上述方法,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述方法的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (9)
1.一种基于SM9的属性加密方法,其特征是,包括:
a、获取基于SM9的属性加密方法所需的系统参数;
b、由密钥生成中心KGC生成系统主私钥MSK,并结合系统参数生成系统主公钥MPK;
c、密钥生成中心KGC基于用户B的请求,结合系统主私钥MSK、用户B的属性集AtB、用户B所在组的身份标识GID和系统参数,生成用户私钥USK并发送给用户B;
d、用户A结合系统主公钥MPK、用户B所在组的身份标识GID和系统参数对消息M进行加密并将产生的密文CT发送给用户B;
e、用户B通过用户私钥USK结合系统参数对密文CT解密得到解密结果M′。
2.根据权利要求1所述的基于SM9的属性加密方法,其特征是,所述系统参数包括:椭圆曲线参数、辅助函数和双线性对参数。
3.根据权利要求1所述的基于SM9的属性加密方法,其特征是,所述步骤b包括:
b1.密钥生成中心KGC随机产生s,t∈{1,2,...,n-1},并令MSK=s||t作为系统主私钥,其中,s为系统主私钥的组成部分之一,t为系统主私钥组成部分之二。n表示群G1、G2、GT的阶,G1表示加法循环群之一,G2表示加法循环群之二,GT表示乘法循环群,群G1,G2和群GT有相同的阶;
b2.密钥生成中心KGC根据所选主私钥的组成部分s,t,通过以下公式计算并公布系统主公钥MPK:
MPK={s·P1,t·P1} (1)
其中,令PK1=s·P1表示系统主公钥组成部分之一,令PK2=t·P1表示系统主公钥组成部分之二,P1表示群G1的生成元。
4.根据权利要求1所述的基于SM9的属性加密方法,其特征是,所述步骤c包括:
c1.用户B将自己所在群组的身份标识GID发送给密钥生成中心KGC,请求用户私钥;
c2.密钥生成中心KGC收到用户B的请求后,确认GID是否合法并验证用户B是否在GID对应的群组中;如果验证通过,密钥生成中心KGC为用户B选择随机数r2∈{1,2,3,...,n-1},并结合生成的系统主私钥MSK=s||t、用户B的属性集AtB、用户B所在组的身份标识GID和计算公式(2)作为用户B私钥的一部分:
其中,sk1表示用户B私钥的组成部分之一,h1表示由安全的密码杂凑函数派生的密码函数,P2表示群G2的生成元;
c3.对于属性集AtB中的每个属性j,KGC选择随机数mj∈{1,2,3,...,n-1}并计算公式(3)、(4)作为用户B私钥的属性私钥:
c5.用户B接收并秘密保存密钥生成中心KGC发送的用户私钥USK。
5.根据权利要求1所述的基于SM9的属性加密方法,其特征是,所述步骤d包括:
d1.用户A查询用户B所在群组的身份标识GID,如果对应GID存在,则计算公式(5)作为加密中间值:
QB=h1(GID,n)·P1+PK1 (5)
其中,QB表示加密中间值;
d2.用户A随机选择r1∈{1,2,3,...,n-1},计算公式(6)、(7)、(8):
C1=r1·QB (6)
g=e(PK1,P2) (7)
其中,C1表示密文的组成部分之一,g表示加密中间结果,e表示从G1×G2到GT的双线性对,ω表示密文的组成部分之四;
d3.将用户A选择的随机数r1作为根节点的秘密,构建访问控制树T;访问控制树T中的所有非叶节点x都有一个随机多项式qx,多项式的次数dx与该点门限kx满足公式(9):
dx=kx-1 (9)
从根节点开始,令qr(0)=r1,其中,qr(0)表示根节点r所对应的多项式在变量取0时的值,然后随机选取其他节点x,对应多项式变量取0时应满足公式(10):
qx(0)=qparent(x)(index(x)) (10)
其中,qx(0)表示非叶子节点x所对应的多项式在变量取0时的值;qparent(x)(index(x))表示节点parent(x)所对应的多项式在变量取index(x)时的值,parent(x)表示节点x的父节点,index(x)表示节点x所对应的索引值,x表示访问控制树T中的非叶子节点,T表示访问控制树;
Cy=qy(0)·PK2 (11)
其中,Cy表示密文的组成部分之五,表示密文的组成部分之六,qy(0)表示叶子节点y所对应的的多项式在变量取0时的值,qy(0)·PK2表示两者在椭圆曲线上进行标量乘,PK2表示系统主公钥的组成部分之二;att(y)表示叶子节点y对应的属性值,y表示访问控制树T上的叶子节点;
d5.用户A计算:
K=KDF(C1||ω||GID,mlen+K2_len) (13)
其中,K表示派生密钥,KDF()表示密钥派生函数,用于生成消息加密密钥和消息认证密钥,GID表示用户B所在群组的身份标识,mlen表示待加密消息M的比特长,M表示待加密消息,K2_len表示比特串K2的比特长,K2表示用于生成消息认证码的密钥;
令K1为派生密钥K的前mlen比特,K1表示加密密钥,K2为后面k2_len比特,如果K1为全0比特,跳至步骤d2,否则进入步骤d6;
C3=H1(K2||C2) (15)
6.根据权利要求1所述的基于SM9的属性加密方法,其特征是,所述步骤e包括:
e1.用户B接收到密文CT后,首先用等式(16)对叶子结点y∈Y进行解密,得到对叶子节点y的解密结果DecrypteNode(CT,USK,y):
其中,my为在用户私钥生成阶段,由KGC(密钥生成中心)生成的随机数;
e2.访问控制树的非叶子节点中的秘密值由拉格朗日插值定理求得,即当且仅当门限值为kx,多项式次数为dx=kx-1的非叶子节点X的子节点Y中,有kx个秘密值被用户B所知时,意味着用户B有满足此节点门限的kx个属性,用户B可以解出该非叶子节点X的秘密值,非叶子节点X的秘密值解法如下:
其中,Sx为非叶节点x的子节点的集合,kx为节点x的门限值,z为Sx集合中的一个点,Fz=DecrypteNode(CT,USK,z)表示z节点的解密值,Fx=DecrypteNode(CT,USK,x)表示x节点的解密值,表示拉格朗日系数;
e3.当且仅当用户B的属性满足访问控制树T的门限要求时,用户B可以通过步骤e2解密到根节点,其结果有:
其中,R表示解密阶段中求得的中间结果之一;
此时随机数r1、r2均嵌入到双线性对的结果中,接着,计算
其中,ω*表示解密阶段中求得的中间结果之二;
e4.用户B计算K′=KDF(C1||ω*||GID,mlen+K2_len),其中,K′表示解密阶段中求得中间结果之三,取K′的前mlen比特K′1和后K2_len比特K′2,K′1表示解密阶段中求得的解密密钥,K′2表示解密阶段中求得的认证密钥。如果K′1为全0,则解密系统报错并退出,否则进入步骤e5;
7.一种基于SM9的属性加密系统,其特征是,包括:系统初始化模块、系统密钥生成模块、用户密钥生成模块、消息加密模块和用户解密模块,
所述系统初始化模块,用于产生整个加密系统所需的系统参数;
所述系统密钥生成模块,用于生成系统主私钥和系统主公钥;
所述用户密钥生成模块,用于基于系统主私钥和用户B的属性信息生成用户B的用户私钥;
所述消息加密模块,用于用户A基于系统主公钥和用户B的属性信息对消息M进行加密,并将密文CT发送给用户B;
所述用户解密模块,用于用户B基于用户私钥对密文CT解密得到解密结果M′。
8.一种基于SM9的属性加密系统,其特征是,包括:存储器和处理器,所述存储器用于存储指令,所述处理器用于根据所述指令进行操作以执行权利要求1~6任一项所述方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征是,该程序被处理器执行时实现权利要求1~6任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911177626.9A CN111106936B (zh) | 2019-11-27 | 2019-11-27 | 一种基于sm9的属性加密方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911177626.9A CN111106936B (zh) | 2019-11-27 | 2019-11-27 | 一种基于sm9的属性加密方法与系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111106936A true CN111106936A (zh) | 2020-05-05 |
CN111106936B CN111106936B (zh) | 2023-04-21 |
Family
ID=70421797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911177626.9A Active CN111106936B (zh) | 2019-11-27 | 2019-11-27 | 一种基于sm9的属性加密方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111106936B (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111740986A (zh) * | 2020-06-19 | 2020-10-02 | 公安部第三研究所 | 基于标识密码技术的实现数据共享控制的系统及其方法 |
CN111740988A (zh) * | 2020-06-19 | 2020-10-02 | 武汉大学 | 云存储数据加密方法、系统和存储介质 |
CN111930881A (zh) * | 2020-10-10 | 2020-11-13 | 南京理工大学 | 基于国密算法的连接关键词认证可搜索加密方法 |
CN112597523A (zh) * | 2021-03-02 | 2021-04-02 | 冷杉云(北京)科技股份有限公司 | 文件处理方法、文件转换加密机、终端、服务器及介质 |
CN112699394A (zh) * | 2021-01-13 | 2021-04-23 | 北卡科技有限公司 | 一种基于sm9算法的密钥应用方法 |
CN112769552A (zh) * | 2020-12-30 | 2021-05-07 | 北京宏思电子技术有限责任公司 | 一种在嵌入式系统中加快线性对运算的实现方法及装置 |
CN112787822A (zh) * | 2021-01-05 | 2021-05-11 | 贵州大学 | 一种大属性集下的基于sm9的属性加密方法及系统 |
CN112910647A (zh) * | 2021-04-13 | 2021-06-04 | 三未信安科技股份有限公司 | 一种基于sm9的分布式协同解密方法及系统 |
CN112906038A (zh) * | 2021-03-26 | 2021-06-04 | 成都卫士通信息产业股份有限公司 | 基于sm9密钥的门限化处理方法、装置、设备及存储介质 |
CN112926074A (zh) * | 2021-03-26 | 2021-06-08 | 成都卫士通信息产业股份有限公司 | 一种sm9密钥门限化生成方法、装置、设备及存储介质 |
CN113098683A (zh) * | 2021-03-17 | 2021-07-09 | 武汉理工大学 | 一种基于属性的数据加密方法和系统 |
CN113162751A (zh) * | 2021-04-25 | 2021-07-23 | 重庆都会信息科技有限公司 | 具备加同态性的加密方法、系统及可读存储介质 |
CN113382002A (zh) * | 2021-06-10 | 2021-09-10 | 杭州安恒信息技术股份有限公司 | 数据请求方法、请求应答方法、数据通信系统及存储介质 |
CN113612615A (zh) * | 2021-07-23 | 2021-11-05 | 重庆邮电大学 | 一种基于国密sm9算法的可审计隐私保护认证方法 |
CN113742680A (zh) * | 2021-11-02 | 2021-12-03 | 北京理工大学 | 基于商用密码的可追责的数据加密传输方法及系统 |
CN114697001A (zh) * | 2020-12-28 | 2022-07-01 | 山东浪潮质量链科技有限公司 | 一种基于区块链的信息加密传输方法、设备及介质 |
CN116405293A (zh) * | 2023-04-07 | 2023-07-07 | 光谷技术有限公司 | 安全运维系统的数据加密存储方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016197769A1 (zh) * | 2015-06-12 | 2016-12-15 | 深圳大学 | 一种基于表格属性的云存储密文访问控制系统 |
CN108418686A (zh) * | 2017-11-23 | 2018-08-17 | 矩阵元技术(深圳)有限公司 | 一种多分布式的sm9解密方法与介质及密钥生成方法 |
CN108599950A (zh) * | 2018-04-09 | 2018-09-28 | 北京无字天书科技有限公司 | 一种适用于sm9标识密码的用户密钥申请下载安全协议的实现方法 |
CN109922077A (zh) * | 2019-03-27 | 2019-06-21 | 北京思源互联科技有限公司 | 一种基于区块链的身份认证方法及其系统 |
-
2019
- 2019-11-27 CN CN201911177626.9A patent/CN111106936B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016197769A1 (zh) * | 2015-06-12 | 2016-12-15 | 深圳大学 | 一种基于表格属性的云存储密文访问控制系统 |
CN108418686A (zh) * | 2017-11-23 | 2018-08-17 | 矩阵元技术(深圳)有限公司 | 一种多分布式的sm9解密方法与介质及密钥生成方法 |
CN108599950A (zh) * | 2018-04-09 | 2018-09-28 | 北京无字天书科技有限公司 | 一种适用于sm9标识密码的用户密钥申请下载安全协议的实现方法 |
CN109922077A (zh) * | 2019-03-27 | 2019-06-21 | 北京思源互联科技有限公司 | 一种基于区块链的身份认证方法及其系统 |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111740988A (zh) * | 2020-06-19 | 2020-10-02 | 武汉大学 | 云存储数据加密方法、系统和存储介质 |
CN111740986B (zh) * | 2020-06-19 | 2022-07-19 | 公安部第三研究所 | 基于标识密码技术的实现数据共享控制的系统及其方法 |
CN111740986A (zh) * | 2020-06-19 | 2020-10-02 | 公安部第三研究所 | 基于标识密码技术的实现数据共享控制的系统及其方法 |
CN111740988B (zh) * | 2020-06-19 | 2021-09-10 | 武汉大学 | 云存储数据加密方法、系统和存储介质 |
CN111930881A (zh) * | 2020-10-10 | 2020-11-13 | 南京理工大学 | 基于国密算法的连接关键词认证可搜索加密方法 |
CN114697001A (zh) * | 2020-12-28 | 2022-07-01 | 山东浪潮质量链科技有限公司 | 一种基于区块链的信息加密传输方法、设备及介质 |
CN112769552A (zh) * | 2020-12-30 | 2021-05-07 | 北京宏思电子技术有限责任公司 | 一种在嵌入式系统中加快线性对运算的实现方法及装置 |
CN112769552B (zh) * | 2020-12-30 | 2022-08-23 | 北京宏思电子技术有限责任公司 | 一种在嵌入式系统中加快线性对运算的实现方法及装置 |
CN112787822B (zh) * | 2021-01-05 | 2022-04-12 | 贵州大学 | 一种大属性集下的基于sm9的属性加密方法及系统 |
CN112787822A (zh) * | 2021-01-05 | 2021-05-11 | 贵州大学 | 一种大属性集下的基于sm9的属性加密方法及系统 |
CN112699394B (zh) * | 2021-01-13 | 2022-11-25 | 北卡科技有限公司 | 一种基于sm9算法的密钥应用方法 |
CN112699394A (zh) * | 2021-01-13 | 2021-04-23 | 北卡科技有限公司 | 一种基于sm9算法的密钥应用方法 |
CN112597523B (zh) * | 2021-03-02 | 2021-06-18 | 冷杉云(北京)科技股份有限公司 | 文件处理方法、文件转换加密机、终端、服务器及介质 |
CN112597523A (zh) * | 2021-03-02 | 2021-04-02 | 冷杉云(北京)科技股份有限公司 | 文件处理方法、文件转换加密机、终端、服务器及介质 |
CN113098683A (zh) * | 2021-03-17 | 2021-07-09 | 武汉理工大学 | 一种基于属性的数据加密方法和系统 |
CN113098683B (zh) * | 2021-03-17 | 2022-05-03 | 武汉理工大学 | 一种基于属性的数据加密方法和系统 |
CN112926074A (zh) * | 2021-03-26 | 2021-06-08 | 成都卫士通信息产业股份有限公司 | 一种sm9密钥门限化生成方法、装置、设备及存储介质 |
CN112906038A (zh) * | 2021-03-26 | 2021-06-04 | 成都卫士通信息产业股份有限公司 | 基于sm9密钥的门限化处理方法、装置、设备及存储介质 |
CN112926074B (zh) * | 2021-03-26 | 2022-08-23 | 成都卫士通信息产业股份有限公司 | 一种sm9密钥门限化生成方法、装置、设备及存储介质 |
CN112910647A (zh) * | 2021-04-13 | 2021-06-04 | 三未信安科技股份有限公司 | 一种基于sm9的分布式协同解密方法及系统 |
CN112910647B (zh) * | 2021-04-13 | 2022-07-29 | 三未信安科技股份有限公司 | 一种基于sm9的分布式协同解密方法及系统 |
CN113162751A (zh) * | 2021-04-25 | 2021-07-23 | 重庆都会信息科技有限公司 | 具备加同态性的加密方法、系统及可读存储介质 |
CN113162751B (zh) * | 2021-04-25 | 2023-06-20 | 重庆都会信息科技有限公司 | 具备加同态性的加密方法、系统及可读存储介质 |
CN113382002A (zh) * | 2021-06-10 | 2021-09-10 | 杭州安恒信息技术股份有限公司 | 数据请求方法、请求应答方法、数据通信系统及存储介质 |
CN113612615A (zh) * | 2021-07-23 | 2021-11-05 | 重庆邮电大学 | 一种基于国密sm9算法的可审计隐私保护认证方法 |
CN113612615B (zh) * | 2021-07-23 | 2024-01-12 | 北京政务科技有限公司 | 一种基于国密sm9算法的可审计隐私保护认证方法 |
CN113742680A (zh) * | 2021-11-02 | 2021-12-03 | 北京理工大学 | 基于商用密码的可追责的数据加密传输方法及系统 |
CN116405293A (zh) * | 2023-04-07 | 2023-07-07 | 光谷技术有限公司 | 安全运维系统的数据加密存储方法 |
CN116405293B (zh) * | 2023-04-07 | 2023-09-01 | 光谷技术有限公司 | 安全运维系统的数据加密存储方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111106936B (zh) | 2023-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111106936B (zh) | 一种基于sm9的属性加密方法与系统 | |
CN108173639B (zh) | 一种基于sm9签名算法的两方合作签名方法 | |
CN108989053B (zh) | 一种基于椭圆曲线的无证书公钥密码体制实现方法 | |
CN109257184B (zh) | 基于匿名广播加密的可链接环签名方法 | |
CN107707358B (zh) | 一种ec-kcdsa数字签名生成方法及系统 | |
WO2019101134A1 (zh) | 一种多分布式的sm9解密方法与介质及密钥生成方法 | |
CN110830236B (zh) | 基于全域哈希的身份基加密方法 | |
CN107395368B (zh) | 无介质环境中的数字签名方法及解封装方法与解密方法 | |
CN110120939B (zh) | 一种基于异构系统的可否认认证的加密方法和系统 | |
CN110113155B (zh) | 一种高效无证书公钥加密方法 | |
CN104821880B (zh) | 一种无证书广义代理签密方法 | |
CN112564907B (zh) | 密钥生成方法及装置、加密方法及装置、解密方法及装置 | |
CN109831297A (zh) | 一种支持门限解密的多身份全同态加密方法 | |
CN113259329A (zh) | 一种数据不经意传输方法、装置、电子设备及存储介质 | |
CN111010276A (zh) | 一种多方联合sm9密钥生成、密文解密方法与介质 | |
CN106713349B (zh) | 一种能抵抗选择密文攻击的群组间代理重加密方法 | |
CN111030801A (zh) | 一种多方分布式的sm9密钥生成、密文解密方法与介质 | |
CN114124349A (zh) | 一种用于同态加密方案的快速解密方法 | |
CN110855425A (zh) | 一种轻量级多方协同sm9密钥生成、密文解密方法与介质 | |
CN113162751A (zh) | 具备加同态性的加密方法、系统及可读存储介质 | |
CN114095171A (zh) | 一种基于身份的可穿刺代理重加密方法 | |
CN108933659B (zh) | 一种智能电网的身份验证系统及验证方法 | |
CN114826611A (zh) | 一种基于国密SM9的IND-sID-CCA2安全标识广播加密方法 | |
Backes et al. | Fully secure inner-product proxy re-encryption with constant size ciphertext | |
Tahat et al. | A new digital signature scheme with message recovery using hybrid problems |
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 |