CN106534077A - 一种基于对称密码的可认证的代理重加密系统及方法 - Google Patents

一种基于对称密码的可认证的代理重加密系统及方法 Download PDF

Info

Publication number
CN106534077A
CN106534077A CN201610905480.5A CN201610905480A CN106534077A CN 106534077 A CN106534077 A CN 106534077A CN 201610905480 A CN201610905480 A CN 201610905480A CN 106534077 A CN106534077 A CN 106534077A
Authority
CN
China
Prior art keywords
key
encryption
message
authentication code
polynomial
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
Application number
CN201610905480.5A
Other languages
English (en)
Other versions
CN106534077B (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.)
South China University of Technology SCUT
Original Assignee
South China University of Technology SCUT
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 South China University of Technology SCUT filed Critical South China University of Technology SCUT
Priority to CN201610905480.5A priority Critical patent/CN106534077B/zh
Publication of CN106534077A publication Critical patent/CN106534077A/zh
Application granted granted Critical
Publication of CN106534077B publication Critical patent/CN106534077B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0471Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload applying encryption by an intermediary, e.g. receiving clear information at the intermediary and encrypting the received information at the intermediary before forwarding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种基于对称密码的可认证的代理重加密系统及方法,该系统由用户端和代理端组成,其中用户端用于向代理端发起重加密请求,它包括随机数生成器、密钥生成模块、加密模块、解密模块、密钥更新模块;代理端主要由重加密模块组成,对数据进行重加密。各个模块执行相应的运算、产生对应的输出。该系统没有采用公钥加密系统而是使用对称密码技术,大大提高了处理速度;加密系统中的伪随机函数PRF使用了Ring‑LWR、SHA1及SHA256方法来生成,具有同态性质,该系统在实现代理重加密的同时实现了消息完整性的认证,从而验证消息是否被恶意篡改。

Description

