CN112347498A - 一种加密方法、装置、电子设备及可读存储介质 - Google Patents
一种加密方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN112347498A CN112347498A CN202011383233.6A CN202011383233A CN112347498A CN 112347498 A CN112347498 A CN 112347498A CN 202011383233 A CN202011383233 A CN 202011383233A CN 112347498 A CN112347498 A CN 112347498A
- Authority
- CN
- China
- Prior art keywords
- character string
- public key
- plaintext
- encrypted
- key pair
- 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
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 121
- 230000006870 function Effects 0.000 claims description 59
- 238000004891 communication Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000013478 data encryption standard Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/126—Character encoding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Bioethics (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例提供了一种加密方法、装置、电子设备及可读存储介质,该方法包括:基于待加密的明文和安全参数,确定第一字符串和第二字符串;随机获取第一预设长度的第三字符串,并基于第一哈希算法、第三字符串和待加密的明文,得到待加密的明文对应的第四字符串,基于第二哈希算法、第四字符串和第三字符串,得到待加密的明文对应的第五字符串,对第四字符串和第五字符串进行拼接,并采用公钥对中的第一公钥组将拼接得到的第一拼接字符串转换为第六字符串;对第六字符串、第一字符串和第二字符串进行拼接,并采用公钥对中的第二公钥组将拼接得到的第二拼接字符串转为第七字符串,得到待加密的明文对应的密文。从而可以减少密文对存储空间的占用。
Description
技术领域
本发明涉及加密技术领域,特别是涉及一种加密方法、装置、电子设备及可读存储介质。
背景技术
密码学在现代生活中应用越来越广泛,例如,应用于网上支付***、密码登陆***和手机通信中的信息加密等等。可见,密码学在保护数据安全性方面起着重要作用。密码学作为研究编制密码和破译密码的技术科学,包括加密和解密。通常情况下,加密与解密是相互对应的。
目前,常见的加密技术包括对称式加密技术和非对称式加密技术。例如,DES(DataEncryption Standard,数据加密标准)加密算法是一种典型的对称式加密技术,RSA加密算法是一种典型的非对称式加密技术。非对称式加密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,它们两个必需配对使用,否则不能打开加密文件。
然而,发明人发现,在采用现有技术中的RSA加密算法对明文进行加密得到明文对应的密文后,该密文的长度较长,从而使得密文占用的存储空间较大,增加了密文对存储空间的占用。
发明内容
本发明实施例的目的在于提供一种加密方法、装置、电子设备及可读存储介质,以实现减少密文对存储空间的占用。具体技术方案如下:
第一方面,本发明实施例提供了一种加密方法,该方法包括:
获取待加密的明文、安全参数和加密待加密的明文所使用的公钥对,其中,安全参数用于表征字符串的长度;
基于待加密的明文和安全参数,确定第一预设长度的第一字符串和第二字符串;
随机获取第一预设长度的第三字符串,并基于第一哈希算法、第三字符串和待加密的明文,得到待加密的明文对应的第四字符串,其中,第一哈希算法用于将第一预设长度的字符串转换为第二预设长度的字符串,第二预设长度由安全参数和第一预设长度确定;
基于第二哈希算法、第四字符串和第三字符串,得到待加密的明文对应的第五字符串,其中,第二哈希算法用于将第二预设长度的字符串转换为第一预设长度的字符串;
对第四字符串和第五字符串进行拼接,并采用公钥对中的第一公钥组将拼接得到的第一拼接字符串转换为第六字符串;
对第六字符串、第一字符串和第二字符串进行拼接,并采用公钥对中的第二公钥组将拼接得到的第二拼接字符串转为第七字符串,得到待加密的明文对应的密文。
可选的,获取加密待加密的明文所使用的公钥对的步骤,包括:
在预设素数表中选择第一素数对和第二素数对,其中,第一素数对和第二素数对分别包括两个素数;
计算第一素数对中的两个素数的第一乘积以及第一乘积的欧拉函数值;计算第二素数对中的两个素数的第二乘积以及第二乘积的欧拉函数值;
在预设整数表中选择第三整数和第四整数,其中,第三整数大于1且小于第一乘积的欧拉函数值;且第三整数与第一乘积的欧拉函数值的最大公约数为1;第四整数大于1且小于第二乘积的欧拉函数值;且第四整数与第二乘积的欧拉函数值的最大公约数为1;
将第三整数和第一乘积作为公钥对中的第一公钥组,将第四整数和第二乘积作为公钥对中的第二公钥组。
可选的,在将第三整数和第一乘积作为公钥对中的第一公钥组,将第四整数和第二乘积作为公钥对中的第二公钥组之后,该加密方法还包括:
基于第三整数、第一乘积的欧拉函数值,计算第三整数对于第一乘积的欧拉函数值的第一模反元素;
基于第四整数、第二乘积的欧拉函数值,计算第四整数对于第二乘积的欧拉函数值的第二模反元素;
将第一模反元素和第二模反元素作为与公钥对应的私钥对。
可选的,第一乘积为安全参数所表征的字符串长度的字符串;第二乘积的字符串长度为基于安全参数和第一预设长度所确定的第三预设长度。
可选的,基于待加密的明文和安全参数,确定第一预设长度的第一字符串和第二字符串,包括:
采用第三哈希算法和第四哈希算法对待加密的明文进行哈希运算,得到待加密的明文对应的第一整数和第二整数,其中,第三哈希算法和第四哈希算法用于将第二预设长度的字符串转换为整数;
以第一整数和第二整数为直角坐标系中的第一坐标点,并基于第一坐标点和直角坐标系中的坐标原点,确定第一坐标点所处的直线;
在第一坐标点所处的直线中选择除第一坐标点外的非零的第二坐标点,将第二坐标点的横坐标和纵坐标转换为第一字符串和第二字符串。
可选的,在采用公钥对中的第二公钥组将拼接得到的第二拼接字符串转为第七字符串,得到待加密的明文对应的密文之后,该加密方法还包括:
获取公钥对对应的私钥对,基于私钥对中的第二私钥和公钥对中的第二公钥组对密文进行解密,得到解密后的字符串;
从解密后的字符串中提取解密后的字符串的第一子字符串;
基于私钥对中的第一私钥和公钥对中的第一公钥组,对第一子字符串进行转化,得到转化后的子字符串;
基于转化后的子字符串和第二哈希算法,得到转化后的子字符串对应的第二子字符串;
基于转化后的子字符串、第二子字符串和第一哈希算法,得到解密后的明文。
可选的,在采用公钥对中的第二公钥组将拼接得到的第二拼接字符串转为第七字符串,得到待加密的明文对应的密文之后,该加密方法还包括:
获取公钥对对应的私钥对,基于私钥对中的第二私钥和公钥对中的第二公钥组对待测试密文进行解密,得到解密后的字符串;
提取解密后的字符串中第三子字符串和第四子字符串;
基于第三子字符串、第四子字符串、第一字符串和第二字符串,确定待加密的明文和待测试密文对应的明文是否相同。
第二方面,本发明实施例还提供了一种加密装置,该加密装置包括:
公钥对获取模块,用于获取待加密的明文、安全参数和加密待加密的明文所使用的公钥对,其中,安全参数用于表征字符串的长度;
第一确定模块,用于基于待加密的明文和安全参数,确定第一预设长度的第一字符串和第二字符串;
第二确定模块,用于随机获取第一预设长度的第三字符串,并基于第一哈希算法、第三字符串和待加密的明文,得到待加密的明文对应的第四字符串,其中,第一哈希算法用于将第一预设长度的字符串转换为第二预设长度的字符串,第二预设长度由安全参数和第一预设长度确定;
第三确定模块,用于基于第二哈希算法、第四字符串和第三字符串,得到待加密的明文对应的第五字符串,其中,第二哈希算法用于将第二预设长度的字符串转换为第一预设长度的字符串;
第一拼接模块,用于对第四字符串和第五字符串进行拼接,并采用公钥对中的第一公钥组将拼接得到的第一拼接字符串转换为第六字符串;
第二拼接模块,用于对第六字符串、第一字符串和第二字符串进行拼接,并采用公钥对中的第二公钥组将拼接得到的第二拼接字符串转为第七字符串,得到待加密的明文对应的密文。
可选的,公钥对获取模块,包括:
素数对获取子模块,用于在预设素数表中选择第一素数对和第二素数对,其中,第一素数对和第二素数对分别包括两个素数;
计算子模块,用于计算第一素数对中的两个素数的第一乘积以及第一乘积的欧拉函数值;计算第二素数对中的两个素数的第二乘积以及第二乘积的欧拉函数值;
选择子模块,用于在预设整数表中选择第三整数和第四整数,其中,第三整数大于1且小于第一乘积的欧拉函数值;且第三整数与第一乘积的欧拉函数值的最大公约数为1;第四整数大于1且小于第二乘积的欧拉函数值;且第四整数与第二乘积的欧拉函数值的最大公约数为1;
公钥对获取子模块,将第三整数和第一乘积作为公钥对中的第一公钥组,将第四整数和第二乘积作为公钥对中的第二公钥组。
可选的,该加密装置还包括:
私钥对获取模块,用于在将第三整数和第一乘积作为公钥对中的第一公钥组,将第四整数和第二乘积作为公钥对中的第二公钥组之后,基于第三整数、第一乘积的欧拉函数值,计算第三整数对于第一乘积的欧拉函数值的第一模反元素;基于第四整数、第二乘积的欧拉函数值,计算第四整数对于第二乘积的欧拉函数值的第二模反元素;将第一模反元素和第二模反元素作为与公钥对应的私钥对。
可选的,第一乘积为安全参数所表征的字符串长度的字符串;第二乘积的字符串长度为基于安全参数和第一预设长度所确定的第三预设长度。
可选的,第一确定模块,具体用于:
采用第三哈希算法和第四哈希算法对待加密的明文进行哈希运算,得到待加密的明文对应的第一整数和第二整数,其中,第三哈希算法和第四哈希算法用于将第二预设长度的字符串转换为整数;
以第一整数和第二整数为直角坐标系中的第一坐标点,并基于第一坐标点和直角坐标系中的坐标原点,确定第一坐标点所处的直线;
在第一坐标点所处的直线中选择除第一坐标点外的非零的第二坐标点,将第二坐标点的横坐标和纵坐标转换为第一字符串和第二字符串。
可选的,该加密装置还包括:
第一解密模块,用于在采用公钥对中的第二公钥组将拼接得到的第二拼接字符串转为第七字符串,得到待加密的明文对应的密文之后,获取公钥对对应的私钥对,基于私钥对中的第二私钥和公钥对中的第二公钥组对密文进行解密,得到解密后的字符串;
第一解密模块,还用于从解密后的字符串中提取解密后的字符串的第一子字符串;
第一解密模块,还用于基于私钥对中的第一私钥和公钥对中的第一公钥组,对第一子字符串进行转化,得到转化后的子字符串;
第一解密模块,还用于基于转化后的子字符串和第二哈希算法,得到转化后的子字符串对应的第二子字符串;
第一解密模块,还用于基于转化后的子字符串、第二子字符串和第一哈希算法,得到解密后的明文。
可选的,该加密装置还包括:
第二解密模块,用于在采用公钥对中的第二公钥组将拼接得到的第二拼接字符串转为第七字符串,得到待加密的明文对应的密文之后,获取公钥对对应的私钥对,基于私钥对中的第二私钥和公钥对中的第二公钥组对待测试密文进行解密,得到解密后的字符串;
第二提取模块,用于提取解密后的字符串中第三子字符串和第四子字符串;
判断模块,用于基于第三子字符串、第四子字符串、第一字符串和第二字符串,确定待加密的明文和待测试密文对应的明文是否相同。
第三方面,本发明实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一实施例所示的加密方法的步骤。
第四方面,本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,该计算机程序被处理器执行时实现上述任一实施例所示的加密方法的步骤。
第五方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一实施例所示的加密方法的步骤。
本发明实施例有益效果:
本发明实施例提供的一种加密方法、装置、电子设备及可读存储介质,可以先获取待加密的明文、用于表征字符串的长度的安全参数和加密待加密的明文所使用的公钥对,并基于待加密的明文和安全参数,确定第一预设长度的第一字符串和第二字符串;进而随机获取第一预设长度的第三字符串,并基于第一哈希算法、第三字符串和待加密的明文,得到待加密的明文对应的第四字符串,基于第二哈希算法、第四字符串和第三字符串,得到待加密的明文对应的第五字符串,然后对第四字符串和第五字符串进行拼接,并采用公钥对中的第一公钥组将拼接得到的第一拼接字符串转换为第六字符串;最后对第六字符串、第一字符串和第二字符串进行拼接,并采用公钥对中的第二公钥组将拼接得到的第二拼接字符串转为第七字符串,得到待加密的明文对应的密文。通过本发明实施例,仅需要进行两次拼接,从而可以减少加密后的到的密文的字符串的长度,从而可以减少密文对存储空间的占用。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明实施例的一种加密方法第一种实施方式的流程图;
图2为本发明实施例的一种加密方法第二种实施方式的流程图;
图3为本发明实施例的一种加密方法第三种实施方式的流程图;
图4为本发明实施例的一种加密方法第四种实施方式的流程图;
图5为本发明实施例的一种加密装置的结构示意图;
图6为本发明实施例的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在现有技术中,采用现有技术中的RSA加密算法对明文进行加密时,通常是先采用五个哈希算法对待加密的明文进行哈希运算,得到五个密文段,分别为:C1、C2、C3、C4和C5,然后采用公式C=C1||C2||C3||C4||C5对该五个密文段进行拼接,从而得到该待加密的明文对应的密文C,其中,||为拼接符。可见,这样的加密方式得到的密文的字符串长度通常是比较长的,这样便会使得密文占用的存储空间较大,增加了密文对存储空间的占用。
为了解决现有技术中存在的问题,本发明实施例提供了一种加密方法、装置、电子设备及可读存储介质,以实现减少密文对存储空间的占用。
下面,首先对本发明实施例的一种加密方法进行介绍,如图1所示,为本发明实施例的一种加密方法第一种实施方式的流程图,该方法可以包括:
S110,获取待加密的明文、安全参数和加密待加密的明文所使用的公钥对,其中,安全参数用于表征字符串的长度;
在一些示例中,在对待加密的明文进行加密时,可以先获取待加密的明文、加密该待加密的明文所要使用的公钥对,而为了使得对待加密的明文的加密具有更多的灵活度,可以设置一个用于表征字符串的长度的安全参数。用户可以针对不同重要度的明文,采用不同的安全参数,从而使得加密后获得的密文具有不同的安全等级。
S120,基于待加密的明文和安全参数,确定第一预设长度的第一字符串和第二字符串;
在获取到该待加密的明文、安全参数以及公钥对后,可以基于该待加密的明文和安全参数,来获取该待加密的明文对应的第一预设长度的第一字符串和第二字符串。
在一些示例中,在基于待加密的明文和安全参数,确定第一预设长度的第一字符串和第二字符串时,可以采用如下步骤来确定第一字符串和第二字符串:
步骤A,采用第三哈希算法和第四哈希算法对待加密的明文进行哈希运算,得到待加密的明文对应的第一整数和第二整数,其中,第三哈希算法和第四哈希算法用于将第二预设长度的字符串转换为整数;
步骤B,以第一整数和第二整数为直角坐标系中的第一坐标点,并基于第一坐标点和直角坐标系中的坐标原点,确定第一坐标点所处的直线;
步骤C,在第一坐标点所处的直线中选择除第一坐标点外的非零的第二坐标点,将第二坐标点的横坐标和纵坐标转换为第一字符串和第二字符串。
例如,假设待加密的明文为M,安全参数为k,则可以先基于安全参数k确定第二预设长度。具体的,可以将安全参数k减去第一预设长度k1,从而可以得到第二预设长度为k-k1。然后可以得到第三哈希算法和第四哈希算法也即,该第三哈希算法和第四哈希算法用于将包含有0和1的长度为k-k1的字符串转换为整数Zp。其中,该第一预设长度k1可以是预先设置的值,例如,可以设置为128。
因此,采用第三哈希算法和第四哈希算法,可以得到待加密的明文对应的第一整数H3(M)和第二整数H4(M)。从而可以基于该第一整数H3(M)和第二整数H4(M)得到直角坐标系中的第一坐标点P=(H3(M),H4(M)),进而可以基于第一坐标点P和坐标原点,来确定出该第一坐标点P所处的直线。然后从该直线中随机选择一个除该第一坐标点P外的非零的第二坐标点P'(x,y),再将第二坐标点P'(x,y)的横坐标x和纵坐标y转换为第一预设长度的第一字符串和第二字符串。
在一些示例中,可以采用第三哈希算法对应的反算法将第二坐标点的横坐标x转换为第一预设长度的第一字符串x1,采用第四哈希算法对应的反算法将第二坐标点的纵坐标y转换为第一预设长度的第二字符串y1。
S130,随机获取第一预设长度的第三字符串,基于第一哈希算法、第三字符串和待加密的明文,得到待加密的明文对应的第四字符串,其中,第一哈希算法用于将第一预设长度的字符串转换为第二预设长度的字符串,第二预设长度由安全参数和第一预设长度确定;
在一些示例中,为了对待加密的明文进行加密,本发明实施例还可以随机获取一个第一预设长度的第三字符串r1。然后基于第一哈希算法、第三字符串r1和待加密的明文M,得到待加密的明文对应的第二预设长度的第四字符串。其中,该第一哈希算法为:其表示将包含0和1的第一预设长度k1的字符串转换为第二预设长度k-k1的字符串。
在又一些示例中,在基于第一哈希算法、第三字符串和待加密的明文,得到待加密的明文对应的第四字符串时,可以先采用第一哈希算法对第三字符串进行哈希运算,并对哈希运算后的第三字符串与待加密的明文进行异或运算,从而得到第四字符串。
例如,可以先采用第一哈希算法对第三字符串r1进行哈希运算,从而可以得到哈希运算后的第三字符串H1(r1),然后对哈希运算后的第三字符串H1(r1)和待加密的明文M进行异或运算,从而可以得到第四字符串D,该第四字符串
S140,基于第二哈希算法、第四字符串和第三字符串,得到待加密的明文对应的第五字符串,其中,第二哈希算法用于将第二预设长度的字符串转换为第一预设长度的字符串;
在得到第四字符串D后,可以基于第二哈希算法、第四字符串和第三字符串,得到待加密的明文对应的第五字符串。其中,该第二哈希算法为:其表示将包含0和1的第二预设长度k-k1的字符串转换为第一预设长度k1的字符串。
在一些示例中,在基于基于第二哈希算法、第四字符串和第三字符串,得到待加密的明文对应的第五字符串时,可以采用第二哈希算法对第四字符串进行哈希运算,并对哈希运算后的第四字符串与第三字符串进行异或运算,得到第五字符串;
例如,可以采用第二哈希算法对第四字符串D进行哈希运算,从而可以得到哈希运算后的第四字符串H2(D),然后对该哈希运算后的第四字符串H2(D)和第三字符串r1进行异或运算,从而可以得到第五字符串E,该第五字符串
S150,对第四字符串和第五字符串进行拼接,并采用公钥对中的第一公钥组将拼接得到的第一拼接字符串转换为第六字符串;
S160,对第六字符串、第一字符串和第二字符串进行拼接,并采用公钥对中的第二公钥组将拼接得到的第二拼接字符串转为第七字符串,得到待加密的明文对应的密文。
在得到第四字符串和第五字符串后,可以对第四字符串和第五字符串进行拼接,然后采用公钥对中的第一公钥组将拼接得到的第一拼接字符串转换为第六字符串。
其中,该公钥对pk为(e1,e2,N1,N2),该公钥对中的第一公钥组为(e1,N1),该公钥对中的第二公钥组为(e2,N2)。
因此,可以采用如下公式:
对第四字符串D和第五字符串E进行拼接,然后采用公钥对中的第一公钥组(e1,N1)将拼接得到的第一拼接字符串D||E转换为第六字符串H。
在得到第六字符串H后,则可以对第六字符串、第一字符串和第二字符串进行拼接,并采用公钥对中的第二公钥组将拼接得到的第二拼接字符串转为第七字符串,得到待加密的明文对应的密文。
在一些示例中,可以采用如下公式:
对第六字符串H、第一字符串x1和第二字符串y1进行拼接,并采用公钥对中的第二公钥组(e2,N2)将拼接得到的第二拼接字符串H||x1||y1转为第七字符串C,从而可以得到该待加密的明文对应的密文C。
本发明实施例提供的一种加密方法,可以先获取待加密的明文、用于表征字符串的长度的安全参数和加密待加密的明文所使用的公钥对,并基于待加密的明文和安全参数,确定第一预设长度的第一字符串和第二字符串;进而随机获取第一预设长度的第三字符串,并基于第一哈希算法、第三字符串和待加密的明文,得到待加密的明文对应的第四字符串,基于第二哈希算法、第四字符串和第三字符串,得到待加密的明文对应的第五字符串,然后对第四字符串和第五字符串进行拼接,并采用公钥对中的第一公钥组将拼接得到的第一拼接字符串转换为第六字符串;最后对第六字符串、第一字符串和第二字符串进行拼接,并采用公钥对中的第二公钥组将拼接得到的第二拼接字符串转为第七字符串,得到待加密的明文对应的密文。通过本发明实施例,仅需要进行两次拼接,从而可以减少加密后的到的密文的字符串的长度,从而可以减少密文对存储空间的占用。
在图1所示的一种加密方法的基础上,本发明实施例还提供了一种可能的实现方式,如图2所示,为本发明实施例的一种加密方法第二种实施方式的流程图,该方法可以包括:
S210,在预设素数表中选择第一素数对和第二素数对,其中,第一素数对和第二素数对分别包括两个素数;
S220,计算第一素数对中的两个素数的第一乘积以及第一乘积的欧拉函数值;计算第二素数对中的两个素数的第二乘积以及第二乘积的欧拉函数值;
S230,在预设整数表中选择第三整数和第四整数,其中,第三整数大于1且小于第一乘积的欧拉函数值;且第三整数与第一乘积的欧拉函数值的最大公约数为1;第四整数大于1且小于第二乘积的欧拉函数值;且第四整数与第二乘积的欧拉函数值的最大公约数为1;
S240,将第三整数和第一乘积作为公钥对中的第一公钥组,将第四整数和第二乘积作为公钥对中的第二公钥组。
例如,假设在预设素数表中选择的第一素数对为:p1,q1,第二素数对为p2,q2,则可以通过以下公式:
通过以下公式:
然后可以基于该第一乘积N1的欧拉函数值和第二乘积N2的欧拉函数值分别选择满足条件的第三整数e1和第四整数e2。最后,将选择的满足条件的第三整数和第一乘积N1作为公钥对中的第一公钥组(e1,N1),将选择的满足条件的第四整数e2和第二乘积N2作为公钥对中的第二公钥组(e2,N2)。从而可以得到公钥对(e1,e2,N1,N2)。
在一些示例中,在得到加密该待加密的明文所使用的公钥对之后,还可以确定出与公钥对对应的私钥对。
在一些示例中,可以基于第三整数、第一乘积的欧拉函数值,计算第三整数对于第一乘积的欧拉函数值的第一模反元素;基于第四整数、第二乘积的欧拉函数值,计算第四整数对于第二乘积的欧拉函数值的第二模反元素;将第一模反元素和第二模反元素作为与公钥对应的私钥对。
计算第三整数对于第一乘积的欧拉函数值的第一模反元素d1;
计算第四整数对于第二乘积的欧拉函数值的第二模反元素d2;
进而可以将第一模反元素d1和第二模反元素d2作为与公钥对应的私钥对(d1,d2)。
通过本发明实施例生成解密私钥和测试私钥,可以使得测试和解密分别使用不同的私钥,并且使得在测试的过程中,并不能对密文进行解密,从而提高密文的安全性。
在又一些示例中,第一乘积的字符串长度为安全参数所表征的字符串长度;第二乘积的字符串长度为基于安全参数和第一预设长度所确定的第三预设长度。例如,该第二乘积的字符串长度可以是安全参数与两倍的第一预设长度之和。
S250,获取待加密的明文、安全参数和加密待加密的明文所使用的公钥对,基于待加密的明文和安全参数,确定第一预设长度的第一字符串和第二字符串;其中,安全参数用于表征字符串的长度;
S260,随机获取第一预设长度的第三字符串,基于第一哈希算法、第三字符串和待加密的明文,得到待加密的明文对应的第四字符串,其中,第一哈希算法用于将第一预设长度的字符串转换为第二预设长度的字符串,第二预设长度由安全参数和第一预设长度确定;
S270,基于第二哈希算法、第四字符串和第三字符串,得到待加密的明文对应的第五字符串,其中,第二哈希算法用于将第二预设长度的字符串转换为第一预设长度的字符串;
S280,对第四字符串和第五字符串进行拼接,并采用公钥对中的第一公钥组将拼接得到的第一拼接字符串转换为第六字符串;
S290,对第六字符串、第一字符串和第二字符串进行拼接,并采用公钥对中的第二公钥组将拼接得到的第二拼接字符串转为第七字符串,得到待加密的明文对应的密文。
可以理解的是,本发明实施例中的步骤S250~S290与第一种实施方式中的步骤S110~S160相同或相似,这里不再赘述。
在图1所示的一种加密方法的基础上,本发明实施例还提供了一种可能的实现方式,如图3所示,为本发明实施例的一种加密方法第三种实施方式的流程图,该方法可以包括:
S310,获取待加密的明文、安全参数和加密待加密的明文所使用的公钥对,基于待加密的明文和安全参数,确定第一预设长度的第一字符串和第二字符串;其中,安全参数用于表征字符串的长度;
S320,随机获取第一预设长度的第三字符串,基于第一哈希算法、第三字符串和待加密的明文,得到待加密的明文对应的第四字符串,其中,第一哈希算法用于将第一预设长度的字符串转换为第二预设长度的字符串,第二预设长度由安全参数和第一预设长度确定;
S330,基于第二哈希算法、第四字符串和第三字符串,得到待加密的明文对应的第五字符串,其中,第二哈希算法用于将第二预设长度的字符串转换为第一预设长度的字符串;
S340,对第四字符串和第五字符串进行拼接,并采用公钥对中的第一公钥组将拼接得到的第一拼接字符串转换为第六字符串;
S350,对第六字符串、第一字符串和第二字符串进行拼接,并采用公钥对中的第二公钥组将拼接得到的第二拼接字符串转为第七字符串,得到待加密的明文对应的密文。
S360,获取公钥对对应的私钥对,基于私钥对中的第二私钥和公钥对中的第二公钥组对密文进行解密,得到解密后的字符串;
S370,从解密后的字符串中提取解密后的字符串的第一子字符串;
S380,基于私钥对中的第一私钥和公钥对中的第一公钥组,对第一子字符串进行转化,得到转化后的子字符串;
S390,基于转化后的子字符串和第二哈希算法,得到转化后的子字符串对应的第二子字符串;
S3910,基于转化后的子字符串、第二子字符串和第一哈希算法,得到解密后的明文。
在一些示例中,在得到待加密的明文对应的密文后,还可以对密文进行解密。在又一些示例中,对代价密的明文进行加密的设备和对密文进行解密的设备可以不是同一个设备。
在对密文进行解密时,可以先获取公钥对对应的私钥对,然后基于私钥对中的第二私钥和公钥对中的第二公钥组对该密文进行解密,得到解密后的字符串;
在一些示例中,在基于私钥对中的第二私钥d2和公钥对中的第二公钥组(e2,N2)对上述的密文进行解密时,可以采用如下公式:
对上述的密文进行解密,得到解密后的字符串H||x1||y1。
在一些示例中,由于在采用公钥对明文进行加密时,公钥对通常是已知的,并且,各个哈希算法也是已知的,因此,加密后的密文的各个部分的长度也是已知的,例如,该解密后的字符串H||x1||y1中的第一字符串x1的字符串长度和第二字符串y1的字符串长度也可以是已知的,该解密后的字符串H||x1||y1中的H的长度也是已知的,因此,可以从解密后的字符串中提取解密后的字符串的第一子字符串H;
在得到该第一子字符串H后,可以基于私钥对中的第一私钥和公钥对中的第一公钥组,对第一子字符串进行转化,得到转化后的子字符串。
在一些示例中,可以基于私钥对中的第一私钥d1公钥对中的第一公钥组(e1,N1),采用如下公式:
第一子字符串进行转化,从而可以得到转化后的子字符串D||E。
在一些示例中,在对明文进行加密的过程中,使用的第一哈希算法和第二哈希算法也是已知的,因此,该转化后的子字符串D||E中的D和E的字符串长度也是已知的。
基于此,在得到转化后的字符串D||E后,可以基于转化后的子字符串D||E和第二哈希算法,可以采用如下公式:
得到转化后的子字符串对应的第二子字符串r1。
在得到转化后的子字符串对应的第二子字符串r1后,则可以基于转化后的子字符串、第二子字符串和第一哈希算法,得到解密后的明文。
在一些示例中,可以基于转化后的子字符串、第二子字符串和第一哈希算法,采用如下公式:
得到解密后的明文M'。
通过本发明实施例,除了可以对待加密的明文进行加密外,还可以对加密后得到的密文进行解密,从而可以提高本发明实施例的应用范围。
可以理解的是,本发明实施例中的步骤S310~S350与第一种实施方式中的步骤S110~S160相同或相似,这里不再赘述。
在图1所示的一种加密方法的基础上,本发明实施例还提供了一种可能的实现方式,如图4所示,为本发明实施例的一种加密方法第四种实施方式的流程图,该方法可以包括:
S410,获取待加密的明文、安全参数和加密待加密的明文所使用的公钥对,基于待加密的明文和安全参数,确定第一预设长度的第一字符串和第二字符串;其中,安全参数用于表征字符串的长度;
S420,随机获取第一预设长度的第三字符串,基于第一哈希算法、第三字符串和待加密的明文,得到待加密的明文对应的第四字符串,其中,第一哈希算法用于将第一预设长度的字符串转换为第二预设长度的字符串,第二预设长度由安全参数和第一预设长度确定;
S430,基于第二哈希算法、第四字符串和第三字符串,得到待加密的明文对应的第五字符串,其中,第二哈希算法用于将第二预设长度的字符串转换为第一预设长度的字符串;
S440,对第四字符串和第五字符串进行拼接,并采用公钥对中的第一公钥组将拼接得到的第一拼接字符串转换为第六字符串;
S450,对第六字符串、第一字符串和第二字符串进行拼接,并采用公钥对中的第二公钥组将拼接得到的第二拼接字符串转为第七字符串,得到待加密的明文对应的密文。
S460,获取公钥对对应的私钥对,基于私钥对中的第二私钥和公钥对中的第二公钥组对待测试密文进行解密,得到解密后的字符串;
S470,提取解密后的字符串中第三子字符串和第四子字符串;
S480,基于第三子字符串、第四子字符串、第一字符串和第二字符串,确定待加密的明文和待测试密文对应的明文是否相同。
在一些示例中,在得到待加密的明文对应的密文后,还可以检验两条不同的密文对应的明文是否相同,对此,
在对密文进行解密时,可以先获取公钥对对应的私钥对,然后基于私钥对中的第二私钥和公钥对中的第二公钥组对待测试密文进行解密,得到解密后的字符串;
在一些示例中,在基于私钥对中的第二私钥d2和公钥对中的第二公钥组(e2,N2)对上述的待测试密文C1进行解密时,可以采用如下公式:
对上述的待测试密文C1进行解密,得到解密后的字符串H1||x1,1||y1,1。
在得到解密后的字符串H1||x1,1||y1,1后,由于该字符串中各个部分的字符串长度是已知的,因此,可以从该解密后的字符串中提取出该解密后的字符串H1||x1,1||y1,1中的第三子字符串x1,1和第四子字符串y1,1。
进而可以基于第三子字符串x1,1、第四子字符串y1,1、第一字符串x1和第二字符串y1,确定待加密的明文M和待测试密文C1对应的明文是否相同。
在一些示例中,可以将第三子字符串x1,1、第四子字符串y1,1作为一个坐标系中的一个坐标点,将该第一字符串x1和第二字符串y1作为该坐标系中的另一个坐标点,然后判断由该第三子字符串x1,1、第四子字符串y1,1所构成的通过原点的直线的斜率,与由第一字符串x1和第二字符串y1所构成的通过原点的直线的斜率是否相同,如果相同,则可以确定待加密的明文M和待测试密文C1对应的明文相同,否则则可以确定待加密的明文M和待测试密文C1对应的明文不同。
例如,可以先计算由该第三子字符串x1,1、第四子字符串y1,1所构成的通过原点的直线的斜率然后计算由第一字符串x1和第二字符串y1所构成的通过原点的直线的斜率然后通过判断与是否相同,来确定待加密的明文M和待测试密文C1对应的明文是否相同。
通过本发明实施例,不仅可以对待加密明文进行加密,还可以在不对密文进行解密的情况下,判断两个密文对应的明文是否相同。
可以理解的是,本发明实施例中的步骤S410~S450与第一种实施方式中的步骤S110~S160相同或相似,这里不再赘述。
相应于上述的方法实施例,本发明实施例还提供了一种加密装置,如图5所示,该加密装置可以包括:
公钥对获取模块510,用于获取待加密的明文、安全参数和加密待加密的明文所使用的公钥对,其中,安全参数用于表征字符串的长度;
第一确定模块520,用于基于待加密的明文和安全参数,确定第一预设长度的第一字符串和第二字符串;
第二确定模块530,用于随机获取第一预设长度的第三字符串,并基于第一哈希算法、第三字符串和待加密的明文,得到待加密的明文对应的第四字符串,其中,第一哈希算法用于将第一预设长度的字符串转换为第二预设长度的字符串,第二预设长度由安全参数和第一预设长度确定;
第三确定模块540,用于基于第二哈希算法、第四字符串和第三字符串,得到待加密的明文对应的第五字符串,其中,第二哈希算法用于将第二预设长度的字符串转换为第一预设长度的字符串;
第一拼接模块550,用于对第四字符串和第五字符串进行拼接,并采用公钥对中的第一公钥组将拼接得到的第一拼接字符串转换为第六字符串;
第二拼接模块560,用于对第六字符串、第一字符串和第二字符串进行拼接,并采用公钥对中的第二公钥组将拼接得到的第二拼接字符串转为第七字符串,得到待加密的明文对应的密文。
本发明实施例提供的一种加密装置,可以先获取待加密的明文、用于表征字符串的长度的安全参数和加密待加密的明文所使用的公钥对,并基于待加密的明文和安全参数,确定第一预设长度的第一字符串和第二字符串;进而随机获取第一预设长度的第三字符串,并基于第一哈希算法、第三字符串和待加密的明文,得到待加密的明文对应的第四字符串,基于第二哈希算法、第四字符串和第三字符串,得到待加密的明文对应的第五字符串,然后对第四字符串和第五字符串进行拼接,并采用公钥对中的第一公钥组将拼接得到的第一拼接字符串转换为第六字符串;最后对第六字符串、第一字符串和第二字符串进行拼接,并采用公钥对中的第二公钥组将拼接得到的第二拼接字符串转为第七字符串,得到待加密的明文对应的密文。通过本发明实施例,仅需要进行两次拼接,从而可以减少加密后的到的密文的字符串的长度,从而可以减少密文对存储空间的占用。
在一些示例中,公钥对获取模块510,包括:
素数对获取子模块,用于在预设素数表中选择第一素数对和第二素数对,其中,第一素数对和第二素数对分别包括两个素数;
计算子模块,用于计算第一素数对中的两个素数的第一乘积以及第一乘积的欧拉函数值;计算第二素数对中的两个素数的第二乘积以及第二乘积的欧拉函数值;
选择子模块,用于在预设整数表中选择第三整数和第四整数,其中,第三整数大于1且小于第一乘积的欧拉函数值;且第三整数与第一乘积的欧拉函数值的最大公约数为1;第四整数大于1且小于第二乘积的欧拉函数值;且第四整数与第二乘积的欧拉函数值的最大公约数为1;
公钥对获取子模块,将第三整数和第一乘积作为公钥对中的第一公钥组,将第四整数和第二乘积作为公钥对中的第二公钥组。
在一些示例中,该加密装置还可以包括:
私钥对获取模块,用于在将第三整数和第一乘积作为公钥对中的第一公钥组,将第四整数和第二乘积作为公钥对中的第二公钥组之后,基于第三整数、第一乘积的欧拉函数值,计算第三整数对于第一乘积的欧拉函数值的第一模反元素;基于第四整数、第二乘积的欧拉函数值,计算第四整数对于第二乘积的欧拉函数值的第二模反元素;将第一模反元素和第二模反元素作为与公钥对应的私钥对。
在一些示例中,第一乘积为安全参数所表征的字符串长度的字符串;第二乘积的字符串长度为基于安全参数和第一预设长度所确定的第三预设长度。
在一些示例中,第一确定模块520,具体用于:
采用第三哈希算法和第四哈希算法对待加密的明文进行哈希运算,得到待加密的明文对应的第一整数和第二整数,其中,第三哈希算法和第四哈希算法用于将第二预设长度的字符串转换为整数;
以第一整数和第二整数为直角坐标系中的第一坐标点,并基于第一坐标点和直角坐标系中的坐标原点,确定第一坐标点所处的直线;
在第一坐标点所处的直线中选择除第一坐标点外的非零的第二坐标点,将第二坐标点的横坐标和纵坐标转换为第一字符串和第二字符串。
在一些示例中,该加密装置还可以包括:
第一解密模块,用于在采用公钥对中的第二公钥组将拼接得到的第二拼接字符串转为第七字符串,得到待加密的明文对应的密文之后,获取公钥对对应的私钥对,基于私钥对中的第二私钥和公钥对中的第二公钥组对密文进行解密,得到解密后的字符串;
第一解密模块,还用于从解密后的字符串中提取解密后的字符串的第一子字符串;
第一解密模块,还用于基于私钥对中的第一私钥和公钥对中的第一公钥组,对第一子字符串进行转化,得到转化后的子字符串;
第一解密模块,还用于基于转化后的子字符串和第二哈希算法,得到转化后的子字符串对应的第二子字符串;
第一解密模块,还用于基于转化后的子字符串、第二子字符串和第一哈希算法,得到解密后的明文。
在一些示例中,该加密装置还可以包括:
第二解密模块,用于在采用公钥对中的第二公钥组将拼接得到的第二拼接字符串转为第七字符串,得到待加密的明文对应的密文之后,获取公钥对对应的私钥对,基于私钥对中的第二私钥和公钥对中的第二公钥组对待测试密文进行解密,得到解密后的字符串;
第二提取模块,用于提取解密后的字符串中第三子字符串和第四子字符串;
判断模块,用于基于第三子字符串、第四子字符串、第一字符串和第二字符串,确定待加密的明文和待测试密文对应的明文是否相同。
本发明实施例还提供了一种电子设备,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,
存储器603,用于存放计算机程序;
处理器601,用于执行存储器603上所存放的程序时,实现上述任一实施例所示的一种加密方法的步骤,例如,可以实现如下步骤:
获取待加密的明文、安全参数和加密待加密的明文所使用的公钥对,其中,安全参数用于表征字符串的长度;
基于待加密的明文和安全参数,确定第一预设长度的第一字符串和第二字符串;
随机获取第一预设长度的第三字符串,并基于第一哈希算法、第三字符串和待加密的明文,得到待加密的明文对应的第四字符串,其中,第一哈希算法用于将第一预设长度的字符串转换为第二预设长度的字符串,第二预设长度由安全参数和第一预设长度确定;
基于第二哈希算法、第四字符串和第三字符串,得到待加密的明文对应的第五字符串,其中,第二哈希算法用于将第二预设长度的字符串转换为第一预设长度的字符串;
对第四字符串和第五字符串进行拼接,并采用公钥对中的第一公钥组将拼接得到的第一拼接字符串转换为第六字符串;
对第六字符串、第一字符串和第二字符串进行拼接,并采用公钥对中的第二公钥组将拼接得到的第二拼接字符串转为第七字符串,得到待加密的明文对应的密文。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明实施例提供的一种电子设备,可以先获取待加密的明文、用于表征字符串的长度的安全参数和加密待加密的明文所使用的公钥对,并基于待加密的明文和安全参数,确定第一预设长度的第一字符串和第二字符串;进而随机获取第一预设长度的第三字符串,并基于第一哈希算法、第三字符串和待加密的明文,得到待加密的明文对应的第四字符串,基于第二哈希算法、第四字符串和第三字符串,得到待加密的明文对应的第五字符串,然后对第四字符串和第五字符串进行拼接,并采用公钥对中的第一公钥组将拼接得到的第一拼接字符串转换为第六字符串;最后对第六字符串、第一字符串和第二字符串进行拼接,并采用公钥对中的第二公钥组将拼接得到的第二拼接字符串转为第七字符串,得到待加密的明文对应的密文。通过本发明实施例,仅需要进行两次拼接,从而可以减少加密后的到的密文的字符串的长度,从而可以减少密文对存储空间的占用。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述任一实施例所示的一种加密方法的步骤,例如,可以实现如下步骤:
获取待加密的明文、安全参数和加密待加密的明文所使用的公钥对,其中,安全参数用于表征字符串的长度;
基于待加密的明文和安全参数,确定第一预设长度的第一字符串和第二字符串;
随机获取第一预设长度的第三字符串,并基于第一哈希算法、第三字符串和待加密的明文,得到待加密的明文对应的第四字符串,其中,第一哈希算法用于将第一预设长度的字符串转换为第二预设长度的字符串,第二预设长度由安全参数和第一预设长度确定;
基于第二哈希算法、第四字符串和第三字符串,得到待加密的明文对应的第五字符串,其中,第二哈希算法用于将第二预设长度的字符串转换为第一预设长度的字符串;
对第四字符串和第五字符串进行拼接,并采用公钥对中的第一公钥组将拼接得到的第一拼接字符串转换为第六字符串;
对第六字符串、第一字符串和第二字符串进行拼接,并采用公钥对中的第二公钥组将拼接得到的第二拼接字符串转为第七字符串,得到待加密的明文对应的密文。
本发明实施例提供的一种计算机可读存储介质,可以先获取待加密的明文、用于表征字符串的长度的安全参数和加密待加密的明文所使用的公钥对,并基于待加密的明文和安全参数,确定第一预设长度的第一字符串和第二字符串;进而随机获取第一预设长度的第三字符串,并基于第一哈希算法、第三字符串和待加密的明文,得到待加密的明文对应的第四字符串,基于第二哈希算法、第四字符串和第三字符串,得到待加密的明文对应的第五字符串,然后对第四字符串和第五字符串进行拼接,并采用公钥对中的第一公钥组将拼接得到的第一拼接字符串转换为第六字符串;最后对第六字符串、第一字符串和第二字符串进行拼接,并采用公钥对中的第二公钥组将拼接得到的第二拼接字符串转为第七字符串,得到待加密的明文对应的密文。通过本发明实施例,仅需要进行两次拼接,从而可以减少加密后的到的密文的字符串的长度,从而可以减少密文对存储空间的占用。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一实施例所示的一种加密方法的步骤,例如,可以执行如下步骤:
获取待加密的明文、安全参数和加密待加密的明文所使用的公钥对,其中,安全参数用于表征字符串的长度;
基于待加密的明文和安全参数,确定第一预设长度的第一字符串和第二字符串;
随机获取第一预设长度的第三字符串,并基于第一哈希算法、第三字符串和待加密的明文,得到待加密的明文对应的第四字符串,其中,第一哈希算法用于将第一预设长度的字符串转换为第二预设长度的字符串,第二预设长度由安全参数和第一预设长度确定;
基于第二哈希算法、第四字符串和第三字符串,得到待加密的明文对应的第五字符串,其中,第二哈希算法用于将第二预设长度的字符串转换为第一预设长度的字符串;
对第四字符串和第五字符串进行拼接,并采用公钥对中的第一公钥组将拼接得到的第一拼接字符串转换为第六字符串;
对第六字符串、第一字符串和第二字符串进行拼接,并采用公钥对中的第二公钥组将拼接得到的第二拼接字符串转为第七字符串,得到待加密的明文对应的密文。
本发明实施例提供的一种包含指令的计算机程序产品,可以先获取待加密的明文、用于表征字符串的长度的安全参数和加密待加密的明文所使用的公钥对,并基于待加密的明文和安全参数,确定第一预设长度的第一字符串和第二字符串;进而随机获取第一预设长度的第三字符串,并基于第一哈希算法、第三字符串和待加密的明文,得到待加密的明文对应的第四字符串,基于第二哈希算法、第四字符串和第三字符串,得到待加密的明文对应的第五字符串,然后对第四字符串和第五字符串进行拼接,并采用公钥对中的第一公钥组将拼接得到的第一拼接字符串转换为第六字符串;最后对第六字符串、第一字符串和第二字符串进行拼接,并采用公钥对中的第二公钥组将拼接得到的第二拼接字符串转为第七字符串,得到待加密的明文对应的密文。通过本发明实施例,仅需要进行两次拼接,从而可以减少加密后的到的密文的字符串的长度,从而可以减少密文对存储空间的占用。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备等实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种加密方法,其特征在于,所述方法包括:
获取待加密的明文、安全参数和加密所述待加密的明文所使用的公钥对,其中,所述安全参数用于表征字符串的长度;
基于所述待加密的明文和所述安全参数,确定第一预设长度的第一字符串和第二字符串;
随机获取第一预设长度的第三字符串,并基于第一哈希算法、所述第三字符串和所述待加密的明文,得到所述待加密的明文对应的第四字符串,其中,所述第一哈希算法用于将所述第一预设长度的字符串转换为第二预设长度的字符串,所述第二预设长度由所述安全参数和所述第一预设长度确定;
基于第二哈希算法、所述第四字符串和所述第三字符串,得到所述待加密的明文对应的第五字符串,其中,所述第二哈希算法用于将所述第二预设长度的字符串转换为所述第一预设长度的字符串;
对所述第四字符串和所述第五字符串进行拼接,并采用所述公钥对中的第一公钥组将拼接得到的第一拼接字符串转换为第六字符串;
对所述第六字符串、所述第一字符串和所述第二字符串进行拼接,并采用所述公钥对中的第二公钥组将拼接得到的第二拼接字符串转为第七字符串,得到所述待加密的明文对应的密文。
2.根据权利要求1所述的方法,其特征在于,所述获取加密所述待加密的明文所使用的公钥对的步骤,包括:
在预设素数表中选择第一素数对和第二素数对,其中,所述第一素数对和所述第二素数对分别包括两个素数;
计算所述第一素数对中的两个素数的第一乘积以及所述第一乘积的欧拉函数值;计算所述第二素数对中的两个素数的第二乘积以及所述第二乘积的欧拉函数值;
在预设整数表中选择第三整数和第四整数,其中,所述第三整数大于1且小于所述第一乘积的欧拉函数值;且所述第三整数与所述第一乘积的欧拉函数值的最大公约数为1;所述第四整数大于1且小于所述第二乘积的欧拉函数值;且所述第四整数与所述第二乘积的欧拉函数值的最大公约数为1;
将所述第三整数和所述第一乘积作为所述公钥对中的第一公钥组,将所述第四整数和所述第二乘积作为所述公钥对中的第二公钥组。
3.根据权利要求2所述的方法,其特征在于,在所述将所述第三整数和所述第一乘积作为所述公钥对中的第一公钥组,将所述第四整数和所述第二乘积作为所述公钥对中的第二公钥组之后,所述方法还包括:
基于所述第三整数、所述第一乘积的欧拉函数值,计算所述第三整数对于所述第一乘积的欧拉函数值的第一模反元素;
基于所述第四整数、所述第二乘积的欧拉函数值,计算所述第四整数对于所述第二乘积的欧拉函数值的第二模反元素;
将所述第一模反元素和所述第二模反元素作为与所述公钥对应的私钥对。
4.根据权利要求2或3所述的方法,其特征在于,所述第一乘积为所述安全参数所表征的字符串长度的字符串;所述第二乘积的字符串长度为基于所述安全参数和所述第一预设长度所确定的第三预设长度。
5.根据权利要求1所述的方法,其特征在于,所述基于所述待加密的明文和所述安全参数,确定第一预设长度的第一字符串和第二字符串,包括:
采用第三哈希算法和第四哈希算法对所述待加密的明文进行哈希运算,得到所述待加密的明文对应的第一整数和第二整数,其中,所述第三哈希算法和所述第四哈希算法用于将所述第二预设长度的字符串转换为整数;
以所述第一整数和所述第二整数为直角坐标系中的第一坐标点,并基于所述第一坐标点和所述直角坐标系中的坐标原点,确定所述第一坐标点所处的直线;
在所述第一坐标点所处的直线中选择除所述第一坐标点外的非零的第二坐标点,将所述第二坐标点的横坐标和纵坐标转换为所述第一字符串和第二字符串。
6.根据权利要求1所述的方法,其特征在于,在所述采用所述公钥对中的第二公钥组将拼接得到的第二拼接字符串转为第七字符串,得到所述待加密的明文对应的密文之后,所述方法还包括:
获取所述公钥对对应的私钥对,基于所述私钥对中的第二私钥和所述公钥对中的第二公钥组对所述密文进行解密,得到解密后的字符串;
从所述解密后的字符串中提取所述解密后的字符串的第一子字符串;
基于所述私钥对中的第一私钥和所述公钥对中的第一公钥组,对所述第一子字符串进行转化,得到转化后的子字符串;
基于所述转化后的子字符串和所述第二哈希算法,得到所述转化后的子字符串对应的第二子字符串;
基于所述转化后的子字符串、所述第二子字符串和所述第一哈希算法,得到解密后的明文。
7.根据权利要求1所述的方法,其特征在于,在所述采用所述公钥对中的第二公钥组将拼接得到的第二拼接字符串转为第七字符串,得到所述待加密的明文对应的密文之后,所述方法还包括:
获取所述公钥对对应的私钥对,基于所述私钥对中的第二私钥和所述公钥对中的第二公钥组对待测试密文进行解密,得到解密后的字符串;
提取所述解密后的字符串中第三子字符串和第四子字符串;
基于所述第三子字符串、所述第四子字符串、所述第一字符串和所述第二字符串,确定所述待加密的明文和所述待测试密文对应的明文是否相同。
8.一种加密装置,其特征在于,所述装置包括:
公钥对获取模块,用于获取待加密的明文、安全参数和加密所述待加密的明文所使用的公钥对,其中,所述安全参数用于表征字符串的长度;
第一确定模块,用于基于所述待加密的明文和所述安全参数,确定第一预设长度的第一字符串和第二字符串;
第二确定模块,用于随机获取第一预设长度的第三字符串,并基于第一哈希算法、所述第三字符串和所述待加密的明文,得到所述待加密的明文对应的第四字符串,其中,所述第一哈希算法用于将所述第一预设长度的字符串转换为第二预设长度的字符串,所述第二预设长度由所述安全参数和所述第一预设长度确定;
第三确定模块,用于基于第二哈希算法、所述第四字符串和所述第三字符串,得到所述待加密的明文对应的第五字符串,其中,所述第二哈希算法用于将所述第二预设长度的字符串转换为所述第一预设长度的字符串;
第一拼接模块,用于对所述第四字符串和所述第五字符串进行拼接,并采用所述公钥对中的第一公钥组将拼接得到的第一拼接字符串转换为第六字符串;
第二拼接模块,用于对所述第六字符串、所述第一字符串和所述第二字符串进行拼接,并采用所述公钥对中的第二公钥组将拼接得到的第二拼接字符串转为第七字符串,得到所述待加密的明文对应的密文。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-7任一所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011383233.6A CN112347498B (zh) | 2020-12-01 | 2020-12-01 | 一种加密方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011383233.6A CN112347498B (zh) | 2020-12-01 | 2020-12-01 | 一种加密方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112347498A true CN112347498A (zh) | 2021-02-09 |
CN112347498B CN112347498B (zh) | 2022-10-28 |
Family
ID=74427858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011383233.6A Active CN112347498B (zh) | 2020-12-01 | 2020-12-01 | 一种加密方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112347498B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113378200A (zh) * | 2021-06-28 | 2021-09-10 | 江苏翔晟信息技术股份有限公司 | 基于分离式存储的电子合同文件的分组加密***及方法 |
CN113918982A (zh) * | 2021-12-15 | 2022-01-11 | 国网区块链科技(北京)有限公司 | 一种基于标识信息的数据处理方法及*** |
CN114980087A (zh) * | 2021-02-26 | 2022-08-30 | 中国联合网络通信集团有限公司 | 数据加密的方法和装置 |
CN116132159A (zh) * | 2023-02-02 | 2023-05-16 | 马上消费金融股份有限公司 | 数据加密方法、装置、电子设备及存储介质 |
CN116208420A (zh) * | 2023-03-08 | 2023-06-02 | 武汉维高凡科技有限公司 | 一种监测信息安全传输方法、***、设备及存储介质 |
CN116232770A (zh) * | 2023-05-08 | 2023-06-06 | 中国石油大学(华东) | 一种基于sdn控制器的企业网络安全防护***及方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8566601B1 (en) * | 2012-09-12 | 2013-10-22 | Zeutro Llc | Systems and methods for functional encryption using a string of arbitrary length |
CN107294714A (zh) * | 2017-07-31 | 2017-10-24 | 美的智慧家居科技有限公司 | 密钥协商方法、装置及其设备 |
CN110008745A (zh) * | 2019-03-29 | 2019-07-12 | 深圳供电局有限公司 | 一种加密方法、计算机设备和计算机存储介质 |
US20200106606A1 (en) * | 2018-09-27 | 2020-04-02 | National Chiao Tung University | Post-quantum asymmetric key cryptosystem with one-to-many distributed key management based on prime modulo double encapsulation |
CN111447059A (zh) * | 2020-03-30 | 2020-07-24 | 南阳理工学院 | 密文等值测试方法、装置、电子设备、存储介质及*** |
-
2020
- 2020-12-01 CN CN202011383233.6A patent/CN112347498B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8566601B1 (en) * | 2012-09-12 | 2013-10-22 | Zeutro Llc | Systems and methods for functional encryption using a string of arbitrary length |
CN107294714A (zh) * | 2017-07-31 | 2017-10-24 | 美的智慧家居科技有限公司 | 密钥协商方法、装置及其设备 |
US20200106606A1 (en) * | 2018-09-27 | 2020-04-02 | National Chiao Tung University | Post-quantum asymmetric key cryptosystem with one-to-many distributed key management based on prime modulo double encapsulation |
CN110008745A (zh) * | 2019-03-29 | 2019-07-12 | 深圳供电局有限公司 | 一种加密方法、计算机设备和计算机存储介质 |
CN111447059A (zh) * | 2020-03-30 | 2020-07-24 | 南阳理工学院 | 密文等值测试方法、装置、电子设备、存储介质及*** |
Non-Patent Citations (4)
Title |
---|
XIAOYING SHEN等: "A Multivariate Public Key Encryption Scheme With Equality Test", 《IEEE ACCESS》 * |
朱慧君: "基于密文的等值测试密码方案研究", 《中国博士学位论文全文数据库 信息科技辑》 * |
梅宇等: "适用于字符串加密的全同态加密方案", 《计算机测量与控制》 * |
陈绍钧: "一种基于混沌理论的字符串加密算法", 《计算机应用与软件》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114980087A (zh) * | 2021-02-26 | 2022-08-30 | 中国联合网络通信集团有限公司 | 数据加密的方法和装置 |
CN113378200A (zh) * | 2021-06-28 | 2021-09-10 | 江苏翔晟信息技术股份有限公司 | 基于分离式存储的电子合同文件的分组加密***及方法 |
CN113378200B (zh) * | 2021-06-28 | 2022-02-22 | 江苏翔晟信息技术股份有限公司 | 基于分离式存储的电子合同文件的分组加密***及方法 |
CN113918982A (zh) * | 2021-12-15 | 2022-01-11 | 国网区块链科技(北京)有限公司 | 一种基于标识信息的数据处理方法及*** |
CN116132159A (zh) * | 2023-02-02 | 2023-05-16 | 马上消费金融股份有限公司 | 数据加密方法、装置、电子设备及存储介质 |
CN116132159B (zh) * | 2023-02-02 | 2024-04-09 | 马上消费金融股份有限公司 | 数据加密方法、装置、电子设备及存储介质 |
CN116208420A (zh) * | 2023-03-08 | 2023-06-02 | 武汉维高凡科技有限公司 | 一种监测信息安全传输方法、***、设备及存储介质 |
CN116208420B (zh) * | 2023-03-08 | 2024-03-12 | 武汉维高凡科技有限公司 | 一种监测信息安全传输方法、***、设备及存储介质 |
CN116232770A (zh) * | 2023-05-08 | 2023-06-06 | 中国石油大学(华东) | 一种基于sdn控制器的企业网络安全防护***及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112347498B (zh) | 2022-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112347498B (zh) | 一种加密方法、装置、电子设备及可读存储介质 | |
US11784801B2 (en) | Key management method and related device | |
WO2021013245A1 (zh) | 一种数据密钥保护方法、***及电子设备和存储介质 | |
US11233659B2 (en) | Method of RSA signature or decryption protected using a homomorphic encryption | |
CN112637836B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
US9838198B2 (en) | Splitting S-boxes in a white-box implementation to resist attacks | |
CN106599723B (zh) | 一种文件加密方法及装置、文件解密方法及装置 | |
CN111447059B (zh) | 密文等值测试方法、装置、电子设备、存储介质及*** | |
WO2019114122A1 (zh) | 登录信息的加密方法、装置、电子设备及介质 | |
KR102397579B1 (ko) | 부채널 분석 방지를 위한 화이트박스 암호 방법 및 장치 | |
US9576116B2 (en) | Secure software components anti-reverse-engineering by table interleaving | |
US11368319B2 (en) | Integrated circuit performing authentication using challenge-response protocol and method of using the integrated circuit | |
CN115643003B (zh) | 用于侧信道分析的方法及装置 | |
CN108777803A (zh) | 广电云平台视频流处理方法、装置、设备及介质 | |
WO2017006118A1 (en) | Secure distributed encryption system and method | |
JP2018037938A (ja) | 鍵交換方法、鍵交換システム | |
CN117220865A (zh) | 经纬度加密方法、经纬度校验方法、装置及可读存储介质 | |
EP3709561A1 (en) | Method for generating a digital signature of an input message | |
CN114268447B (zh) | 一种文件传输方法、装置、电子设备和计算机可读介质 | |
CN115277064B (zh) | 数据加密、数据解密方法、装置、电子设备和介质 | |
CN105227308B (zh) | 一种加密、解密方法及电子设备 | |
CN116248258A (zh) | 一种密码检测方法、装置、设备及存储介质 | |
CN115473649A (zh) | 攻击椭圆曲线签名算法的方法、装置、设备及存储介质 | |
CN111901102B (zh) | 数据传输方法、电子设备以及可读存储介质 | |
Al-Attab et al. | Lightweight effective encryption algorithm for securing data in cloud computing |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231211 Address after: No. 3605, 5th Floor, Building 3, Micro World, No. 23 Century Avenue, Liuwu New District, Lhasa, Tibet Autonomous Region, 850000 Patentee after: Tibet Canyu Lunzhu Technology Co.,Ltd. Address before: 473004 No. 80 Changjiang Road, Wancheng District, Nanyang City, Henan Province Patentee before: NANYANG INSTITUTE OF TECHNOLOGY |
|
TR01 | Transfer of patent right |