CN116094716A - 基于椭圆曲线密码学的文本加解密方法、系统及设备 - Google Patents
基于椭圆曲线密码学的文本加解密方法、系统及设备 Download PDFInfo
- Publication number
- CN116094716A CN116094716A CN202211606811.7A CN202211606811A CN116094716A CN 116094716 A CN116094716 A CN 116094716A CN 202211606811 A CN202211606811 A CN 202211606811A CN 116094716 A CN116094716 A CN 116094716A
- Authority
- CN
- China
- Prior art keywords
- encrypted
- character string
- encryption
- decrypted
- sender
- 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.)
- Pending
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
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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/0442—Network 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 asymmetric encryption, i.e. different keys for encryption and decryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Optimization (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开一种基于椭圆曲线密码学的文本加解密方法、系统及设备,涉及信息安全领域。其中,文本加密方法包括:将待加密明文消息转换为待加密ASCII码数组,并对各ASCII码值依次添加位置索引,得到待加密字符串数组,然后结合模运算对待加密字符串数组中的各字符串进行分组,得到多个字符串组,将其分别转换为待加密整数值;确定椭圆曲线加密的生成元,并随机生成发送方私钥、接收方私钥和加密模式判定数,进而生成会话密钥、确定对应的加密矩阵和加密模式,最后根据加密矩阵和加密模式,对各待加密整数值进行加密,得到多个密文。本发明能够缩短加解密时间,并且在降低映射开销的同时保证数据传输和访问过程中的安全性。
Description
技术领域
本发明涉及信息安全领域,特别是涉及一种基于椭圆曲线密码学的文本加解密方法、系统及设备。
背景技术
随着云存储、互联网和多媒体技术的快速发展,多媒体文件呈现出爆炸式的增长,人们对存储在云端的图像等多媒体文件的频繁操作使得版权问题日益增多。因此,为了实现对石窟壁画图像的版权保护,版权所有者对数字图像的版权信息也进行了加密,以解决网络传输和访问中面临的安全问题。但是,现有的文本加密算法容易受到唯密文攻击(Ciphtext Only Attack,COA)、已知明文攻击(Known Plaintext Attack,KPA)、选择明文攻击(Chosen Plaintext Attack,CPA)以及选择密文攻击(Chosen Ciphertext Attack,CCA)等的攻击,存在被破解的风险。而椭圆曲线密码(Elliptic Curve Cryptography,ECC)具有安全性高、密钥量小、灵活性高、存储空间占用小的特点,可很好地解决数字图像版权等文本信息的网络传输安全和访问安全问题。
ECC技术是通过保护发送者和接收者双方的通信内容来实现数据安全,在密钥量较小的情况下为数据提供了更安全的加密,在密码学中应用非常广泛。传统的文本加密技术如对称加密、哈希算法和非对称加密虽然比较完善,但是仍存在易破解、加密速度慢、密钥空间小等问题。现有的ECC文本加密技术多通过改进消息映射方案解决静态映射导致的数据保密性较低的问题,利用映射安全实现双重安全性,但是复杂映射方案的开销较大且易受CPA攻击。因此,为了增强加密过程的安全性,学者们将映射后的数据以逆序进行加密,但该方法仍存在根据频率分析被暴力破解的可能。目前,现有结合深度学习技术选择ECC私钥的方法虽然提高了ECC的准确性,但是私钥选择过程使得加解密的时间开销仍然较大。现有针对ECC方案的改进大多是通过改进明文消息的映射方案缩短加密时间,但是当消息较大时加密效率不高,容易受到CPA攻击,且映射开销与数据安全无法达到平衡。
发明内容
本发明的目的是提供一种基于椭圆曲线密码学的文本加解密方法、系统及设备,以缩短加解密时间,并且在降低映射开销的同时保证数据传输和访问过程中的安全性。
为实现上述目的,本发明提供了如下方案:
一种基于椭圆曲线密码学的文本加密方法,所述文本加密方法包括:
获取待加密明文消息;
将所述待加密明文消息转换为待加密ASCII码数组;所述待加密ASCII数组中的每个元素均为一个ASCII码值;各所述ASCII码值的位数相同;
对所述待加密ASCII码数组中的各所述ASCII码值依次添加位置索引,得到待加密字符串数组;各所述位置索引的位数相同;
对所述待加密字符串数组中的各字符串中的ASCII码值分别做设定模数的模运算,并根据模运算后的余数对所述待加密字符串数组中的各字符串进行分组,得到多个字符串组;所述设定模数为2的整数倍;所述字符串组的个数等于所述设定模数;
对各所述字符串组中的字符串分别进行拼接,得到多个待加密拼接字符串,并将各所述待加密拼接字符串分别转换为整数,得到多个待加密整数值;
确定椭圆曲线加密的生成元,并随机生成发送方私钥、接收方私钥和加密模式判定数;
根据所述发送方私钥、所述接收方私钥和所述生成元生成会话密钥,并根据所述会话密钥确定对应的加密矩阵;
对所述加密模式判定数做所述设定模数的模运算,并根据模运算后的余数确定加密模式;所述加密模式为多个所述待加密整数值在加密时的排列模式;
根据所述加密矩阵和所述加密模式,对各所述待加密整数值进行加密,得到多个密文;所述密文的个数为所述待加密整数值的个数的一半。
可选地,所述根据所述加密矩阵和所述加密模式,对各所述待加密整数值进行加密,得到多个密文,具体包括:
根据所述加密模式,对各所述待加密整数值进行排列后两两分组,得到多个待加密整数对;
根据所述加密矩阵,分别对各所述待加密整数对进行矩阵乘法运算,得到多个密文。
一种基于椭圆曲线密码学的文本解密方法,所述文本解密方法包括:
获取发送方发送的接收方私钥、发送方公钥、加密模式和密文;所述发送方公钥是根据发送方的发送方私钥和椭圆曲线加密的生成元生成的;
根据所述接收方私钥和所述发送方公钥生成会话秘钥,并根据所述会话密钥确定对应的解密矩阵;
根据所述解密矩阵和所述加密模式,对各所述密文进行解密,得到多个待解密整数值;所述待解密整数值的个数为所述密文的个数的二倍;
根据设定位数信息,将各所述待解密整数值分别转换为待解密拼接字符串;所述设定位数信息包括:第一设定位数和第二设定位数;所述第一设定位数为发送方设定的位置索引的位数;所述第二设定位数为发送方设定的ASCII码值的位数;
将各所述待解密拼接字符串进行拼接,得到二次拼接字符串;
根据所述设定位数信息,对所述二次拼接字符串进行分割,得到待解密字符串数组;
根据所述待解密字符串数组中的各字符串中的位置索引分别对所述待解密字符串数组中的各字符串中的ASCII码值进行排列,得到待解密ASCII码数组;
根据所述待解密ASCII码数组确定解密后明文消息。
可选地,所述根据所述解密矩阵和所述加密模式,对各所述密文进行解密,得到多个待解密整数值,具体包括:
根据所述解密矩阵,分别对各所述密文进行矩阵乘法运算,得到多个待解密整数对;
根据所述加密模式,分别对各所述待解密整数对进行拆分后排列,得到多个待解密整数值。
一种基于椭圆曲线密码学的文本加解密方法,所述文本加解密方法包括:加密过程和解密过程;
所述加密过程包括:
获取待加密明文消息;
将所述待加密明文消息转换为待加密ASCII码数组;所述待加密ASCII数组中的每个元素均为一个ASCII码值;各所述ASCII码值的位数相同;
对所述待加密ASCII码数组中的各所述ASCII码值依次添加位置索引,得到待加密字符串数组;各所述位置索引的位数相同;
对所述待加密字符串数组中的各字符串中的ASCII码值分别做设定模数的模运算,并根据模运算后的余数对所述待加密字符串数组中的各字符串进行分组,得到多个字符串组;所述设定模数为2的整数倍;所述字符串组的个数等于所述设定模数;
对各所述字符串组中的字符串分别进行拼接,得到多个待加密拼接字符串,并将各所述待加密拼接字符串分别转换为整数,得到多个待加密整数值;
确定椭圆曲线加密的生成元,并随机生成发送方私钥、接收方私钥和加密模式判定数;
根据所述发送方私钥、所述接收方私钥和所述生成元生成会话密钥,并根据所述会话密钥确定对应的加密矩阵;
对所述加密模式判定数做所述设定模数的模运算,并根据模运算后的余数确定加密模式;所述加密模式为多个所述待加密整数值在加密时的排列模式;
根据所述加密矩阵和所述加密模式,对各所述待加密整数值进行加密,得到多个密文;所述密文的个数为所述待加密整数值的个数的一半;
所述解密过程包括:
获取发送方发送的接收方私钥、发送方公钥、加密模式和密文;所述发送方公钥是根据发送方的发送方私钥和椭圆曲线加密的生成元生成的;
根据所述接收方私钥和所述发送方公钥生成会话秘钥,并根据所述会话密钥确定对应的解密矩阵;
根据所述解密矩阵和所述加密模式,对各所述密文进行解密,得到多个待解密整数值;所述待解密整数值的个数为所述密文的个数的二倍;
根据设定位数信息,将各所述待解密整数值分别转换为待解密拼接字符串;所述设定位数信息包括:第一设定位数和第二设定位数;所述第一设定位数为发送方设定的位置索引的位数;所述第二设定位数为发送方设定的ASCII码值的位数;
将各所述待解密拼接字符串进行拼接,得到二次拼接字符串;
根据所述设定位数信息,对所述二次拼接字符串进行分割,得到待解密字符串数组;
根据所述待解密字符串数组中的各字符串中的位置索引分别对所述待解密字符串数组中的各字符串中的ASCII码值进行排列,得到待解密ASCII码数组;
根据所述待解密ASCII码数组确定解密后明文消息。
可选地,所述根据设定位数信息,将各所述待解密整数值分别转换为待解密拼接字符串,具体包括:
将各所述待解密整数值分别转换为对应的字符串,得到多个转换后字符串;
若所述转换后字符串的位数不是第三设定位数的整数倍,则在所述转换后字符串前追加0,直到所述转换后字符串的位数是所述第三设定位数的整数倍;所述第三设定位数为所述第一设定位数与所述第二设定位数的和;
若所述转换后字符串的位数是所述第三设定位数的整数倍,则将所述转换后字符串确定为所述待解密拼接字符串。
一种基于椭圆曲线密码学的文本加密系统,所述文本加密系统包括:
明文消息获取模块,用于获取待加密明文消息;
ASCII码转换模块,用于将所述待加密明文消息转换为待加密ASCII码数组;所述待加密ASCII数组中的每个元素均为一个ASCII码值;各所述ASCII码值的位数相同;
添加索引模块,用于对所述待加密ASCII码数组中的各所述ASCII码值依次添加位置索引,得到待加密字符串数组;各所述位置索引的位数相同;
模运算分组模块,用于对所述待加密字符串数组中的各字符串中的ASCII码值分别做设定模数的模运算,并根据模运算后的余数对所述待加密字符串数组中的各字符串进行分组,得到多个字符串组;所述设定模数为2的整数倍;所述字符串组的个数等于所述设定模数;
待加密整数值确定模块,用于对各所述字符串组中的字符串分别进行拼接,得到多个待加密拼接字符串,并将各所述待加密拼接字符串分别转换为整数,得到多个待加密整数值;
随机生成模块,用于确定椭圆曲线加密的生成元,并随机生成发送方私钥、接收方私钥和加密模式判定数;
加密矩阵确定模块,用于根据所述发送方私钥、所述接收方私钥和所述生成元生成会话密钥,并根据所述会话密钥确定对应的加密矩阵;
加密模式确定模块,用于对所述加密模式判定数做所述设定模数的模运算,并根据模运算后的余数确定加密模式;所述加密模式为多个所述待加密整数值在加密时的排列模式;
密文生成模块,用于根据所述加密矩阵和所述加密模式,对各所述待加密整数值进行加密,得到多个密文;所述密文的个数为所述待加密整数值的个数的一半。
一种基于椭圆曲线密码学的文本解密系统,所述文本解密系统包括:
密文获取模块,用于获取发送方发送的接收方私钥、发送方公钥、加密模式和密文;所述发送方公钥是根据发送方的发送方私钥和椭圆曲线加密的生成元生成的;
解密矩阵确定模块,用于根据所述接收方私钥和所述发送方公钥生成会话秘钥,并根据所述会话密钥确定对应的解密矩阵;
待解密整数值确定模块,用于根据所述解密矩阵和所述加密模式,对各所述密文进行解密,得到多个待解密整数值;所述待解密整数值的个数为所述密文的个数的二倍;
转换模块,用于根据设定位数信息,将各所述待解密整数值分别转换为待解密拼接字符串;所述设定位数信息包括:第一设定位数和第二设定位数;所述第一设定位数为发送方设定的位置索引的位数;所述第二设定位数为发送方设定的ASCII码值的位数;
拼接模块,用于将各所述待解密拼接字符串进行拼接,得到二次拼接字符串;
分割模块,用于根据所述设定位数信息,对所述二次拼接字符串进行分割,得到待解密字符串数组;
按索引排列模块,用于根据所述待解密字符串数组中的各字符串中的位置索引分别对所述待解密字符串数组中的各字符串中的ASCII码值进行排列,得到待解密ASCII码数组;
明文消息确定模块,用于根据所述待解密ASCII码数组确定解密后明文消息。
一种电子设备,包括第一存储器及第一处理器,所述第一存储器用于存储第一计算机程序,所述第一处理器运行所述第一计算机程序以使所述电子设备执行上述的基于椭圆曲线密码学的文本加密方法。
一种电子设备,包括第二存储器及第二处理器,所述第二存储器用于存储第二计算机程序,所述第二处理器运行所述第二计算机程序以使所述电子设备执行上述的基于椭圆曲线密码学的文本解密方法。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明提供的基于椭圆曲线密码学的文本加解密方法,针对明文消息映射到椭圆曲线的编码过程进行了改进,即没有采用传统椭圆曲线加密算法中将字符值映射到椭圆曲线的仿射点方式,而是对明文消息对应的ASCII码值结合模运算进行分组,进而根据会话密钥对应的加密矩阵生成密文,最后以密文的形式发送到接收方,避免了昂贵的映射以及发送方和接收方之间共享公共查找表的需要,可产生相对较小的密文,通过减少计算量的方式缩短了加解密时间。同时,本发明通过随机生成加密模式判定数并根据模运算后的余数确定加密模式的方法,在降低映射开销的同时还保证了数据传输和访问过程的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的基于椭圆曲线密码学的文本加密方法的流程图;
图2为本发明提供的基于椭圆曲线密码学的文本解密方法的流程图;
图3为本发明实施例提供的基于椭圆曲线密码学的文本加解密方法的具体流程图;
图4为本发明实施例提供的原始会话密钥对应的密文对解密结果示意图;
图5为本发明实施例提供的修改后会话密钥对应的密文对解密结果示意图;
图6为本发明实施例提供的第一次加密生成的密文对示意图;
图7为本发明实施例提供的第二次加密生成的密文对示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种基于椭圆曲线密码学的文本加解密方法、系统及设备,以缩短加解密时间,并且在降低映射开销的同时保证数据传输和访问过程中的安全性。
椭圆曲线加密算法是一种非对称加密算法,通过将消息映射到曲线上的点,然后使用发送者的私钥执行标量乘法形成密文,解密时将这些点再解码成实际的消息。本发明改进了明文编码方式,没有采用传统椭圆曲线加密算法中将字符值映射到椭圆曲线的仿射点方式,而是对明文消息对应的ASCII值结合模运算进行分组,与会话密钥对应的加密矩阵做矩阵乘法生成密文对,最后以密文对形式发送到接收方,避免了昂贵的映射以及发送方和接收方之间共享公共查找表的需要。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例一
本实施例提供一种基于椭圆曲线密码学的文本加密方法、一种基于椭圆曲线密码学的文本解密方法以及一种基于椭圆曲线密码学的文本加解密方法,下面分别对上述三种方法进行详细论述。
首先,对本发明所采用的椭圆曲线加密算法进行简单论述。
椭圆曲线是连续的,并不适合加密,因此需要将椭圆曲线定义在有限域上,从而使椭圆曲线变为离散的点。如果域F只包含有限个元素,则称为有限域,其元素的个数称为有限域的阶,有限域通常也称为Galois域,即GF(pn),其中,p是素数,n是正整数。椭圆曲线的一般方程参见下式:
y2=x3+ax+b(modp);其中,系数a,b∈GF(p),且4a3+27b2≠0(modp)。
椭圆曲线上的运算主要有点加法、点乘法,用于执行这些运算的函数如下所示:
1)点加法[Point_add(Point1,Point2)]
设P(x1,y2)和Q(x2,y2)是曲线上的两点,P+Q=(x3,y3)。
2)点乘法[S_mult(k1,Point)]
为了生成公钥,基于椭圆曲线的密码系统必须执行点乘法,即标量乘法:设P(x1,y1)是曲线上的一点,其中P≠-P,则2P=2(x1,y1)。
本发明采用的ECC算法使用NIST-192椭圆曲线方程和定义的参数,所选椭圆曲线方程为y2=x3+ax+b(modp),具体参数值如下所示:
a=-3,
b=2455155546008943817740293915197451784769108058161191238065,
p=6277101735386680763835789423207666416083908700390324961279,
G=(602046282375688656758213480587526111916698976636884684818,174050332293622031404857552280219410364023488927386650641),
n=6277101735386680763835789423176059013767194773182842284081。
其中a和b为椭圆曲线方程的系数,p是素数,G为椭圆曲线Ep(a,b)上的点(即生成元G),n为G的阶。
根据上述这些参数分别计算发送方和接收方的公钥。
发送方:
发送方私钥Prs=ran1(1到n之间的随机数),发送方公钥Pus=S_mult(Prs,G)。
接收方:
接收方私钥Prr=ran2(1到n之间的随机数),接收方公钥Pur=S_mult(Prr,G)。
使用发送方私钥Prs、接收方私钥Prr和生成元G进行点乘法可以生成ECC加密算法的会话密钥Sk。为了保证数据安全,发送方私钥Prs、接收方私钥Prr不公开,而发送方公钥Pus与接收方公钥Pur是公开的,因此会话密钥Sk可以表示为Sk=S_mult(Pur,Prs)=S_mult(Pus,Prr),转换为点坐标形式即Sk=(xk,yk),其中xk为横轴的点坐标,yk为纵轴的点坐标。
如图1所示,本发明提供的基于椭圆曲线密码学的文本加密方法,包括:
步骤101:获取待加密明文消息。
步骤102:将所述待加密明文消息转换为待加密ASCII码数组;所述待加密ASCII数组中的每个元素均为一个ASCII码值;各所述ASCII码值的位数相同。
步骤103:对所述待加密ASCII码数组中的各所述ASCII码值依次添加位置索引,得到待加密字符串数组;各所述位置索引的位数相同。
步骤104:对所述待加密字符串数组中的各字符串中的ASCII码值分别做设定模数的模运算,并根据模运算后的余数对所述待加密字符串数组中的各字符串进行分组,得到多个字符串组;所述设定模数为2的整数倍;所述字符串组的个数等于所述设定模数。
步骤105:对各所述字符串组中的字符串分别进行拼接,得到多个待加密拼接字符串,并将各所述待加密拼接字符串分别转换为整数,得到多个待加密整数值。
步骤106:确定椭圆曲线加密的生成元,并随机生成发送方私钥、接收方私钥和加密模式判定数。其中,所述发送方私钥和所述接收方私钥均为1到n之间的随机数,n为所述生成元的阶。
步骤107:根据所述发送方私钥、所述接收方私钥和所述生成元生成会话密钥,并根据所述会话密钥确定对应的加密矩阵。
步骤108:对所述加密模式判定数做所述设定模数的模运算,并根据模运算后的余数确定加密模式;所述加密模式为多个所述待加密整数值在加密时的排列模式。
步骤109:根据所述加密矩阵和所述加密模式,对各所述待加密整数值进行加密,得到多个密文;所述密文的个数为所述待加密整数值的个数的一半。
优选地,步骤109,具体包括:1)根据所述加密模式,对各所述待加密整数值进行排列后两两分组,得到多个待加密整数对;2)根据所述加密矩阵,分别对各所述待加密整数对进行矩阵乘法运算,得到多个密文。
如图2所示,本发明提供的基于椭圆曲线密码学的文本解密方法,包括:
步骤201:获取发送方发送的接收方私钥、发送方公钥、加密模式和密文;所述发送方公钥是根据发送方的发送方私钥和椭圆曲线加密的生成元生成的。
步骤202:根据所述接收方私钥和所述发送方公钥生成会话秘钥,并根据所述会话密钥确定对应的解密矩阵。
步骤203:根据所述解密矩阵和所述加密模式,对各所述密文进行解密,得到多个待解密整数值;所述待解密整数值的个数为所述密文的个数的二倍。
步骤204:根据设定位数信息,将各所述待解密整数值分别转换为待解密拼接字符串;所述设定位数信息包括:第一设定位数和第二设定位数;所述第一设定位数为发送方设定的位置索引的位数;所述第二设定位数为发送方设定的ASCII码值的位数。
步骤205:将各所述待解密拼接字符串进行拼接,得到二次拼接字符串。
步骤206:根据所述设定位数信息,对所述二次拼接字符串进行分割,得到待解密字符串数组。
步骤207:根据所述待解密字符串数组中的各字符串中的位置索引分别对所述待解密字符串数组中的各字符串中的ASCII码值进行排列,得到待解密ASCII码数组。
步骤208:根据所述待解密ASCII码数组确定解密后明文消息。
优选地,步骤203,具体包括:1)根据所述解密矩阵,分别对各所述密文进行矩阵乘法运算,得到多个待解密整数对;2)根据所述加密模式,分别对各所述待解密整数对进行拆分后排列,得到多个待解密整数值。
相对应地,本发明提供的基于椭圆曲线密码学的文本加解密方法,包括:加密过程和解密过程。所述加密过程如上述步骤101至步骤109所示,所述解密过程如上述步骤201至步骤208所示,在此不做赘述。
进一步地,步骤204,具体包括:1)将各所述待解密整数值分别转换为对应的字符串,得到多个转换后字符串;2)若所述转换后字符串的位数不是第三设定位数的整数倍,则在所述转换后字符串前追加0,直到所述转换后字符串的位数是所述第三设定位数的整数倍;所述第三设定位数为所述第一设定位数与所述第二设定位数的和;3)若所述转换后字符串的位数是所述第三设定位数的整数倍,则将所述转换后字符串确定为所述待解密拼接字符串。
进一步地,所述加密过程还包括:根据所述发送方私钥和所述生成元生成发送方公钥。
进一步地,所述解密过程还包括:获取发送方发送的设定位数信息。
作为一种具体的实施方式,所述设定模数为4;所述ASCII码值和所述位置索引均为十进制数值,且所述ASCII码值的位数为3。
下面以所述设定模数等于4,待加密明文消息为图像版权信息为例,对本发明提供的基于椭圆曲线密码学的文本加/解密方法进行详细论述。
如图3所示,加密处理过程具体包括:
步骤1:将原始明文消息M转换为对应的ASCII码值,记为数组Asc。
步骤2:根据Asc中数值的初始排列顺序增加位置索引,分别判定索引与ASCII码值的长度,将每位用“0”进行填充,处理为固定位数的字符串。对Asc中的每位ASCII值做模运算(取模数为4),按照余数的值分为4组。
步骤3:将每组中的字符串进行拼接,并对字符串进行截取,判定字符串中的字符是否为0,若为0则去掉,直到第一个不为0的字符,将Asc转换为对应的四个字符串str_mode0、str_mode1、str_mode2、str_mode3,并进一步转换为整数int_mode0、int_mode1、int_mode2、int_mode3。
步骤4:生成随机数ran1、ran2、ran3(0<ran1<n,0<ran2<n,0<ran3<n),其中随机数ran1作为发送方私钥Prs,随机数ran2作为接收方私钥Prr,随机数ran3作为加密模式判定数,用于判定加密模式。
步骤6:对随机数ran3做模运算(取模数为4),根据以下得到的余数确定如下加密模式:
①当余数为0时,加密模式为mode0,对应密文对为Mat1=(int_mode0×xk,int_mode1×yk)、Mat2=(int_mode2×xk,int_mode3×yk);
②当余数为1时,加密模式为mode1,对应密文对为Mat1=(int_mode1×xk,int_mode2×yk)、Mat2=(int_mode3×xk,int_mode0×yk);
③当余数为2时,加密模式为mode2,对应密文对为Mat1=(int_mode2×xk,int_mode3×yk)、Mat2=(int_mode0×xk,int_mode1×yk);
④当余数为3时,加密模式为mode3,对应密文对为Mat1=(int_mode3×xk,int_mode0×yk)、Mat2=(int_mode1×xk,int_mode2×yk)。
步骤7:将加密矩阵Me和随机加密模式下的整数对做矩阵乘法生成密文对Mat1和Mat2,根据发送方私钥Prs生成发送方公钥Pus,并将密文对Mat1和Mat2、确定的加密模式和发送方公钥Pus发送到接收端。
如图3所示,解密处理过程具体包括:
步骤2:根据密文对Mat1和Mat2、确定的加密模式以及解密矩阵Md,通过解密矩阵Md与接收到的密文对Mat1和Mat2进行矩阵乘法,得到整数int_mode0、int_mode1、int_mode2、int_mode3,转换为字符串str_mode0、str_mode1、str_mode2、str_mode3。
步骤3:计算字符串str_mode0、str_mode1、str_mode2、str_mode3的长度能否整除索引长度和ASCII码长度之和。若不能整除,则字符串前追加“0”,重复步骤3。若能整除,则说明字符串无删除,将字符串str_mode0、str_mode1、str_mode2、str_mode3拼接后进入步骤4。
步骤4:将拼接后的字符串转换为整数并进行分割,根据索引排列为对应的ASCII值数组De_Asc,将De_Asc中的ASCII值转换为对应的字符即可获得原始明文消息M。
实施例二
本实施例以待加密明文信息为“版权所有者信息(所有者姓名):张昭”为例,在硬件平台为Intel(R)Core(TM)i5-6200U CPU,2.30GHz,内存12GB和软件环境为Windows 10,python3.7下进行实验测试和性能评估。其中,所用的椭圆曲线参数已在实施例一中所述的“椭圆曲线加密算法”中做了说明。
首先,执行实施例一中的加密处理过程,得到各步骤的加密结果如下:
(1)将明文信息M(图像版权消息)转换为ASCII码数组Asc。
M=“版权所有者信息(所有者姓名):张昭”;
Asc=[231,137,136,230,157,131,230,137,128,230,156,137,232,128,133,228,191,161,230,129,175,40,230,137,128,230,156,137,232,128,133,229,167,147,229,144,141,41,239,188,154,229,188,160,230,152,173]。
(2)分为四组(转换为47位ASCII值,因此索引位置的位数为2位):
str0=['02136','08128','10156','12232','13128','15228','21040','24128','26156','28232','29128','35144','39188','42188','43160','45152'];
str1=['01137','04157','07137','11137','14133','17161','19129','23137','27137','30133','31229','34229','36141','37041','41229','46173'];
str2=['03230','06230','09230','18230','22230','25230','40154','44230'];
str3=['00231','05131','16191','20175','32167','33147','38239']。
(3)进行字符串拼接,并转换为如下整数:
int_mode0=02136081281015612232131281522821040241282615628232291283514439188421884316045152;
int_mode1=1137041570713711137141331716119129231372713730133312293422936141370414122946173;
int_mode2=323006230092301823022230252304015444230;
int_mode3=231051311619120175321673314738239。
(4)生成的随机数ran1、ran2、ran3分别作为发送方私钥Prs、接收方私钥Prr以及加密模式判定数:
Prs=ran1=4740495114492921958327401514830598901320398072753940462096;
Prr=ran2=575577878210774215491390010288217430518904357233988380136;
ran3=309488725767425625935329630793774233564555912890646912644。
(5)根据发送方私钥Prs、接收方私钥Prr和生成元G生成会话密钥Sk:
Sk=(1642697802618745131050633899712508933532442905078451269526
047652883973495201009434700247514810609429930779938724204642453955857729317224851463623038620037350607759954199808,474900529699443577288647701597310448964376083739047651868964486420661006019966421090644545460564892081559559174164123838000292542847604363929284915486551502608397537760896)。
(6)对随机数ran3做模运算(取模数为4),此实例中(ran3)mod4=0,所以加密模式采用mode0,生成的密文对Mat1和Mat2分别为:
Mat1=[3508936026539380433563180861957319961404234600929064327702053389227601726126181878951026391803852766678001541817813391324460000361377175104701905882875337326790054340945733552628813178482786843716702898481603561116187525006509336300322902863357730816,539981644222228750327510976463431369072284742340498505442769678260742362425261550487442307335357006982348527048143484523433662791094328324900696913922807916627170347653769046000516496855837042450693874905350488917344694296150313596495461269152251008];
Mat2=[530601624404788993967843131236149475096509990620328541379352678023534674846684156380681148396185693311473842241968608470661123666943185426210786202203376396506183720130277336847634742911564593152875083300707840,109726390275671373710946909404134495440734278942389767770825272690080797893075798995063633551145068228479362730023870434957254093043799730725888056411128351292851885587811376382350214611908345808410102144]。
(7)根据发送方私钥Prs计算发送方公钥Pus,将发送方公钥Pus、加密模式mode0、密文对Mat1和Mat2发送到接收端。
Pus=(285399746030057822225989029322968086802226959670100766891
2160118709847079644589648836335320824558018165548235658528,82508474991378488387918892753210050946290599626194904997968864052080425024533953604365409722062599492593725460353)。
其次,执行实施例一中的解密处理过程,得到各步骤的解密结果如下:
(1)根据接收方私钥Prr和发送方公钥Pus生成会话密钥Sk:
Sk=(1642697802618745131050633899712508933532442905078451269526
047652883973495201009434700247514810609429930779938724204642453955857729317224851463623038620037350607759954199808,474900529699443577288647701597310448964376083739047651868964486420661006019966421090644545460564892081559559174164123838000292542847604363929284915486551502608397537760896)。
(2)根据密文对Mat1和Mat2、加密模式mode0以及会话密钥Sk对应的解密矩阵Md计算出对应字符串:
str_mode0=02136081281015612232131281522821040241282615628232291283514439188421884316045152;
str_mode1=01137041570713711137141331716119129231372713730133312293422936141370414122946173;
str_mode2=0323006230092301823022230252304015444230;
str_mode3=00231051311619120175321673314738239。
(3)对字符串进行拼接,拼接后的字符串为:0213608128101561223213128152282104024128261562823229128351443918842188431604515201137041570713711137141331716119129231372713730133312293422936141370414122946173032300623009230182302223025230401544423000231051311619120175321673314738239。
(4)根据索引长度及ASCII值进行分割,按照索引排列恢复ASCII值数组De_Asc,按照ASCII映射规则将数组De_Asc转换为对应字符,解密后文本数据为:“版权所有者信息(所有者姓名):张昭”。
时间性能分析结果如下:
传统的ECC算法在选定椭圆曲线Ep(a,b)的基本参数(系数a、b,素数p,生成元G,以及G的阶n)后,首先将待发送的明文消息M转换为ASCII码,分组后进一步转换为大整数并映射到椭圆曲线散点图上,接着根据发送方私钥Prs和接收方公钥Pur将明文信息在散点图上的对应点使用点加法进行加密,最后将密文数据和发送方公钥Pus一起发送到接收方进行解密。接收方通过其私钥Pur、接收到的密文数据和发送方公钥Pus使用点减法进行解密。
本发明改进了明文编码方式,结合模运算对转换为ASCII码的明文数据进行分组,同时结合矩阵乘法取代了加解密过程中的点加法和点减法运算。通过对不同字符数量文本信息的ECC算法的时间性能进行测试,明文编码方式改进前后的时间消耗对比如表1所示。
表1明文编码方式改进前后的时间消耗对比表
从表1可以看出,随着待加密字符个数的增加,加、解密时间也呈现规律性递增。明文编码方式改进后,加密时间平均提高了18%,解密时间平均提高了45%。因此证明本发明通过改进的明文编码方式以及结合矩阵乘法,有效缩短了加解密时间。
安全性分析结果如下:
1)密钥空间
加密技术的安全性在很大程度上取决于所用密钥的大小。一般情况下,加密算法密钥越长,密钥空间越大,通过穷举法破解的难度就越大,但是增加密钥长度时往往会导致计算量的增加。由于ECC算法的会话密钥Sk是通过随机数ran1、ran2和生成元G生成的,因此对Sk中横轴点坐标xk和纵轴点坐标yk位数进行取值,范围为57≤xk≤173、57≤yk≤173。相较于RSA算法,ECC算法实现了较小密钥空间下的强安全性,其所需的密钥量远小于基于有限域上的离散对数问题的公钥体制的密钥量。
2)密钥敏感性
密钥敏感性是指在加解密过程中,初始密钥发生微小的变化,经密钥序列发生器或迭代函数作用后所产生的密钥发生巨大变化,从而加解密数据发生巨大变化。假设发送方向接收方发送消息“版权所有者信息(所有者姓名):张昭”,此时原始会话密钥、修改后会话密钥及密文对解密结果如表2所示。
表2原始会话密钥、修改后会话密钥及对应的密文对解密结果对比表
从表2可以看出,细微修改原始会话密钥Sk=(xs,ys)中的ys为ys-1后,恢复对应的ASCII值时会出现位置索引字符越界问题,无法正常恢复信息。
3)唯密文攻击
假设密码分析者知道加密算法和密文,当密钥非常大时,穷举攻击会花费数年的时间,即使能够被破解,信息也将失去原本的价值,而且为了避免攻击者从密文中发现规律,本发明采用随机数来确定生成密文对的加密模式,攻击者无法对密文进行频率分析,有效防止了唯密文攻击。
4)已知明文攻击
假设密码分析者知道加密算法、密文和用密钥形成的一个或多个明文—密文对,在加密过程中产生的随机数ran1和ran2分别作为发送方与接收方的私钥,由于每次加密过程中都会产生不同的会话密钥,且根据随机数每次选用的加密模式也不同,从而即使相同的消息加密生成的密文对也不相同,因此已知明文攻击不会对信息造成伤害。
假设发送方向接收方发送两次相同的消息“版权所有者信息(所有者姓名):张昭”,此时两次加密的会话密钥、加密模式如表3所示,生成的密文对如图6和图7所示,其中,图6为第一次生成的密文对,图7为第二次生成的密文对。
表3两次加密的会话密钥、加密模式对比表
从表3可以看出,对于相同的消息,两次加密过程生成的会话密钥及对应的加密模式均不相同,因此具有较好的抗唯密文攻击和抗已知明文攻击的特性。
从图6和图7中可以看出,由于发送方私钥、接收方私钥以及加密模式均由随机数决定,因此即使对同一消息进行加密,两次加密后生成的密文对也不相同。
与现有椭圆曲线文本加密方法的性能比较结果如下:
表4为待加密消息M=“National Institute ofTechnology,Manipur,795004”时,本发明与现有利用ECC的文本加密方案的综合性能对比结果。
表4本发明与现有不同方案的加/解密性能对比结果表
从表4可以看出,在密文对大小相对较小的情况下,本发明耗费的加密时间和解密时间也小于其他加密方案。方案一通过将消息分块并执行异或运算来对字符进行编码,然后将结果映射到椭圆曲线,该方案通过对加密消息进行签名保证了数据安全性和完整性,但是签名增加了加密过程的复杂度。方案二至方案四都是先将文本消息转换成ASCII值,然后分别利用根据最大值确定数字位数进行填充后分组、转换为十六进制并进行分组和先分组再从分组中形成大整数的方式完成消息映射,这三种方案的密钥对大小都较小,避免了代价高昂的映射操作,但是密文消息容易根据频率分析被攻击者暴力破解且对明文信息对应的ASCII值有限制。方案五对于较小的消息而言非常快,但是当消息变大时效率不高,且查找表导致传输开销较大。
通过分析以上椭圆曲线文本加密方案在明文信息映射过程中存在的问题,本发明改进了明文的编码方式,减少了标量乘法相关计算,通过随机数来确定处理后字符串信息的加密模式的方法也避免了生成加密文本时的频率映射问题。另外,字符串与会话密钥进行矩阵乘法从而产生密文对,密文对大小由整数对和加密矩阵共同决定,解决了版权所有者和用户之间共享公共查找表的开销问题,映射安全和数据加密也为版权信息的文本提供了双重安全保证。
实施例三
为了执行上述实施例一对应的方法,以实现相应的功能和技术效果,下面提供一种基于椭圆曲线密码学的文本加密系统和一种基于椭圆曲线密码学的文本解密系统。
具体地,所述文本加密系统包括:
明文消息获取模块,用于获取待加密明文消息。
ASCII码转换模块,用于将所述待加密明文消息转换为待加密ASCII码数组;所述待加密ASCII数组中的每个元素均为一个ASCII码值;各所述ASCII码值的位数相同。
添加索引模块,用于对所述待加密ASCII码数组中的各所述ASCII码值依次添加位置索引,得到待加密字符串数组;各所述位置索引的位数相同。
模运算分组模块,用于对所述待加密字符串数组中的各字符串中的ASCII码值分别做设定模数的模运算,并根据模运算后的余数对所述待加密字符串数组中的各字符串进行分组,得到多个字符串组;所述设定模数为2的整数倍;所述字符串组的个数等于所述设定模数。
待加密整数值确定模块,用于对各所述字符串组中的字符串分别进行拼接,得到多个待加密拼接字符串,并将各所述待加密拼接字符串分别转换为整数,得到多个待加密整数值。
随机生成模块,用于确定椭圆曲线加密的生成元,并随机生成发送方私钥、接收方私钥和加密模式判定数。
加密矩阵确定模块,用于根据所述发送方私钥、所述接收方私钥和所述生成元生成会话密钥,并根据所述会话密钥确定对应的加密矩阵。
加密模式确定模块,用于对所述加密模式判定数做所述设定模数的模运算,并根据模运算后的余数确定加密模式;所述加密模式为多个所述待加密整数值在加密时的排列模式。
密文生成模块,用于根据所述加密矩阵和所述加密模式,对各所述待加密整数值进行加密,得到多个密文;所述密文的个数为所述待加密整数值的个数的一半。
所述文本解密系统包括:
密文获取模块,用于获取发送方发送的接收方私钥、发送方公钥、加密模式和密文;所述发送方公钥是根据发送方的发送方私钥和椭圆曲线加密的生成元生成的。
解密矩阵确定模块,用于根据所述接收方私钥和所述发送方公钥生成会话秘钥,并根据所述会话密钥确定对应的解密矩阵。
待解密整数值确定模块,用于根据所述解密矩阵和所述加密模式,对各所述密文进行解密,得到多个待解密整数值;所述待解密整数值的个数为所述密文的个数的二倍。
转换模块,用于根据设定位数信息,将各所述待解密整数值分别转换为待解密拼接字符串;所述设定位数信息包括:第一设定位数和第二设定位数;所述第一设定位数为发送方设定的位置索引的位数;所述第二设定位数为发送方设定的ASCII码值的位数。
拼接模块,用于将各所述待解密拼接字符串进行拼接,得到二次拼接字符串。
分割模块,用于根据所述设定位数信息,对所述二次拼接字符串进行分割,得到待解密字符串数组。
按索引排列模块,用于根据所述待解密字符串数组中的各字符串中的位置索引分别对所述待解密字符串数组中的各字符串中的ASCII码值进行排列,得到待解密ASCII码数组。
明文消息确定模块,用于根据所述待解密ASCII码数组确定解密后明文消息。
实施例四
本发明实施例还提供两种电子设备。
第一种电子设备,包括第一存储器及第一处理器,所述第一存储器用于存储第一计算机程序,所述第一处理器运行所述第一计算机程序以使所述电子设备执行实施例一中的基于椭圆曲线密码学的文本加密方法。
第二种电子设备,包括第二存储器及第二处理器,所述第二存储器用于存储第二计算机程序,所述第二处理器运行所述第二计算机程序以使所述电子设备执行实施例一中的基于椭圆曲线密码学的文本解密方法。
优选地,上述两种电子设备均可以是服务器。
另外,本发明还提供一种计算机可读存储介质,其存储有计算机程序,该计算机程序被处理器执行时实现实施例一中的基于椭圆曲线密码学的文本加密方法、文本解密方法或文本加解密方法。
本发明公开了一种基于椭圆曲线密码学的快速文本加/解密方法,可实现数字图像版权等中英文文本信息的网络安全传输,降低加密/解密的通信和计算成本。首先,将文本信息转换为ASCII值,对每位ASCII值做模运算并添加位置索引,按照余数将其分为4组并转换为字符串形式;然后根据生成的随机数确定发送方密钥(即发送方私钥)、接收方密钥(即接收方私钥)及加密模式,将字符串转换为整数,按照当前的加密模式对整数对进行排列,并将排列后的整数对与会话密钥进行矩阵乘法后产生两个密文对并发送到接收方;最后接收方根据密文信息、加密模式以及会话密钥对接收到的密文对进行解密。本发明解决了明文只能由英文、数字或符号组成,及中英文转换为ASCII码后的差异问题,改进的明文编码方式及随机加密模式提高了映射速度和数据安全性。
为了确保数字图像版权信息的传输安全,本发明通过改进明文的编码方式,结合模运算和随机数完成明文消息到加密前整数对的转换,对标量乘法相关计算的减少等措施有效的提高了加密速度。通过随机数来确定处理后字符串信息的加密模式的方法也避免了生成加密文本时的频率映射问题,提高了数据传输过程的安全性。另外,字符串与会话密钥进行矩阵乘法从而产生密文对,解决了版权所有者和用户之间共享公共查找表的开销问题,映射安全和数据加密也为文本提供了双重安全保证。实例结果表明,本发明在降低映射开销的同时保证了数据传输和访问过程的安全性,可进一步应用于图像加密,通过对像素进行分组并进行相应映射来隐藏图像中的数据。
综上所述,本发明具有以下优势:
1)设计了一种改进的明文编码方式,通过将明文文本转换为ASCII码值并作模运算对数据进行分组,有效解决了中英文转换为ASCII码值后的差异问题,同时还提高了加密过程的数据转换速度。
2)设计了一种随机加密模式,通过随机数来确定处理后字符串信息的加密模式,使生成的密文对消除了频率映射的现象,有效解决了数据传输过程中的安全性问题。
3)将字符串与会话密钥进行矩阵乘法从而产生密文对,降低了版权所有者和用户之间共享公共查找表的开销,同时映射安全和数据加密也为版权信息的文本提供了双重安全保证。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种基于椭圆曲线密码学的文本加密方法,其特征在于,所述文本加密方法包括:
获取待加密明文消息;
将所述待加密明文消息转换为待加密ASCII码数组;所述待加密ASCII数组中的每个元素均为一个ASCII码值;各所述ASCII码值的位数相同;
对所述待加密ASCII码数组中的各所述ASCII码值依次添加位置索引,得到待加密字符串数组;各所述位置索引的位数相同;
对所述待加密字符串数组中的各字符串中的ASCII码值分别做设定模数的模运算,并根据模运算后的余数对所述待加密字符串数组中的各字符串进行分组,得到多个字符串组;所述设定模数为2的整数倍;所述字符串组的个数等于所述设定模数;
对各所述字符串组中的字符串分别进行拼接,得到多个待加密拼接字符串,并将各所述待加密拼接字符串分别转换为整数,得到多个待加密整数值;
确定椭圆曲线加密的生成元,并随机生成发送方私钥、接收方私钥和加密模式判定数;
根据所述发送方私钥、所述接收方私钥和所述生成元生成会话密钥,并根据所述会话密钥确定对应的加密矩阵;
对所述加密模式判定数做所述设定模数的模运算,并根据模运算后的余数确定加密模式;所述加密模式为多个所述待加密整数值在加密时的排列模式;
根据所述加密矩阵和所述加密模式,对各所述待加密整数值进行加密,得到多个密文;所述密文的个数为所述待加密整数值的个数的一半。
2.根据权利要求1所述的基于椭圆曲线密码学的文本加密方法,其特征在于,所述根据所述加密矩阵和所述加密模式,对各所述待加密整数值进行加密,得到多个密文,具体包括:
根据所述加密模式,对各所述待加密整数值进行排列后两两分组,得到多个待加密整数对;
根据所述加密矩阵,分别对各所述待加密整数对进行矩阵乘法运算,得到多个密文。
3.一种基于椭圆曲线密码学的文本解密方法,其特征在于,所述文本解密方法包括:
获取发送方发送的接收方私钥、发送方公钥、加密模式和密文;所述发送方公钥是根据发送方的发送方私钥和椭圆曲线加密的生成元生成的;
根据所述接收方私钥和所述发送方公钥生成会话密钥,并根据所述会话密钥确定对应的解密矩阵;
根据所述解密矩阵和所述加密模式,对各所述密文进行解密,得到多个待解密整数值;所述待解密整数值的个数为所述密文的个数的二倍;
根据设定位数信息,将各所述待解密整数值分别转换为待解密拼接字符串;所述设定位数信息包括:第一设定位数和第二设定位数;所述第一设定位数为发送方设定的位置索引的位数;所述第二设定位数为发送方设定的ASCII码值的位数;
将各所述待解密拼接字符串进行拼接,得到二次拼接字符串;
根据所述设定位数信息,对所述二次拼接字符串进行分割,得到待解密字符串数组;
根据所述待解密字符串数组中的各字符串中的位置索引分别对所述待解密字符串数组中的各字符串中的ASCII码值进行排列,得到待解密ASCII码数组;
根据所述待解密ASCII码数组确定解密后明文消息。
4.根据权利要求3所述的基于椭圆曲线密码学的文本解密方法,其特征在于,所述根据所述解密矩阵和所述加密模式,对各所述密文进行解密,得到多个待解密整数值,具体包括:
根据所述解密矩阵,分别对各所述密文进行矩阵乘法运算,得到多个待解密整数对;
根据所述加密模式,分别对各所述待解密整数对进行拆分后排列,得到多个待解密整数值。
5.一种基于椭圆曲线密码学的文本加解密方法,其特征在于,所述文本加解密方法包括:加密过程和解密过程;
所述加密过程包括:
获取待加密明文消息;
将所述待加密明文消息转换为待加密ASCII码数组;所述待加密ASCII数组中的每个元素均为一个ASCII码值;各所述ASCII码值的位数相同;
对所述待加密ASCII码数组中的各所述ASCII码值依次添加位置索引,得到待加密字符串数组;各所述位置索引的位数相同;
对所述待加密字符串数组中的各字符串中的ASCII码值分别做设定模数的模运算,并根据模运算后的余数对所述待加密字符串数组中的各字符串进行分组,得到多个字符串组;所述设定模数为2的整数倍;所述字符串组的个数等于所述设定模数;
对各所述字符串组中的字符串分别进行拼接,得到多个待加密拼接字符串,并将各所述待加密拼接字符串分别转换为整数,得到多个待加密整数值;
确定椭圆曲线加密的生成元,并随机生成发送方私钥、接收方私钥和加密模式判定数;
根据所述发送方私钥、所述接收方私钥和所述生成元生成会话密钥,并根据所述会话密钥确定对应的加密矩阵;
对所述加密模式判定数做所述设定模数的模运算,并根据模运算后的余数确定加密模式;所述加密模式为多个所述待加密整数值在加密时的排列模式;
根据所述加密矩阵和所述加密模式,对各所述待加密整数值进行加密,得到多个密文;所述密文的个数为所述待加密整数值的个数的一半;
所述解密过程包括:
获取发送方发送的接收方私钥、发送方公钥、加密模式和密文;所述发送方公钥是根据发送方的发送方私钥和椭圆曲线加密的生成元生成的;
根据所述接收方私钥和所述发送方公钥生成会话秘钥,并根据所述会话密钥确定对应的解密矩阵;
根据所述解密矩阵和所述加密模式,对各所述密文进行解密,得到多个待解密整数值;所述待解密整数值的个数为所述密文的个数的二倍;
根据设定位数信息,将各所述待解密整数值分别转换为待解密拼接字符串;所述设定位数信息包括:第一设定位数和第二设定位数;所述第一设定位数为发送方设定的位置索引的位数;所述第二设定位数为发送方设定的ASCII码值的位数;
将各所述待解密拼接字符串进行拼接,得到二次拼接字符串;
根据所述设定位数信息,对所述二次拼接字符串进行分割,得到待解密字符串数组;
根据所述待解密字符串数组中的各字符串中的位置索引分别对所述待解密字符串数组中的各字符串中的ASCII码值进行排列,得到待解密ASCII码数组;
根据所述待解密ASCII码数组确定解密后明文消息。
6.根据权利要求5所述的基于椭圆曲线密码学的文本加解密方法,其特征在于,所述根据设定位数信息,将各所述待解密整数值分别转换为待解密拼接字符串,具体包括:
将各所述待解密整数值分别转换为对应的字符串,得到多个转换后字符串;
若所述转换后字符串的位数不是第三设定位数的整数倍,则在所述转换后字符串前追加0,直到所述转换后字符串的位数是所述第三设定位数的整数倍;所述第三设定位数为所述第一设定位数与所述第二设定位数的和;
若所述转换后字符串的位数是所述第三设定位数的整数倍,则将所述转换后字符串确定为所述待解密拼接字符串。
7.一种基于椭圆曲线密码学的文本加密系统,其特征在于,所述文本加密系统包括:
明文消息获取模块,用于获取待加密明文消息;
ASCII码转换模块,用于将所述待加密明文消息转换为待加密ASCII码数组;所述待加密ASCII数组中的每个元素均为一个ASCII码值;各所述ASCII码值的位数相同;
添加索引模块,用于对所述待加密ASCII码数组中的各所述ASCII码值依次添加位置索引,得到待加密字符串数组;各所述位置索引的位数相同;
模运算分组模块,用于对所述待加密字符串数组中的各字符串中的ASCII码值分别做设定模数的模运算,并根据模运算后的余数对所述待加密字符串数组中的各字符串进行分组,得到多个字符串组;所述设定模数为2的整数倍;所述字符串组的个数等于所述设定模数;
待加密整数值确定模块,用于对各所述字符串组中的字符串分别进行拼接,得到多个待加密拼接字符串,并将各所述待加密拼接字符串分别转换为整数,得到多个待加密整数值;
随机生成模块,用于确定椭圆曲线加密的生成元,并随机生成发送方私钥、接收方私钥和加密模式判定数;
加密矩阵确定模块,用于根据所述发送方私钥、所述接收方私钥和所述生成元生成会话密钥,并根据所述会话密钥确定对应的加密矩阵;
加密模式确定模块,用于对所述加密模式判定数做所述设定模数的模运算,并根据模运算后的余数确定加密模式;所述加密模式为多个所述待加密整数值在加密时的排列模式;
密文生成模块,用于根据所述加密矩阵和所述加密模式,对各所述待加密整数值进行加密,得到多个密文;所述密文的个数为所述待加密整数值的个数的一半。
8.一种基于椭圆曲线密码学的文本解密系统,其特征在于,所述文本解密系统包括:
密文获取模块,用于获取发送方发送的接收方私钥、发送方公钥、加密模式和密文;所述发送方公钥是根据发送方的发送方私钥和椭圆曲线加密的生成元生成的;
解密矩阵确定模块,用于根据所述接收方私钥和所述发送方公钥生成会话秘钥,并根据所述会话密钥确定对应的解密矩阵;
待解密整数值确定模块,用于根据所述解密矩阵和所述加密模式,对各所述密文进行解密,得到多个待解密整数值;所述待解密整数值的个数为所述密文的个数的二倍;
转换模块,用于根据设定位数信息,将各所述待解密整数值分别转换为待解密拼接字符串;所述设定位数信息包括:第一设定位数和第二设定位数;所述第一设定位数为发送方设定的位置索引的位数;所述第二设定位数为发送方设定的ASCII码值的位数;
拼接模块,用于将各所述待解密拼接字符串进行拼接,得到二次拼接字符串;
分割模块,用于根据所述设定位数信息,对所述二次拼接字符串进行分割,得到待解密字符串数组;
按索引排列模块,用于根据所述待解密字符串数组中的各字符串中的位置索引分别对所述待解密字符串数组中的各字符串中的ASCII码值进行排列,得到待解密ASCII码数组;
明文消息确定模块,用于根据所述待解密ASCII码数组确定解密后明文消息。
9.一种电子设备,其特征在于,包括第一存储器及第一处理器,所述第一存储器用于存储第一计算机程序,所述第一处理器运行所述第一计算机程序以使所述电子设备执行如权利要求1至2中任意一项所述的基于椭圆曲线密码学的文本加密方法。
10.一种电子设备,其特征在于,包括第二存储器及第二处理器,所述第二存储器用于存储第二计算机程序,所述第二处理器运行所述第二计算机程序以使所述电子设备执行如权利要求3至4中任意一项所述的基于椭圆曲线密码学的文本解密方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211606811.7A CN116094716A (zh) | 2022-12-14 | 2022-12-14 | 基于椭圆曲线密码学的文本加解密方法、系统及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211606811.7A CN116094716A (zh) | 2022-12-14 | 2022-12-14 | 基于椭圆曲线密码学的文本加解密方法、系统及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116094716A true CN116094716A (zh) | 2023-05-09 |
Family
ID=86205478
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211606811.7A Pending CN116094716A (zh) | 2022-12-14 | 2022-12-14 | 基于椭圆曲线密码学的文本加解密方法、系统及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116094716A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117544309A (zh) * | 2024-01-10 | 2024-02-09 | 厦门身份宝网络科技有限公司 | 一种明密文混合计算存储和传输方法及系统 |
-
2022
- 2022-12-14 CN CN202211606811.7A patent/CN116094716A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117544309A (zh) * | 2024-01-10 | 2024-02-09 | 厦门身份宝网络科技有限公司 | 一种明密文混合计算存储和传输方法及系统 |
CN117544309B (zh) * | 2024-01-10 | 2024-03-22 | 厦门身份宝网络科技有限公司 | 一种明密文混合计算存储和传输方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8189775B2 (en) | Method of performing cipher block chaining using elliptic polynomial cryptography | |
AU729638B2 (en) | A non-deterministic public key encryption system | |
US8332651B2 (en) | Method of generating a password protocol using elliptic polynomial cryptography | |
US20100166174A1 (en) | Hash functions using elliptic curve cryptography | |
US8170203B2 (en) | Message authentication code with elliptic polynomial hopping | |
US8139765B2 (en) | Elliptical polynomial-based message authentication code | |
US8189771B2 (en) | Hash functions with elliptic polynomial hopping | |
US8351601B2 (en) | Elliptic polynomial cryptography with secret key embedding | |
US8331558B2 (en) | Method of cipher block chaining using elliptic curve cryptography | |
US8705740B2 (en) | Elliptic curve-based message authentication code system and method | |
WO2001076130A2 (en) | Authentication method and schemes for data integrity protection | |
US20100166175A1 (en) | Cryptographic hash functions using elliptic polynomial cryptography | |
US20100169658A1 (en) | Elliptic curve-based message authentication code | |
US20110200185A1 (en) | Method of performing elliptic polynomial cryptography with elliptic polynomial hopping | |
CN117278324B (zh) | 一种报文加密传输方法及系统 | |
WO2009115824A1 (en) | Encryption method | |
CN116094716A (zh) | 基于椭圆曲线密码学的文本加解密方法、系统及设备 | |
WO2023093004A1 (zh) | 密钥数据处理方法和电子设备 | |
US20130058483A1 (en) | Public key cryptosystem and technique | |
CN102136911A (zh) | 一种电子公文的加密方法 | |
KR20230117878A (ko) | 오류정정부호화를 이용한 부채널 공격 방지 방법 | |
Jasra et al. | Mapping images over elliptic curve for encryption | |
Young et al. | Backdoor attacks on black-box ciphers exploiting low-entropy plaintexts | |
Matyas et al. | Reversible data mixing procedure for efficient public-key encryption | |
CN112367159A (zh) | 一种面向医疗数据安全存储的混合加、解密方法及系统 |
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 |