一种基于对称密码的可认证的代理重加密系统及方法
技术领域
本发明涉及信息安全的技术领域,特别涉及一种基于对称密码的可认证的代理重加密系统及方法。
背景技术
密码技术,是信息安全的核心和基础,广泛用于网络通信、电子商务、银行、国防军事等领域。密码技术包括对称密码和非对称密码,非对称密码也称为公钥密码。
在目前的云服务模型中,用户将加密后的数据存放在不可靠的云服务器当中。由于安全策略或信息分享等原因,数据的加密密钥有可能需要经常改变。传统的方案是将数据从云服务器当中取回后用原来的密钥解密,之后再用新的密钥进行加密并传回云服务器。但这种方案显然效率低下,不具有可扩展性。在这种背景之下,代理重加密方案应运而生。
代理重加密是一种能够将密文在不同的密钥之间相互转换的密码学技术。在代理重加密系统中,用户首先根据自己的新旧密钥生成重加密密钥,并将其发送给代理服务器。代理服务器在获得重加密密钥后,能够在不解密的情况下,将原密钥下的密文转换成为新密钥下的密文。用户使用新密钥即可对其进行解密。
传统的代理重加密方案采用的是公钥密码体制,其显著弊端在于计算量大,加密速度相当慢,无法适应如今大数据时代的需求,实用性大打折扣。而且目前的代理重加密方案无法验证消息的可靠性,无法保证消息不被恶意篡改,对安全性同样造成了很大威胁。
因此,在保证实现代理重加密的情况下,目前亟待提出一种基于对称密码技术的、可验证消息正确性、完整性的代理重加密系统。
发明内容
本发明的目的在于克服现有技术的缺点与不足,提供一种基于对称密码的可认证的代理重加密系统及方法,该系统大大提高了代理重加密的速度,而且能够确认消息是否被恶意篡改。
本发明的第一个目的通过下述技术方案实现:
一种基于对称密码的可认证的代理重加密系统,所述系统包括:
用户端,用于向代理端发起重加密请求,包括随机数生成器、密钥生成模块、加密模块、解密模块和密钥更新模块,当需要对数据进行重加密时,所述随机数生成器首先生成一个随机数,用所述密钥生成模块生成新的加密密钥和新的认证密钥,然后通过所述密钥更新模块生成重加密密钥和认证变换密钥,然后将该随机数、重加密密钥与认证变换密钥一起发送给所述代理端的重加密模块,同时,所述加密模块和所述解密模块还能够对数据进行加解密操作;
代理端,用于保存用户的密文,同时对用户端发送过来的重加密请求进行处理,并对数据进行重加密并生成新的消息认证码。
进一步地,所述随机数生成器,用于生成随机数;
所述密钥生成模块,用于生成加密密钥与认证密钥;
所述密钥更新模块,用于根据新的加密密钥和认证密钥,生成重加密密钥和认证变换密钥,其包含一个逆元生成器,用于生成某个元素的逆元。
进一步地,所述加密模块,用于对消息明文进行加密,该模块包括多项式运算部件和消息认证码生成部件,其中,所述多项式运算部件首先将输入的两个字符串参数分别转换成两个多项式的系数,即转换成为两个多项式,接着对该两个多项式进行多项式环上的乘法运算;所述消息认证码生成部件用于生成与消息对应的认证码,以备后续检测之用。
进一步地,所述解密模块,用于对密文进行解密,该模块包括多项式运算部件与校验部件,其中,所述多项式运算部件首先将输入的两个字符串参数分别转换成两个多项式的系数,即转换成为两个多项式,接着对该两个多项式进行多项式环上的乘法运算;所述校验部件用于检测消息认证码是否正确,若正确则返回解密之后的消息,否则返回解密失败;
其中,所述校验部件包含一个DDH群映射器,用于将一个哈希值映射到DDH群上。
进一步地,所述代理端包括重加密模块,用于响应用户请求,根据用户端传递过来的重加密密钥和认证变换密钥对数据进行重加密,并更新消息认证码;该重加密模块包括多项式运算部件与消息认证码更新部件,其中,所述多项式运算部件首先将输入的两个字符串参数分别转换成两个多项式的系数,即转换成为两个多项式,接着对该两个多项式进行多项式环上的乘法运算;所述消息认证码更新部件根据用户端传递过来的认证变换密钥,对原来的消息认证码进行处理,生成新认证密钥下的消息认证码;
其中,所述消息认证码生成部件包括一个DDH群映射器,用于将一个哈希值映射到DDH群上。
本发明的第二个目的通过下述技术方案实现:
一种基于对称密码的可认证的代理重加密方法,所述方法包括下列步骤:
用户端生成参数步骤,该步骤具体为:
S101、选择并生成公共参数;
S102、根据公共参数,通过密钥生成模块生成新的加密密钥、新的认证密钥以及DDH群;
S103、若需要发起重加密请求,则将新的加密密钥和新的认证密钥传递给密钥更新模块,生成重加密密钥和认证变换密钥,然后将这两个密钥发送给代理端的重加密模块;
S104、若需要对数据进行加密,则将消息明文、加密密钥和认证密钥传递给加密模块;
重加密过程步骤,该步骤具体为:
S201、重加密模块接收用户端传递过来的重加密密钥和认证变换密钥;
S202、调用多项式运算部件,对重加密密钥与一个随机数进行处理,输出处理结果;
S203、将上一步的处理结果与原来的密文进行运算;
S204、调用消息认证码更新部件,根据认证变换密钥对原密钥下的消息认证码进行运算,将步骤S202中的随机数、步骤S203中的运算结果及新密钥下的消息认证码一起作为新密钥下的密文输出;
加密过程步骤,该步骤具体为:
S301、加密模块接收消息明文、加密密钥与一个随机数作为输入;
S302、调用多项式运算部件,对加密密钥与该随机数进行处理,输出处理结果;
S303、将上一步的处理结果与消息明文进行运算;
S304、调用消息认证码生成部件,生成该消息的消息认证码,将步骤S301中的随机数、步骤S303的运算结果及消息认证码一起作为密文输出;
解密过程步骤,该步骤具体为:
S401、解密模块接收消息密文。
S402、调用多项式运算部件,对加密密钥与一随机数进行处理,输出处理结果;
S403、将上一步的处理结果与消息密文进行运算,得到消息明文。
S404、计算解密出的消息明文的消息认证码,若它与收到的消息认证码相同,则返回该明文,否则返回解密失败。
进一步地,所述用户端生成参数步骤具体如下:
选择合适的公共参数p,q,n,r,p′,q′。其中,p,q是与多项式环相关的参数,r为随机数,p′,q′是与DDH群相关的参数;
根据上述公共参数,生成新的加密密钥(ske_2)ske_1、新的认证密钥(skm_1)skm_2和群GDDH
若需要发起重加密请求,则将ske_2与skm_2传递给密钥更新模块,生成重加密密钥rke=ske_2-ske_1,并计算skm_1模q′的逆元然后计算认证变换密钥然后将rke与rkm发送给代理端的重加密模块;
若需要对数据进行加密,则将消息明文m、加密密钥ske_1和认证密钥skm_1传递给加密模块。
进一步地,所述重加密过程步骤具体如下:
接收用户端传递过来的重加密密钥rke和认证变换密钥rkm
调用多项式运算部件PRFe,该部件以ske(ske可以是ske_1或ske_2)和r作为输入,计算其中,运算表示计算不大于x的最大整数,运算表示将x与p/q相乘的结果近似到不大于它的最大整数,<x,y>运算表示将x和y转换成多项式形式之后,进行多项式环上的多项式乘法;
计算
调用认证码更新部件,该部件以认证变换密钥rkm与原密钥下的消息认证码t1作为输入,计算即为新密钥下的消息认证码,将随机数r,c2与t2一起作为新的密文输出。
进一步地,所述加密过程步骤具体如下:
接收需要加密的消息m、加密密钥ske_1与随机数r;
调用多项式运算部件PRFe,该部件以ske_1和r作为输入,计算其中,运算表示将x与p/q相乘的结果近似到不大于它的最大整数,<x,y>运算表示将x和y转换成多项式形式之后,进行多项式环上的多项式乘法;
计算c1=(m+PRFe(ske_1,r))mod q;
调用认证码生成部件,该部件以消息m、认证密钥skm_1与随机数r作为输入,首先计算哈希值Hm(r||m),然后使用DDH群映射器将其映射到群GDDH上,映射方法如下所示:
Hm_DDH=((Hm(r||m)mod p′)2)mod p′,
然后计算消息认证码:
将随机数r,c1与t1一起作为密文输出。
进一步地,所述解密过程步骤具体如下:
S401、解密模块接收数据密文c和消息认证码t;
S402、调用多项式运算部件PRFe,该部件以ske(ske可以是ske_1或ske_2)和r作为输入,计算其中,运算表示将x与p/q相乘的结果近似到不大于它的最大整数,<x,y>运算表示将x和y转换成多项式形式之后,进行多项式环上的多项式乘法;
计算
调用校验部件,该部件以消息m、认证密钥skm(skm可以是skm_1或skm_2)与随机数r作为输入,首先计算哈希值Hm(r||m),然后使用DDH群映射器将其映射到群GDDH上,映射方法如下所示:
Hm_DDH=((Hm(r||m)mod p′)2)mod p′,
然后计算消息认证码
如果t′=t,则返回m,否则认证失败,认为消息被篡改,返回解密失败。
本发明相对于现有技术具有如下的优点及效果:
1、本发明使用了对称密码技术,目前的代理重加密方案采用的是公钥密码体制,即其加密体系中采用了一对公私钥。公钥代理重加密的显著弊端在于计算量大,加密速度相当慢,完全无法适应如今大数据时代的需求。而本系统采用对称密码技术,大大提高了重加密的效率。
2、本发明在实现代理重加密的同时,还实现了消息的认证机制,能够认证消息是否在重加密的过程中被恶意篡改,从而保护消息的完整性、正确性。而目前的代理重加密方案,只能做到在重加密的过程中保证数据不会泄露,但无法保证恶意代理不会篡改消息内容,本系统方案很好地解决了恶意篡改消息的问题。
附图说明
图1为本发明公开的一种基于对称密码的可认证的代理重加密系统的结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例
本实施例公开了一种基于对称密码的可认证的代理重加密系统,如附图1所示,该系统包括:
1)用户端
用户端用于向代理端发起重加密请求。它包括随机数生成器、密钥生成模块、加密模块、解密模块和密钥更新模块。当需要对数据进行重加密时,随机数生成器首先生成一个随机数,用密钥生成模块生成新的加密密钥和新的认证密钥,然后通过密钥更新模块生成重加密密钥和认证变换密钥,然后将该随机数、重加密密钥与认证变换密钥一起发送给代理端的重加密模块。除了能够向代理端发起重加密请求,用户端还能够对数据进行加解密操作。
随机数生成器,用于生成系统当中用到的随机数。同时,在使用前,随机数生成器还需初始化一些系统参数。
密钥生成模块,用于生成加密密钥与认证密钥。
加密模块,用于对消息明文进行加密。它包含多项式运算部件(一个同态的PRF(pseudorandom function,伪随机函数))和消息认证码生成部件。其中,多项式运算部件首先将输入的两个字符串参数分别转换成两个多项式的系数,即将它们转换成为两个多项式,接着对这两个多项式进行多项式环上的乘法运算;消息认证码生成部件用于生成与消息对应的认证码,以备后续检测之用。
解密模块,用于对密文进行解密。它包含多项式运算部件(一个同态的PRF(pseudorandom function,伪随机函数))与校验部件。其中,多项式运算部件首先将输入的两个字符串参数分别转换成两个多项式的系数,即将它们转换成为两个多项式,接着对这两个多项式进行多项式环上的乘法运算;校验部件用于检测消息认证码是否正确,若正确则返回解密之后的消息,否则返回解密失败。
其中,校验部件包含一个DDH群映射器,用于将一个哈希值映射到DDH群上。
密钥更新模块,用于根据新的加密密钥和认证密钥,生成重加密密钥和认证变换密钥。其包含一个逆元生成器,用于生成某个元素的逆元。
2)代理端
代理端保存了用户的密文,同时对用户端发送过来的重加密请求进行处理,并对数据进行重加密并生成新的消息认证码。
代理端包括重加密模块,用于响应用户请求,根据用户端传递过来的重加密密钥和认证变换密钥对数据进行重加密,并更新消息认证码。该模块由多项式运算部件(一个同态的PRF(pseudorandom function,伪随机函数))与消息认证码更新部件组成。其中,多项式运算部件首先将输入的两个字符串参数分别转换成两个多项式的系数,即将它们转换成为两个多项式,接着对这两个多项式进行多项式环上的乘法运算;认证码更新部件根据用户端传递过来的认证变换密钥,对原来的消息认证码进行处理,生成新认证密钥下的消息认证码。
消息认证码生成部件包括一个DDH群映射器,用于将一个哈希值映射到DDH群上。
本实施例还公开了一种基于对称密码的可认证的代理重加密方法,该方法运行在上述公开的基于对称密码的可认证的代理重加密系统上,包含以下步骤:
S1、用户端生成参数:
S101、选择并生成公共参数;
S102、根据公共参数,通过密钥生成模块生成新的加密密钥、新的认证密钥以及DDH群;
S103、若需要发起重加密请求,则将新的加密密钥和新的认证密钥传递给密钥更新模块,生成重加密密钥和认证变换密钥。然后将这两个密钥发送给代理端的重加密模块。
S104、若需要对数据进行加密,则将消息明文、加密密钥和认证密钥传递给加密模块。
S2、重加密过程:
S201、重加密模块接收用户端传递过来的重加密密钥和认证变换密钥。
S202、调用多项式运算部件,对重加密密钥与一个随机数(系统的一个公共参数)进行处理,输出处理结果;
S203、将上一步的处理结果与原来的密文进行运算;
S204、调用消息认证码更新部件,根据认证变换密钥对原密钥下的消息认证码进行运算,将步骤S202中的随机数、步骤S203中的运算结果及新密钥下的消息认证码一起作为新密钥下的密文输出。
S3、加密过程:
S301、加密模块接收消息明文、加密密钥与一个随机数(同上,为系统公共参数)作为输入;
S302、调用多项式运算部件,对加密密钥与该随机数进行处理,输出处理结果;
S303、将上一步的处理结果与消息明文进行运算;
S304、调用消息认证码生成部件,生成该消息的消息认证码,将步骤S301中的随机数、步骤S303的运算结果及消息认证码一起作为密文输出。
S4、解密过程:
S401、解密模块接收消息密文。
S402、调用多项式运算部件,对加密密钥与一随机数(同上,为系统公共参数)进行处理,输出处理结果。
S403、将上一步的处理结果与消息密文进行运算,得到消息明文。
S404、计算解密出的消息明文的消息认证码,若它与收到的消息认证码相同,则返回该明文,否则返回解密失败。
具体应用中,所述步骤S1、用户端生成参数具体步骤如下:
S101、选择合适的公共参数p,q,n,r,p′,q′。其中,p,q是与多项式环相关的参数,r为随机数,p′,q′是与DDH群相关的参数;
S102、根据这些公共参数,生成新的加密密钥(ske_2)ske_1、新的认证密钥(skm_1)skm_2和群GDDH
S103、若需要发起重加密请求,则将ske_2与skm_2传递给密钥更新模块,生成重加密密钥rke=ske_2-ske_1,并计算skm_1模q′的逆元然后计算认证变换密钥然后将rke与rkm发送给代理端的重加密模块;
S104、若需要对数据进行加密,则将消息明文m、加密密钥ske_1和认证密钥skm_1传递给加密模块。
所述步骤S2、重加密过程具体步骤如下:
S201、接收用户端传递过来的重加密密钥rke和认证变换密钥rkm
S202、调用多项式运算部件PRFe,该部件以ske(ske可以是ske_1或ske_2)和r作为输入,计算其中,运算表示计算不大于x的最大整数。运算表示将x与p/q相乘的结果近似到不大于它的最大整数。<x,y>运算表示将x和y转换成多项式形式之后,进行多项式环上的多项式乘法(即将多项式相乘之后的结果模xn+1);
S203、计算
S204、调用认证码更新部件,该部件以认证变换密钥rkm与原密钥下的消息认证码t1作为输入,计算即为新密钥下的消息认证码。将随机数r,c2与t2一起作为新的密文输出。
所述步骤S3、加密过程具体步骤如下:
S301、接收需要加密的消息m、加密密钥ske_1与随机数r;
S302、调用多项式运算部件PRFe,该部件以ske_1和r作为输入,计算其中,运算表示将x与p/q相乘的结果近似到不大于它的最大整数。<x,y>运算表示将x和y转换成多项式形式之后,进行多项式环上的多项式乘法(即将多项式相乘之后的结果模xn+1);
S303、计算c1=(m+PRFe(ske_1,r))mod q;
S304、调用认证码生成部件,该部件以消息m、认证密钥skm_1与随机数r作为输入,首先计算哈希值Hm(r||m),然后使用DDH群映射器将其映射到群GDDH上,映射方法如下所示:
Hm_DDH=((Hm(r||m)mod p′)2)mod p′,
然后计算消息认证码:
将随机数r,c1与t1一起作为密文输出。
所述步骤S4、解密过程具体步骤如下:
S401、解密模块接收数据密文c和消息认证码t;
S402、调用多项式运算部件PRFe。该部件以ske(ske可以是ske_1或ske_2)和r作为输入,计算其中,运算表示将x与p/q相乘的结果近似到不大于它的最大整数。<x,y>运算表示将x和y转换成多项式形式之后,进行多项式环上的多项式乘法(即将多项式相乘之后的结果模xn+1);
S403、计算
S404、调用校验部件,该部件以消息m、认证密钥skm(skm可以是skm_1或skm_2)与随机数r作为输入,首先计算哈希值Hm(r||m),然后使用DDH群映射器将其映射到群GDDH上,映射方法如下所示:
Hm_DDH=((Hm(r||m)mod p′)2)mod p′,
然后计算消息认证码
如果t′=t,则返回m,否则认证失败,认为消息被篡改,返回解密失败。
下面以一个具体的例子来详细介绍系统运行过程:
一、系统参数设置与哈希函数选择:
(1)在本例中,系统运行的参数为
p=10,q=213+1=12289,n=10,r=1,q′=11,p′=2q′+1=23。
(2)选取He(x)=SHA1(x),Hm(x)=SHA256(x);
二、加密过程:
(1)因为n=10,所以消息的长度为10,假设待加密消息为m=[6,3,9,6,6,9,3,6,3,9](因为采用多项式环上的多项式乘法的方式进行重加密后,解密时会引入{-1,0,1}的误差,为了使本系统具有容错性,、将消息选择为3的倍数)。
(2)计算r的SHA1值:
He(r)=He(1)=SHA(1)=356a192b7913b04c54574d18c28d46e6395428ab
将这十六进制的字符串按每16位的长度拆分开:
356a|192b|7913|b04c|5457|4d18|c28d|46e6|3954|28ab,
转换为十进制为:
13674|6438|30995|45132|21591|19736|49805|18150|14676|10471
对每一项进行模q运算,得到多项式系数:
[1358,6438,6417,8265,9302,7447,649,5861,2387,10471]
(3)生成加密密钥ske
这里选取加密密钥ske
[10471,2387,5861,649,7447,9302,8265,6417,6438,1358],
同样将其看成是一个多项式的系数。
(4)计算即首先计算两个多项式He(r)和ske的乘积:
He(r)=1358+6438*x1+6417*x2+8265*x3+9302*x4
+7447*x5+649*x6+5861*x7+2387*x8+10471*x9
ske=10471+2387*x1+5861*x2+649*x3+7447*x4
+9302*x5+8265*x6+6417*x7+6438*x8+1358*x9
<He(r),ske>mod(x10+1)=263+7731*x1+4529*x2
+9891*x3+2398*x5+7760*x6+4558*x7
+12026*x8+3178*x9
将每个系数乘以p/q,并将结果近似到不大于它的最大整数(如8.6近似为8、6.1近似为6),可得PRFe(ske,r)的最终结果为
[0,6,3,8,0,1,6,3,9,2]。
(5)加密:
将m与步骤(4)中的最终结果相加之后模p:
(m+PRFe(ske,r))mod p=
([6,3,9,6,6,9,3,6,3,9]+[0,6,3,8,0,1,6,3,9,2])mod p=
[6,9,2,4,6,0,9,9,2,1],
即c1=[6,9,2,4,6,0,9,9,2,1]。
三、生成消息认证码:
(1)计算r||m=16396693639,选择认证密钥skm
(2)计算这里将Hm选定为SHA256,为了描述方便,将skm选定为3。
计算Hm_DDH=((Hm(r||m)mod q′)2)mod q′=4,
所以,此即为消息认证码。
即密文为
(r,c1,t1)=(1,[6,9,2,4,6,0,9,9,2,1],18)。
四、解密过程:
(1)和加密过程类似,由于用户自己是知道加密密钥ske的,所以可以计算PRFe(ske,r)=[0,6,3,8,0,1,6,3,9,2]。
(2)计算
m=(c-PRFe(ske,r))modp=
([6,9,2,4,6,0,9,9,2,1]-[0,6,3,8,0,1,6,3,9,2])mod10=
[6,3,9,6,6,9,3,6,3,9]。
可以看到,正确解密出了原始的消息。
五、重加密过程:
(1)设原始的加密密钥为ske_1,新的加密密钥为ske_2
ske_1=[10471,2387,5861,649,7447,9302,8265,6417,6438,1358],
ske_2=[10476,2382,5864,679,8447,9342,8295,6517,7438,558]。
计算重加密密钥:
rke=ske_1-ske_2=[5,12284,3,30,1000,40,30,100,1000,11489]。
rke写成多项式的形式为:
rke=5+12284*x1+3*x2+30*x3+1000*x4
+40*x5+30*x6+100*x7+1000*x8+11489*x9
计算
计算c2
c2=c1+PRFe(rke,r)=([6,9,2,4,6,0,9,9,2,1]+[8,9,3,7,5,5,2,1,9,4])p
=[4,8,5,1,1,5,1,0,1,5]。
六、更新认证码:
(1)选择一个新的认证密钥skm_2,为描述方便起见,将skm_2设为9。
(2)计算认证码更新密钥
rkm=(skm_2·skm_1 -1)mod q′=9·4mod 11=3。
(3)计算新认证密钥下的消息认证码:
此即为新的消息认证码。重加密后的密文为
(r,c2,t2)=(1,[4,8,5,1,1,5,1,0,1,5],13)。
七、重加密后的解密以及验证消息认证码:
为了验证经过重加密后的消息是否被更改,必须要对消息认证码进行验证。
(1)首先,要对重加密后的密文进行解密:
和解密过程类似,但是这里用来解密的密钥是
ske_2=[10476,2382,5864,679,8447,9342,8295,6517,7438,558]。
由于会有{-1,0,1}的误差,因此需要采用容错机制,在这个实例中,将消息都设置为3的倍数,因此在产生误差之时能够进行纠错:
a.解密结果中已经是3的倍数的不需要改变;
b.将不是3的倍数的解密结果近似到距它最近的3的倍数,即进行如下变换:8→9;5→6;2→3;
经过纠错之后,得到的解密结果为:
m=[6,3,9,6,6,9,3,6,3,9]。
(2)解密之后,用新的认证密钥skm_2计算消息认证码:
新的消息认证码
对比t′和t2,它们相等,说明消息没有被恶意篡改。
(3)若t′和t2相等,返回解密后的m,否则说明消息被恶意篡改,返回解密失败。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (10)

1.一种基于对称密码的可认证的代理重加密系统,其特征在于,所述系统包括:
用户端,用于向代理端发起重加密请求,包括随机数生成器、密钥生成模块、加密模块、解密模块和密钥更新模块,当需要对数据进行重加密时,所述随机数生成器首先生成一个随机数,用所述密钥生成模块生成新的加密密钥和新的认证密钥,然后通过所述密钥更新模块生成重加密密钥和认证变换密钥,然后将该随机数、重加密密钥与认证变换密钥一起发送给所述代理端的重加密模块,同时,所述加密模块和所述解密模块还能够对数据进行加解密操作;
代理端,用于保存用户的密文,同时对用户端发送过来的重加密请求进行处理,并对数据进行重加密并生成新的消息认证码。
2.根据权利要求1所述的一种基于对称密码的可认证的代理重加密系统,其特征在于,
所述随机数生成器,用于生成随机数;
所述密钥生成模块,用于生成加密密钥与认证密钥;
所述密钥更新模块,用于根据新的加密密钥和认证密钥,生成重加密密钥和认证变换密钥,其包含一个逆元生成器,用于生成某个元素的逆元。
3.根据权利要求1所述的一种基于对称密码的可认证的代理重加密系统,其特征在于,
所述加密模块,用于对消息明文进行加密,该模块包括多项式运算部件和消息认证码生成部件,其中,所述多项式运算部件首先将输入的两个字符串参数分别转换成两个多项式的系数,即转换成为两个多项式,接着对该两个多项式进行多项式环上的乘法运算;所述消息认证码生成部件用于生成与消息对应的认证码,以备后续检测之用。
4.根据权利要求1所述的一种基于对称密码的可认证的代理重加密系统,其特征在于,
所述解密模块,用于对密文进行解密,该模块包括多项式运算部件与校验部件,其中,所述多项式运算部件首先将输入的两个字符串参数分别转换成两个多项式的系数,即转换成为两个多项式,接着对该两个多项式进行多项式环上的乘法运算;所述校验部件用于检测消息认证码是否正确,若正确则返回解密之后的消息,否则返回解密失败;
其中,所述校验部件包含一个DDH群映射器,用于将一个哈希值映射到DDH群上。
5.根据权利要求1所述的一种基于对称密码的可认证的代理重加密系统,其特征在于,
所述代理端包括重加密模块,用于响应用户请求,根据用户端传递过来的重加密密钥和认证变换密钥对数据进行重加密,并更新消息认证码;该重加密模块包括多项式运算部件与消息认证码更新部件,其中,所述多项式运算部件首先将输入的两个字符串参数分别转换成两个多项式的系数,即转换成为两个多项式,接着对该两个多项式进行多项式环上的乘法运算;所述消息认证码更新部件根据用户端传递过来的认证变换密钥,对原来的消息认证码进行处理,生成新认证密钥下的消息认证码;
其中,所述消息认证码生成部件包括一个DDH群映射器,用于将一个哈希值映射到DDH群上。
6.一种基于对称密码的可认证的代理重加密方法,其特征在于,所述方法包括下列步骤:
用户端生成参数步骤,该步骤具体为:
S101、选择并生成公共参数;
S102、根据公共参数,通过密钥生成模块生成新的加密密钥、新的认证密钥以及DDH群;
S103、若需要发起重加密请求,则将新的加密密钥和新的认证密钥传递给密钥更新模块,生成重加密密钥和认证变换密钥,然后将这两个密钥发送给代理端的重加密模块;
S104、若需要对数据进行加密,则将消息明文、加密密钥和认证密钥传递给加密模块;
重加密过程步骤,该步骤具体为:
S201、重加密模块接收用户端传递过来的重加密密钥和认证变换密钥;
S202、调用多项式运算部件,对重加密密钥与一个随机数进行处理,输出处理结果;
S203、将上一步的处理结果与原来的密文进行运算;
S204、调用消息认证码更新部件,根据认证变换密钥对原密钥下的消息认证码进行运算,将步骤S202中的随机数、步骤S203中的运算结果及新密钥下的消息认证码一起作为新密钥下的密文输出;
加密过程步骤,该步骤具体为:
S301、加密模块接收消息明文、加密密钥与一个随机数作为输入;
S302、调用多项式运算部件,对加密密钥与该随机数进行处理,输出处理结果;
S303、将上一步的处理结果与消息明文进行运算;
S304、调用消息认证码生成部件,生成该消息的消息认证码,将步骤S301中的随机数、步骤S303的运算结果及消息认证码一起作为密文输出;
解密过程步骤,该步骤具体为:
S401、解密模块接收消息密文;
S402、调用多项式运算部件,对加密密钥与一随机数进行处理,输出处理结果;
S403、将上一步的处理结果与消息密文进行运算,得到消息明文;
S404、计算解密出的消息明文的消息认证码,若它与收到的消息认证码相同,则返回该明文,否则返回解密失败。
7.根据权利要求6所述的一种基于对称密码的可认证的代理重加密方法,其特征在于,所述用户端生成参数步骤具体如下:
选择合适的公共参数p,q,n,r,p′,q′,其中,p,q是与多项式环相关的参数,r为随机数,p′,q′是与DDH群相关的参数;
根据上述公共参数,生成加密密钥ske_1、认证密钥skm_1或新的加密密钥ske_2、新的认证密钥skm_2和群GDDH
若需要发起重加密请求,则将ske_2与skm_2传递给密钥更新模块,生成重加密密钥rke=ske_2-ske_1,并计算skm_1模q′的逆元然后计算认证变换密钥然后将rke与rkm发送给代理端的重加密模块;
若需要对数据进行加密,则将消息明文m、加密密钥ske_1和认证密钥skm_1传递给加密模块。
8.根据权利要求6所述的一种基于对称密码的可认证的代理重加密方法,其特征在于,所述重加密过程步骤具体如下:
接收用户端传递过来的重加密密钥rke和认证变换密钥rkm
调用多项式运算部件PRFe,该部件以ske(ske可以是ske_1或ske_2)和r作为输入,计算其中,运算表示计算不大于x的最大整数,运算表示将x与p/q相乘的结果近似到不大于它的最大整数,<x,y>运算表示将x和y转换成多项式形式之后,进行多项式环上的多项式乘法;
计算
调用认证码更新部件,该部件以认证变换密钥rkm与原密钥下的消息认证码t1作为输入,计算即为新密钥下的消息认证码,将随机数r,c2与t2一起作为新的密文输出。
9.根据权利要求6所述的一种基于对称密码的可认证的代理重加密方法,其特征在于,所述加密过程步骤具体如下:
接收需要加密的消息m、加密密钥ske_1与随机数r;
调用多项式运算部件PRFe,该部件以ske_1和r作为输入,计算其中,运算表示将x与p/q相乘的结果近似到不大于它的最大整数,<x,y>运算表示将x和y转换成多项式形式之后,进行多项式环上的多项式乘法;
计算c1=(m+PRFe(ske_1,r))mod q;
调用认证码生成部件,该部件以消息m、认证密钥skm_1与随机数r作为输入,首先计算哈希值Hm(r||m),然后使用DDH群映射器将其映射到群GDDH上,映射方法如下所示:
Hm_DDH=((Hm(r||m)mod p′)2)mod p′,
然后计算消息认证码:
t 1 = PRF m ( sk m _ 1 , r | | m ) = ( H m _ D D H sk m _ 1 ) mod p &prime; ,
将随机数r,c1与t1一起作为密文输出。
10.根据权利要求6所述的一种基于对称密码的可认证的代理重加密方法,其特征在于,所述解密过程步骤具体如下:
S401、解密模块接收数据密文c和消息认证码t;
S402、调用多项式运算部件PRFe,该部件以ske(ske可以是ske_1或ske_2)和r作为输入,计算其中,运算表示将x与p/q相乘的结果近似到不大于它的最大整数,<x,y>运算表示将x和y转换成多项式形式之后,进行多项式环上的多项式乘法;
计算
调用校验部件,该部件以消息m、认证密钥skm(skm可以是skm_1或skm_2)与随机数r作为输入,首先计算哈希值Hm(r||m),然后使用DDH群映射器将其映射到群GDDH上,映射方法如下所示:
Hm_DDH=((Hm(r||m)mod p′)2)mod p′,
然后计算消息认证码
t &prime; = PRF m ( sk m , r | | m ) = ( H m _ D D H sk m ) mod p &prime; ,
如果t′=t,则返回m,否则认证失败,认为消息被篡改,返回解密失败。
CN201610905480.5A 2016-10-18 2016-10-18 一种基于对称密码的可认证的代理重加密系统及方法 Active CN106534077B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610905480.5A CN106534077B (zh) 2016-10-18 2016-10-18 一种基于对称密码的可认证的代理重加密系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610905480.5A CN106534077B (zh) 2016-10-18 2016-10-18 一种基于对称密码的可认证的代理重加密系统及方法

Publications (2)

Publication Number Publication Date
CN106534077A true CN106534077A (zh) 2017-03-22
CN106534077B CN106534077B (zh) 2019-08-20

Family

ID=58332218

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610905480.5A Active CN106534077B (zh) 2016-10-18 2016-10-18 一种基于对称密码的可认证的代理重加密系统及方法

Country Status (1)

Country Link
CN (1) CN106534077B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108270562A (zh) * 2017-11-21 2018-07-10 中国科学院软件研究所 一种抗量子密钥协商方法
CN111224943A (zh) * 2019-11-21 2020-06-02 天津天睿科技有限公司 一种互联网加密传输数据方法
CN113849840A (zh) * 2021-10-13 2021-12-28 福建师范大学 基于可认证加密计数器的加密数据统计分析方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103731261A (zh) * 2014-01-09 2014-04-16 西安电子科技大学 加密重复数据删除场景下的密钥分发方法
CN104320393A (zh) * 2014-10-24 2015-01-28 西安电子科技大学 重加密可控的高效属性基代理重加密方法
US20150363607A1 (en) * 2014-06-13 2015-12-17 Bicdroid Inc Methods, systems and computer program product for providing encryption on a plurality of devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103731261A (zh) * 2014-01-09 2014-04-16 西安电子科技大学 加密重复数据删除场景下的密钥分发方法
US20150363607A1 (en) * 2014-06-13 2015-12-17 Bicdroid Inc Methods, systems and computer program product for providing encryption on a plurality of devices
CN104320393A (zh) * 2014-10-24 2015-01-28 西安电子科技大学 重加密可控的高效属性基代理重加密方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108270562A (zh) * 2017-11-21 2018-07-10 中国科学院软件研究所 一种抗量子密钥协商方法
CN108270562B (zh) * 2017-11-21 2020-05-01 中国科学院软件研究所 一种抗量子密钥协商方法
CN111224943A (zh) * 2019-11-21 2020-06-02 天津天睿科技有限公司 一种互联网加密传输数据方法
CN113849840A (zh) * 2021-10-13 2021-12-28 福建师范大学 基于可认证加密计数器的加密数据统计分析方法
CN113849840B (zh) * 2021-10-13 2023-06-09 福建师范大学 基于可认证加密计数器的加密数据统计分析方法

Also Published As

Publication number Publication date
CN106534077B (zh) 2019-08-20

Similar Documents

Publication Publication Date Title
US20220224551A1 (en) Mutual authentication of confidential communication
US12101415B2 (en) Method of RSA signature or decryption protected using a homomorphic encryption
CN108292402B (zh) 用于信息的安全交换的公共秘密的确定和层级确定性密钥
CN111314089B (zh) 一种基于sm2的两方协同签名方法及解密方法
CN107124274B (zh) 基于sm2的数字签名方法和装置
CN110401615B (zh) 一种身份认证方法、装置、设备、系统及可读存储介质
US8670563B2 (en) System and method for designing secure client-server communication protocols based on certificateless public key infrastructure
EP4176563B1 (en) Tls integration of post quantum cryptographic algorithms
CN112152792A (zh) 基于mts的相互认证的远程证明
WO2016026382A1 (zh) 一种密码的设置方法、装置和系统
EP3673610B1 (en) Computer-implemented system and method for highly secure, high speed encryption and transmission of data
US12034840B2 (en) Computer implemented system and method for sharing a common secret preliminary class
CN114726546B (zh) 数字身份认证方法、装置、设备和存储介质
CN111355582A (zh) 基于sm2算法的两方联合签名和解密的方法及系统
WO2023184858A1 (zh) 一种时间戳生成方法、装置、电子设备及存储介质
CN114448641A (zh) 一种隐私加密方法、电子设备、存储介质以及芯片
CN106534077B (zh) 一种基于对称密码的可认证的代理重加密系统及方法
CN111565108B (zh) 签名处理方法、装置及系统
CN113468582A (zh) 一种抗量子计算加密通信方法
CN110519225B (zh) 基于非对称密钥池和证书密码学的抗量子计算https通信方法和系统
US20240356730A1 (en) Computer-implemented system and method for highly secure, high speed encryption and transmission of data
CN110601841B (zh) Sm2协同签名及解密方法、装置
WO2023115602A1 (zh) 基于半可信硬件的互相关伪随机数的远程获取方法及装置
JP6153454B2 (ja) 署名装置、方法及びプログラム
CN117375851A (zh) 一种基于数字信封技术和sm2算法的两方安全协同签名验签方法

Legal Events

Date Code Title Description
C06 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