CN116226874A - 一种数据处理方法、解密终端、加密终端及存储介质 - Google Patents
一种数据处理方法、解密终端、加密终端及存储介质 Download PDFInfo
- Publication number
- CN116226874A CN116226874A CN202111478409.0A CN202111478409A CN116226874A CN 116226874 A CN116226874 A CN 116226874A CN 202111478409 A CN202111478409 A CN 202111478409A CN 116226874 A CN116226874 A CN 116226874A
- Authority
- CN
- China
- Prior art keywords
- encryption
- determining
- modulus
- new parameter
- terminal
- 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
-
- 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
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Mobile Radio Communication Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例公开了一种数据处理方法、解密终端、加密终端及存储介质,根据预设条件随机生成多个素数和根据预设的范围随机生成的整数,确定公共模数和新的参数;基于新的参数、公共模数和根据预设的位数随机生成的加密指数,确定模反元素;根据所述新的参数、所述加密指数和所述模反元素对加密终端发送的密文消息进行解密,获取明文消息。在上述方案中,通过一定的参数选取策略生成数据处理的公钥和私钥,用全新的参数代替原加密算法中的公共模数,有效的防止攻击者进行因式分解攻击获取私钥,大大提高了数据处理的安全性。
Description
技术领域
本发明涉及安全领域,尤其涉及一种数据处理方法、解密终端、加密终端及存储介质。
背景技术
在保障信息安全各种功能特性的诸多技术中,信息加密是利用数学或物理手段,对电子信息在传输过程中和存储体内进行保护,是信息安全的核心和关键技术,它可以提高数据传输的安全性,保证传输数据的完整性。基于此,人们提出了许多密码的算法。
RSA加密算法被公认为是应用最为广泛的算法,随着计算机的计算力不断提升,传统RSA加密算法的安全性逐渐受到挑战,只能通过不断增加大素数因子的长度来提升加密算法的安全性,但是由于后续的模逆运算导致加密效率大幅下降,通过改进的RSA加密算法可以提升加密效率,但是在安全性方面是低于传统RSA加密算法的。
发明内容
本发明实施例提供了一种数据处理方法、解密终端、加密终端及存储介质,能够通过一定的参数选取合适的密钥,提高了数据处理的安全性。
本发明的技术方案是这样实现的:
本发明实施例提供了一种数据处理方法,应用于解密终端,所述方法包括:
根据预设条件随机生成多个素数和根据预设的范围随机生成的整数,确定公共模数和新的参数;
基于所述新的参数、所述公共模数和根据预设的位数随机生成的加密指数,确定模反元素;
根据所述新的参数、所述加密指数和所述模反元素对加密终端发送的密文消息进行解密,获取明文消息。
上述方案中,根据预设条件随机生成的多个素数和根据预设的范围随机生成的整数,确定公共模数和新的参数,包括:
将所述多个素数进行乘法运算,确定所述公共模数;
对所述公共模数和所述随机生成的整数进行运算,确定所述新的参数的位数;
通过所述新的参数的位数,确定新的参数;其中,所述新的参数与所述公共模数之间的余数不为零。
上述方案中,根据所述公共模数和所述随机生成的整数,确定所述新的参数的位数,包括:
根据所述公共模数,确定公共模数的位数;
通过所述公共模数的位数和所述随机生成的整数,确定所述新的参数的位数。
上述方案中,基于所述新的参数、所述公共模数和根据预设的位数随机进行生成的加密指数,确定模反元素,包括:
通过所述多个素数,确定与所述公共模数构成互素关系的第一个数;
通过所述新的参数,确定与所述新的参数构成互素关系的第二个数;
将所述第一个数和所述第二个数进行乘法运算,确定运算结果;
利用所述运算结果和所述加密指数,确定所述模反元素。
上述方案中,通过所述多个素数,确定与所述公共模数构成互素关系的第一个数,包括:
将所述多个素数分别与预设值进行差值运算,确定多个差值结果;
将所述多个差值结果进行乘法运算,确定所述第一个数。
上述方案中,通过所述新的参数,确定与所述新的参数构成互素关系的第二个数,包括:
将所述新的参数与预设值进行差值运算,确定所述第二个数。
上述方案中,利用所述运算结果和所述加密指数,确定所述模反元素,包括:
利用所述运算结果和所述加密指数,确定中间模反元素;
若所述中间模反元素的值大于零,则所述中间模反元素为所述模反元素;
若所述中间模反元素的值小于或等于零,则将所述中间模反元素和所述运算结果相加,确定所述模反元素。
上述方案中,根据所述新的参数、所述加密指数和所述模反元素对所述明文进行加密和解密,包括:
利用所述加密指数和所述新的参数,确定公钥;
利用所述模反元素和所述新的参数,确定私钥;
将所述公钥发送至加密终端;
接收所述密文消息,利用私钥对所述密文消息进行解密,得到所述明文消息;所述密文消息是所述加密终端利用所述公钥对所述明文消息进行加密后得到的。
上述方案中,解密终端接收所述密文消息,利用私钥进行解密,获取所述明文消息,包括:
将所述密文消息和所述模反元素进行计算,得到第一计算结果;
将所述第一计算结果和所述新的参数进行求余运算,得到所述明文消息。
本发明实施例提供了一种数据处理方法,应用于加密终端,所述方法包括:
接收解密终端发送的公钥;所述公钥由加密指数和新的参数组成;
利用所述公钥对明文消息进行加密,得到密文消息;
将所述密文消息发送至所述解密终端。
上述方案中,利用所述公钥对明文消息进行加密,得到密文消息,包括:
将所述明文消息和所述加密指数进行计算,得到第二计算结果;
利用所述第二计算结果和所述新的参数进行求余运算,对所述明文消息进行加密,获取所述密文消息。
本发明实施例提供一种解密终端,所述解密终端包括第一接收单元、第一确定单元和解密单元;其中,
第一接收单元,接收加密终端发送的密文消息;
第一确定单元,用于根据多个素数,确定公共模数;其中,所述多个素数通过预设的个数和位数随机生成;及根据所述公共模数,确定新的参数;以及根据所述新的参数和加密指数,确定模反元素;其中,所述加密指数根据预设的位数随机进行生成;
解密单元,用于根据所述新的参数、所述加密指数和所述模反元素对加密终端发送的密文消息进行解密,获取明文消息。
本发明实施例提供一种加密终端,所述加密终端包括第二接收单元、加密单元、第二确定单元、第二发送单元;其中,
第二接收单元,用于接收解密终端发送的公钥;所述公钥由加密指数和新的参数组成;
加密单元,用于利用所述公钥对明文消息进行加密,得到密文消息;
第二确定单元,用于将所述明文消息和所述加密指数进行计算,得到第一计算结果;及利用所述第一计算结果和所述新的参数进行求余运算,对所述明文消息进行加密,获取所述密文消息;
第二发送单元,用于将所述密文消息发送至解密终端。
本发明实施例提供一种解密终端,所述解密终端包括:
第一存储器,用于存储可执行指令;
第一处理器,用于执行所述第一存储器中存储的可执行指令时,当所述可执行指令被执行时,所述第一处理器执行所述的数据处理方法。
本发明实施例提供一种加密终端,所述加密终端包括:
第二存储器,用于存储可执行指令;
第二处理器,用于执行所述第二存储器中存储的可执行指令时,当所述可执行指令被执行时,所述第二处理器执行所述的数据处理方法。
本发明实施例提供了一种存储介质,所述存储介质存储有可执行指令,当所述可执行指令被执行时,用于引起第一处理器执行如本发明实施例所述的数据处理方法。
本发明实施例提供了一种存储介质,所述存储介质存储有可执行指令,当所述可执行指令被执行时,用于引起第二处理器执行如本发明实施例所述的数据处理方法。
本发明实施例提供了一种数据处理方法、解密终端、加密终端及存储介质,该方法包括:根据预设条件随机生成多个素数和根据预设的范围随机生成的整数,确定公共模数和新的参数;基于所述新的参数、所述公共模数和根据预设的位数随机生成的加密指数,确定模反元素;根据所述新的参数、所述加密指数和所述模反元素对加密终端发送的密文消息进行解密,获取明文消息。采用上述方案,通过一定的参数选取策略生成数据处理的公钥和私钥,用全新的参数代替原加密算法中的公共模数,有效地防止攻击者进行因式分解攻击获取私钥,大大提高了数据处理的安全性。
附图说明
图1为本发明实施例提供的一种应用于解密终端的数据处理方法的流程示意图一;
图2为本发明实施例提供的一种应用于解密终端的数据处理方法的流程示意图二;
图3为本发明实施例提供的一种应用于解密终端的数据处理方法的流程示意图三;
图4为本发明实施例提供的一种应用于解密终端的数据处理方法的流程示意图四;
图5为本发明实施例提供的一种应用于解密终端的数据处理方法的流程示意图五;
图6为本发明实施例提供的一种应用于解密终端的数据处理方法的流程示意图六;
图7为本发明实施例提供的一种应用于解密终端的数据处理方法的流程示意图七;
图8为本发明实施例提供的一种应用于解密终端的数据处理方法的流程示意图八;
图9为本发明实施例提供的一种应用于加密终端的数据处理方法的流程示意图一;
图10为本发明实施例提供的一种应用于加密终端的数据处理方法流程示意图二;
图11为本发明实施例提供的一种数据处理方法流程示意图;
图12为本发明实施例提供的另一种数据处理方法流程示意图;
图13为本发明实施例提供的一种解密终端的结构示意图一;
图14为本发明实施例提供的一种加密终端的结构示意图一;
图15为本发明实施例提供的一种解密终端的结构示意图二;
图16为本发明实施例提供的一种加密终端的结构示意图二。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。图1是本发明实施例提供一种应用于解密终端的数据处方法的流程示意图一,将结合图1示出的步骤进行说明。将结合图1示出的步骤进行说明。
S101、根据预设条件随机生成多个素数和根据预设的范围随机生成的整数,确定公共模数和新的参数。
在本发明实施例中,根据预设的条件随机生成的多个素数以及根据预设的的范围随机生成的整数,计算需要的公共模数N和新的参数x。
在本发明实施例中,预设的条件可以是根据预设的个数和位数来随机生成对应的素数。
示例性的,设定生成随机素数的位数length为大于等于512的随机整数;设定生成随机素数的个数j为大于2的偶数,则最终生成的随机素数的个数可以为4,6,8,10…12个等等,根据设定的位数和个数随机生成所需的素数。
在本发明实施例中,素数是这样的整数,它除了能表示为它自己和1的乘积以外,不能表示为任何其它两个整数的乘积,如:15=3*5,所以15不是素数;12=6*2=4*3,所以12也不是素数;13除了等于13*1以外,不能表示为其它任何两个整数的乘积,所以13是一个素数,素数也称之为“质数”。
在本发明的实施例中,位数理解为生成的素数的二进制表示时所占用的位数,如:10的二进制为1010,所以10的位数为4。
在本发明的实施例中,每次在随机生成素数时候可以重新随机获取位数且每次所有生成的位数不能相同。一般从安全的角度考虑,位数和个数越大,则安全性越高。
可以理解的是,在本发明的实施例中,根据预设条件随机生成多个素数和根据预设的范围随机生成的整数来计算公共模数和新的参数,使得数据加密算法的安全性更高。
S102、基于新的参数、公共模数和根据预设的位数随机进行生成的加密指数,确定模反元素。
在本发明实施例中,获取到公共模数和新的参数后,结合根据预设的位数随机生成的加密指数,计算模反元素。
在本发明实施例中,加密指数e可以根据预设的位数随机进行生成,预设的位数z可以为大于等于1024的任意整数,且预设的位数设置的越小,则后续的加密效率越高。
在本发明的实施例中,计算后获取的加密指数和新的参数构成所需的公钥;模反元素和新的参数构成所需的私钥。
可以理解的是,在本发明的实施例中,利用新的参数、公共模数和根据预设的位数随机进行生成的加密指数,获取模反元素。根据获取的模反元素,组成最终的私钥来对明文消息进行加密。
S103、根据新的参数、加密指数和模反元素对加密终端发送的密文消息进行解密,获取明文消息。
在本发明的实施例中,获取到新的参数、加密指数和模反元素后,由加密指数和新的参数构成的公钥对明文消息进行加密,由模反元素个新的参数所构成的私钥对加密后的明文消息进行解密。
在本发明的实施例中,用户在生成公钥和私钥后,私钥为自己进行保管,公钥可以对外公开,甚至可在网络服务器中注册。
可以理解的是,在本发明的实施例中,根据新的参数、加密指数和模反元素对明文消息进行加密和解密,提高了加密算法的安全性。
在本发明的一些实施例中,参见图2,图2是本发明实施例提供的一种应用于解密终端的数据处理方法的流程示意图二,图2示出的S101可以通过S1011至S1013实现,将结合图2示出的步骤进行说明。
S1011、将多个素数进行乘法运算,确定公共模数。
在本发明一些实施例中,根据预设条件生成多个素数后,将多个素数全部相乘,相乘的结果为求取的公共模数。
示例性的,根据预设条件,随机生成了4个素数,分别为a、b、c和d,则公共模数N=a×b×c×d。
S1012、对公共模数和随机生成的整数进行运算,确定新的参数的位数。
在本发明的一些实施例中,计算出公共模数后,根据获取的公共模数和随机生成的整数,计算新的参数的位数。
在本发明的一些实施例中,该整数根据预设的范围随机进行生成,如:在1到20之间随机生成整数M。
S1013、通过新的参数的位数,确定新的参数;其中,新的参数与公共模数之间的余数不为零。
在本发明的一些实施例中,根据公共模数和随机生成的整数计算出新的参数的位数后,根据新的参数已确定的位数,随机生成与该位数相对应的素数(新的参数),且生成新的参数和公共模数之间满足以下公式:
N mod x≠0 (1)
其中,N表示公共模数;x表示新的参数。
可以理解的是,在本发明的一些实施例中,利用原始加密算法中的公共模数和公共模数的位数计算新的参数位数,进而确定最终新的参数。引入新的参数代替原始加密算法中的公共模数,组成最终新的私钥,大大提高了数据处理的安全性。
在本发明的一些实施例中,参见图3,图3是本发明实施例提供的一种应用于解密终端的数据处理方法的流程示意图三,图3示出的S1012可以通过S10121至S10122实现,将结合图3示出的步骤进行说明。
S10121、根据公共模数,确定公共模数的位数。
在本发明的一些实施例中,获取到公共模数后,计算该公共模数的二进制表示时所占用的位数。
在本发明的一些实施例中,可以通过现有的程序获取该公共模数的位数,本发明不做限制。
S10122、通过公共模数的位数和随机生成的整数,确定新的参数的位数。
在本发明的一些实施例中,获取到公共模数的位数后,将公共模数的位数和该随机生成的整数相加或相减,确定新的参数的位数。
示例性的,假设获取的公共模数的位数为整数a,在1和20之间随机生成一个整数3,则新的参数位数X_length=a±3。
可以理解的是,在本发明的一些实施例中,利用公共模数,确定公共模数的位数,通过公共模数的位数和随机生成的整数,获取新的参数的位数,为后续获取对应的新参数提供条件。
在本发明的一些实施例中,参见图4,图4是本发明实施例提供的一种应用于解密终端的数据处理方法的流程示意图四,图4示出的S102可以通过S1021至S1024实现,将结合图4示出的步骤进行说明。
S1021、通过多个素数,确定与公共模数构成互素关系的第一个数。
在本发明的一些实施例中,根据随机生成的多个素数,确定与公共模数构成互素关系的第一个数。
在本发明的一些实施例中,公约数只有1的两个自然数可以构成互素关系。
示例性的,假设求取与8构成互素关系的第一个数:在1到8之中,与8形成互素关系的是1、3、5和7,所以与8构成互素关系的第一个数为4。
S1022、通过新的参数,确定与新的参数构成互素关系的第二个数。
在本发明的一些实施例中,获取到新的参数后,根据该参数,确定与其构成互素关系的第二个数。
S1023、将第一个数和第二个数进行乘法运算,确定运算结果。
在本发明的一些实施例中,在获取到第一个数和第二个数后,将两个数进行相乘,确定运算结果。
S1024、利用运算结果和加密指数,确定模反元素。
在本发明的一些实施例中,获取到运算结果后,结合根据预设的位数随机生成的加密指数,确定模反元素。
在本发明的一些实施例中,如果两个正整数a和n互素,那么一定可以找到整数b,使得ab-1被n整除,或者说ab被n除的余数是1。这时,b就叫做a的模反元素。
示例性的,3和11互素,那么3的模反元素就是4,因为(3×4)-1可以被11整除。显然,模反元素不止一个,4加减11的整数倍都是3的模反元素{...,-18,-7,4,15,26,...},即如果b是a的模反元素,则b+kn都是a的模反元素。
可以理解的是,在本发明的一些实施例中,通过计算获取模反元素,为后续获取加密算法的私钥提供条件。
在本发明的一些实施例中,参见图5,图5是本发明实施例提供的一种应用于解密终端的数据处理方法的流程示意图五,图5示出的S1021可以通过S10211至S10222实现,将结合图5示出的步骤进行说明。
S10211、将多个素数分别与预设值进行差值运算,确定多个差值结果。
在本发明的一些实施例中,在求与公共模数构成互素关系的第一个数时,通过将生成的多个素数分别与预设的值进行差值运算,得到多个差值结果。
示例性的,假设生成4个素数,分别为a、b、c和d,预设的值可以设置为1,将上述4个素数分别和1做差值,得到a-1=e、b-1=f、c-1=g、d-1=h四个差值结果。
S10212、将多个差值结果进行乘法运算,确定第一个数。
在本发明的一些实施例中,将得到的多个差值结果进行相乘,获取第一个数。
在本发明的一些实施例中,求取与公共模数构成互素关系的第一个数可以通过以下公式2进行计算:
在本发明的一些实施例中,S1022可以通过S10221实现,具体如下。
S10221、将新的参数与预设值进行差值运算,确定第二个数。
在本发明的一些实施例中,将新的参数与设置的值进行差值运算,确定第二个数。
在本发明的一些实施例中,求取与新的参数构成互素关系的第二个数可以通过以下公式3进行计算:
其中,x表示新的参数。
可以理解的是,在本发明的一些实施例中,通过获取第一个数和第二个数,为后续的求取模反元素提供条件。
在本发明的一些实施例中,参见图6,图6是本发明实施例提供的一种应用于解密终端的数据处理方法的流程示意图六,图6示出的S1024可以通过S10241至S10243实现,将结合图6示出的步骤进行说明。
S10241、利用运算结果和加密指数,确定中间模反元素。
在本发明的一些实施例中,获取到运算结果和加密指数之后,利用公式4,计算中间模反元素。
ed=1(modmax) (4)
其中,e为加密指数;d为中间模反元素,max为计算求取的第一个数和第二个数的乘积。
在本发明的一些实施例中,由公式(4)可以得出d和e是模乘法逆元的关系,在e和max已知的情况下,可以利用欧几里德算法来计算模乘法逆元,这里不再展开。
S10242、若中间模反元素的值大于零,则中间模反元素为模反元素。
在本发明的一些实施例中,根据公式(4)获取到中间模反元素后,将该模反元素和0进行对比,若中间模反元素的值大于零,则求取的中间模反元素为最终的模反元素。
S10243、若中间模反元素的值小于或等于零,则将中间模反元素和运算结果相加,确定模反元素。
在本发明的一些实施例中,将获取的中间模反元素和0进行比较,若该中间模反元素的值小于或等于0,则将该中间模反元素和之前计算得到的运算结果max相加,获取最终的模反元素。如下公式5所示:
d1=d+max (5)
其中,d为中间模反元素;d1为最终的模反元素。
可以理解的是,在本发明的一些实施例中,获取模反元素后,将获取的模反元素和零进行比较,确定最终的模反元素值大于0,进而使得后续生成的私钥更有效。
在本发明的一些实施例中,参见图7,图7是本发明实施例提供的一种应用于解密终端的数据处理方法的流程示意图七,图7示出的S103可以通过S1031至S1034实现,将结合图7示出的步骤进行说明。
S1031、利用加密指数和新的参数,确定公钥。
在本发明的一些实施例中,获取到加密指数和新的参数后,确定公钥。
示例性的,加密指数为e,新的参数为x,则公钥为(e,x)。
S1032、利用模反元素和新的参数,确定私钥。
在本发明的一些实施例中,获取到模反元素和新的参数后,确定私钥。
示例性的,模反元素为d1,新的参数为x,则私钥为(d1,x)。
S1033、将公钥发送至加密终端。
在本发明的一些实施例中,将公钥发送到加密终端,然后加密终端利用该公钥对明文消息进行加密,获取密文消息。
在本发明的一些实施例中,公钥是可以被公开的,如用户A要向用户B发送加密消息,A就要用B的公钥对消息进行加密,B接收到消息后,用私钥进行解密。
S1034、接收密文消息,利用私钥对密文消息进行解密,得到明文消息;密文消息是加密终端利用公钥对明文消息进行加密后得到的。
在本发明的一些实施例中,解密终端接收到加密终端发送的密文消息后,利用生成的私钥对密文消息进行解密,得到明文消息。
可以理解的是,在本发明的一些实施例中,解密终端获取公钥和私钥后,将公钥发送到加密终端,利用公钥进行加密,利用私钥进行解密。私钥由新的参数和模反元素组成,有效的防止攻击者进行因式分解攻击获取私钥,大大提高了数据处理的安全性。
在本发明的一些实施例中,参见图8,图8是本发明实施例提供的一种应用于解密终端的数据处理方法的流程示意图八,图8示出的S1034可以通过S10341至S10342实现,将结合图8示出的步骤进行说明。
S10341、将密文消息和模反元素进行计算,得到第一计算结果。
在本发明的一些实施例中,获取到密文消息后,将该密文消息和模反元素进行计算,得到第一计算结果。
S10342、将第一计算结果和新的参数进行求余运算,得到明文消息。
在本发明的一些实施例中,获取到第一结果后,将该第一结果和新的参数进行求余运算,获取明文消息。
在本发明的一些实施例中,将密文消息解密可以通过公式(6)进行计算。
其中,d1为模反元素。
上式中,密文消息、新的参数和模反元素都是已知的,根据公式(6)求取明文消息。
根据欧拉公式可以得到:
将公式(8)代入到公式(7)中可得:
可以理解的是,在本发明的一些实施例中,利用私钥进行解密。私钥由新的参数和模反元素组成,有效的防止攻击者进行因式分解攻击获取私钥,大大提高了数据处理的安全性。
图9是本发明实施例提供的一种应用于加密终端的数据处理方法的流程示意图一,将结合图9示出的步骤进行说明。
S201、接收解密终端发送的公钥;公钥由加密指数和新的参数组成。
在本发明的实施例中,解密终端生成公钥和私钥后,将私钥留着,将公钥发送到加密终端,加密终端接收解密终端发送的公钥。
S202、利用公钥对明文消息进行加密,得到密文消息。
在本发明的实施例中,加密终端接收到公钥后,利用该公钥对要发送的明文消息进行加密,得到密文消息。
S203、将密文消息发送至解密终端。
在本发明的实施例中,加密终端对明文消息进行加密,得到密文消息后,将该密文消息发送到解密终端处理。
参见图10,图10是本发明实施例提供的一种应用于加密终端的数据处理方法流程示意图二,图10示出的S202可以通过S2021至S2022实现,将结合各步骤进行说明。
S2021、将明文消息和加密指数进行计算,得到第二计算结果。
在本发明的一些实施例中,获取到要发送的明文消息以及加密指数后,将该明文消息和加密指数进行计算,获取第二计算结果。
在本发明的一些实施例中,加密时,先将明文变换成0至n-1的一个整数M。若明文较长,可先分割成适当的组,然后再进行交换。
S2022、利用第二计算结果和新的参数进行求余运算,对明文消息进行加密,获取密文消息。
在本发明的一些实施例中,获取到第二结果后,将该第二结果和获取的新的参数进行求余运算,得到加密后的密文消息,然后将密文消息通过公网通道进行发送。加密公式如下(10)所示。
C=Me=(modx) (10)
其中,C为密文消息;M为待加密的明文消息;x为新的参数;e为加密指数;Me为S2021中的第二计算结果。
上式中,待加密的明文消息、新的参数和加密指数都是已知的,根据公式(10)求取加密后的密文消息。
可以理解的是,传统的加密算法通过不断增加大素数因子的长度或增加密钥对的数量来提升加密算法的安全性和效率,但是由于后续原因使得改进的加密算法的安全性或效率低于传统的加密算法。而本发明通过一定的参数选取策略生成数据处理的公钥和私钥,用全新的参数代替原加密算法中的公共模数,有效的防止攻击者进行因式分解攻击获取私钥,进而获取明文消息,与传统加密算法相比,加密效率相当的同时大大提高了安全性。
本发明实施例提供了一种数据处理方法,可选的流程示意图如图11所示。
S301、解密终端随机生成素数,将生成的素数相乘获得公共模数。
S302、解密终端获取公共模数的位数,并结合随机生成的整数,得到新的参数的位数。
S303、解密终端根据新参数的位数,随机生成新的参数,并分别计算和公共模数构成互素关系的第一个数、和新的参数构成互素关系的第二个数。
S304、解密终端将获得的第一个数和第二个数相乘得到计算结果,结合随机生成的加密指数,获得模反元素。
S305、解密终端将由加密指数和新的参数组成的公钥发送给加密终端。
S306、加密终端获取公钥后,对明文消息进行加密,获得密文消息。
S307、加密终端将密文消息发送给解密终端。
S308、解密终端接收密文消息,利用由模反元素和新参数组成的私钥进行解密。
可以理解的是,在本发明的一些实施例中,在生成加密算法中的私钥和公钥时,引入新的参数代替原始加密算法中的公共模数,有效的防止攻击者进行因式分解攻击获取私钥,进而获取明文消息,大大提高了数据处理的安全性。
本发明实施例提供一种数据处理方法,可选的流程图如图12所示,具体步骤如下。
S1、设定随机生成大素数的个数j与位数length,满足j大于2的偶数,位数length为512到1024之间的随机整数,且要求每次所生成的length不能相同,设置公钥e的位数z。
S2、生成j个随机大素数,并将所有随机大素数相乘获得N。
S3、得到N的位数N_length,生成1到20之间的随机整数M,N_length随机加或减M得到随机大素数x的位数x_length。
S4、随机生成x_length位的随机大素数x,且要求Nmodx≠0。
S6、随机生成z位的随机大素数e,满足maxmode≠0。
S7、根据ed=1(modmax),获得e在模max下得逆d。
S8、若d>0,则执行S9,如d≤0,则执行S10。
S9、保留(e,x)为公钥,(d,x)为私钥。
S10、d=d+max后,执行S9。
S11、加密和解密明文消息。
可以理解的是,在本发明的一些实施例中,在生成加密算法中的私钥和公钥时,引入新的参数代替原始加密算法中的公共模数,最终生成由加密指数和新的参数构成所需的公钥以及由模反元素和新的参数构成的私钥,有效的防止攻击者进行因式分解攻击获取私钥,进而获取明文消息,大大提高了数据处理的安全性。
图13为本发明实施例提供的一种解密终端的结构示意图,该解密终端包括:第一接收单元1301、第一确定单元1302、解密单元1303;其中,
所述第一接收单元1301,用于接收加密终端发送的密文消息。
所述第一确定单元1302,用于根据预设条件随机生成多个素数和根据预设的范围随机生成的整数,确定公共模数和新的参数;以及基于所述新的参数、所述公共模数和根据预设的位数随机生成的加密指数,确定模反元素;
所述解密单元1303,用于根据所述新的参数、所述加密指数和所述模反元素对加密终端发送的密文消息进行解密,获取明文消息。
在本发明的一些实施例中,所述第一确定单元1302,还用于将所述多个素数进行乘法运算,确定所述公共模数;及对所述公共模数和所述随机生成的整数进行运算,确定所述新的参数的位数;以及通过所述新的参数的位数,确定新的参数;其中,所述新的参数与所述公共模数之间的余数不为零。
在本发明的一些实施例中,所述第一确定单元1302,还用于根据所述公共模数,确定公共模数的位数;以及通过所述公共模数的位数和所述随机生成的整数,确定所述新的参数的位数。
在本发明的一些实施例中,所述第一确定单元1302,还用于通过所述多个素数,确定与所述公共模数构成互素关系的第一个数;及通过所述新的参数,确定与所述新的参数构成互素关系的第二个数;及将所述第一个数和所述第二个数进行乘法运算,确定运算结果;以及利用所述运算结果和所述加密指数,确定所述模反元素。
在本发明的一些实施例中,所述第一确定单元1302,还用于将所述多个素数分别与预设值进行差值运算,确定多个差值结果;以及将所述多个差值结果进行乘法运算,确定所述第一个数。
在本发明的一些实施例中,所述第一确定单元1302,还用于将所述新的参数与预设值进行差值运算,确定所述第二个数。
在本发明的一些实施例中,所述第一确定单元1302,还用于利用所述运算结果和所述加密指数,确定中间模反元素;及若所述中间模反元素的值大于零,则所述中间模反元素为所述模反元素;以及若所述中间模反元素的值小于或等于零,则将所述中间模反元素和所述运算结果相加,确定所述模反元素。
在本发明的一些实施例中,所述第一确定单元1302,还用于利用所述加密指数和所述新的参数,确定公钥;以及利用所述模反元素和所述新的参数,确定私钥;
在本发明的一些实施例中,所述解密单元1301,还用于将所述公钥发送至加密终端;及接收所述密文消息,利用私钥对所述密文消息进行解密,得到所述明文消息;所述密文消息是所述加密终端利用所述公钥对所述明文消息进行加密后得到的。
在本发明的一些实施例中,所述第一确定单元1301,还用于将所述密文消息和所述模反元素进行计算,得到第一计算结果。
在本发明的一些实施例中,所述解密单元1302,还用于将所述第一计算结果和所述新的参数进行求余运算,得到所述明文消息。
可以理解的是,在上述解密终端所执行的方法中,通过一定的参数选取策略生成数据处理的公钥和私钥,用全新的参数代替原加密算法中的公共模数,有效的防止攻击者进行因式分解攻击获取私钥,进而获取明文消息,大大提高了数据处理的安全性。
图14为本发明实施例提供的一种加密终端的结构示意图,该加密终端包括:第二接收单元1401、加密单元1402、第二确定单元1403、第二发送单元1404;其中,
所述第二接收单元1401,用于接收解密终端发送的公钥;所述公钥由加密指数和新的参数组成。
所述加密单元1402,用于利用所述公钥对明文消息进行加密,得到密文消息。
所述第二确定单元1403,用于将所述明文消息和所述加密指数进行计算,得到第二计算结果;以及利用所述第二计算结果和所述新的参数进行求余运算,对所述明文消息进行加密,获取所述密文消息。
所述第二发送单元1404,用于将所述密文消息发送至所述解密终端。
可以理解的是,在上述加密终端所执行的方法中,通过一定的参数选取策略生成数据处理的公钥和私钥,用全新的参数代替原加密算法中的公共模数,有效的防止攻击者进行因式分解攻击获取私钥,进而获取明文消息,大大提高了数据处理的安全性。
基于上述实施例的方法,本发明实施例提供的一种解密终端的结构示意图,如图15所示,图15本发明实施例提供的一种解密终端的结构示意图,该解密终端包括:第一处理器1501和第一存储器1502;第一存储器1502存储第一处理器1501可执行的一个或者多个程序,当一个或者多个程序被执行时,通过第一处理器1501执行如本发明实施例所述的任意一种数据处理方法。
基于上述实施例的方法,本发明实施例提供的一种加密终端的结构示意图,如图16所示,图16本发明实施例提供的一种加密终端的结构示意图,该加密终端包括:第二处理器1601和第二存储器1602;第二存储器1602存储第二处理器1601可执行的一个或者多个程序,当一个或者多个程序被执行时,通过第二处理器1601执行如本发明实施例所述的任意一种数据处理方法。
本发明实施例还供了一种计算机可读存储介质,应用于解密终端,所述计算机存储介质存储有可执行指令,当所述可执行指令被执行时,用于引起第一处理器执行如本发明实施例所述的数据处理方法。
本发明实施例还供了一种计算机可读存储介质,应用于加密终端,所述计算机存储介质存储有可执行指令,当所述可执行指令被执行时,用于引起第二处理器执行如本发明实施例所述的数据处理方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (16)
1.一种数据处理方法,其特征在于,应用于解密终端,包括:
根据预设条件随机生成多个素数和根据预设的范围随机生成的整数,确定公共模数和新的参数;
基于所述新的参数、所述公共模数和根据预设的位数随机生成的加密指数,确定模反元素;
根据所述新的参数、所述加密指数和所述模反元素对加密终端发送的密文消息进行解密,获取明文消息。
2.根据权利要求1所述的方法,其特征在于,所述根据预设条件随机生成的多个素数和根据预设的范围随机生成的整数,确定公共模数和新的参数,包括:
将所述多个素数进行乘法运算,确定所述公共模数;
对所述公共模数和所述随机生成的整数进行运算,确定所述新的参数的位数;
通过所述新的参数的位数,确定新的参数;其中,所述新的参数与所述公共模数之间的余数不为零。
3.根据权利要求2所述的方法,其特征在于,所述根据所述公共模数和所述随机生成的整数,确定所述新的参数的位数,包括:
根据所述公共模数,确定公共模数的位数;
通过所述公共模数的位数和所述随机生成的整数,确定所述新的参数的位数。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述基于所述新的参数、所述公共模数和根据预设的位数随机进行生成的加密指数,确定模反元素,包括:
通过所述多个素数,确定与所述公共模数构成互素关系的第一个数;
通过所述新的参数,确定与所述新的参数构成互素关系的第二个数;
将所述第一个数和所述第二个数进行乘法运算,确定运算结果;
利用所述运算结果和所述加密指数,确定所述模反元素。
5.根据权利要求4所述的方法,其特征在于,所述通过所述多个素数,确定与所述公共模数构成互素关系的第一个数,包括:
将所述多个素数分别与预设值进行差值运算,确定多个差值结果;
将所述多个差值结果进行乘法运算,确定所述第一个数。
6.根据权利要求4所述的方法,其特征在于,所述通过所述新的参数,确定与所述新的参数构成互素关系的第二个数,包括:
将所述新的参数与预设值进行差值运算,确定所述第二个数。
7.根据权利要求4所述的方法,其特征在于,所述利用所述运算结果和所述加密指数,确定所述模反元素,包括:
利用所述运算结果和所述加密指数,确定中间模反元素;
若所述中间模反元素的值大于零,则所述中间模反元素为所述模反元素;
若所述中间模反元素的值小于或等于零,则将所述中间模反元素和所述运算结果相加,确定所述模反元素。
8.根据权利要求1所述的方法,其特征在于,所述根据所述新的参数、所述加密指数和所述模反元素对加密终端发送的密文消息进行解密,获取明文消息,包括:
利用所述加密指数和所述新的参数,确定公钥;
利用所述模反元素和所述新的参数,确定私钥;
将所述公钥发送至加密终端;
接收所述密文消息,利用私钥对所述密文消息进行解密,得到所述明文消息;所述密文消息是所述加密终端利用所述公钥对所述明文消息进行加密后得到的。
9.根据权利要求8所述的方法,其特征在于,所述接收所述密文消息,利用私钥进行解密,得到所述明文消息,包括:
将所述密文消息和所述模反元素进行计算,得到第一计算结果;
将所述第一计算结果和所述新的参数进行求余运算,得到所述明文消息。
10.一种数据处理方法,其特征在于,应用于加密终端,包括:
接收解密终端发送的公钥;所述公钥由加密指数和新的参数组成;
利用所述公钥对明文消息进行加密,得到密文消息;
将所述密文消息发送至所述解密终端。
11.根据权利要求10所述的方法,其特征在于,所述利用所述公钥对明文消息进行加密,得到密文消息,包括:
将所述明文消息和所述加密指数进行计算,得到第二计算结果;
利用所述第二计算结果和所述新的参数进行求余运算,对所述明文消息进行加密,获取所述密文消息。
12.一种解密终端,其特征在于,所述解密终端包括:
第一接收单元,接收加密终端发送的密文消息;
第一确定单元,用于根据多个素数,确定公共模数;其中,所述多个素数通过预设的个数和位数随机生成;及根据所述公共模数,确定新的参数;以及根据所述新的参数和加密指数,确定模反元素;其中,所述加密指数根据预设的位数随机进行生成;
解密单元,用于根据所述新的参数、所述加密指数和所述模反元素对加密终端发送的密文消息进行解密,获取明文消息。
13.一种加密终端,其特征在于,所述加密终端包括:
第二接收单元,用于接收解密终端发送的公钥;所述公钥由加密指数和新的参数组成;
加密单元,用于利用所述公钥对明文消息进行加密,得到密文消息;
第二确定单元,用于将所述明文消息和所述加密指数进行计算,得到第一计算结果;及利用所述第一计算结果和所述新的参数进行求余运算,对所述明文消息进行加密,获取所述密文消息;
第二发送单元,用于将所述密文消息发送至解密终端。
14.一种解密终端,其特征在于,所述解密终端包括:
第一存储器,用于存储可执行指令;
第一处理器,用于执行所述第一存储器中存储的可执行指令时,实现权利要求1-9任一项所述的数据处理方法。
15.一种加密终端,其特征在于,所述加密终端包括:
第二存储器,用于存储可执行指令;
第二处理器,用于执行所述第二存储器中存储的可执行指令时,实现权利要求10或11所述的数据处理方法。
16.一种计算机可读存储介质,其特征在于,所述存储介质存储有可执行指令,当所述可执行指令被执行时,用于引起第一处理器执行如权利要求1-9任一项所述的数据处理方法;或者,用于引起第二处理器执行如权利要求10或11所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111478409.0A CN116226874A (zh) | 2021-12-06 | 2021-12-06 | 一种数据处理方法、解密终端、加密终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111478409.0A CN116226874A (zh) | 2021-12-06 | 2021-12-06 | 一种数据处理方法、解密终端、加密终端及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116226874A true CN116226874A (zh) | 2023-06-06 |
Family
ID=86570148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111478409.0A Pending CN116226874A (zh) | 2021-12-06 | 2021-12-06 | 一种数据处理方法、解密终端、加密终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116226874A (zh) |
-
2021
- 2021-12-06 CN CN202111478409.0A patent/CN116226874A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6720424B1 (ja) | 鍵共有デバイス及び方法 | |
CN110348231A (zh) | 实现隐私保护的数据同态加解密方法及装置 | |
CN111510281B (zh) | 一种同态加密方法及装置 | |
CN109039640B (zh) | 一种基于rsa密码算法的加解密硬件系统及方法 | |
EP3334083A1 (en) | Method of rsa signature or decryption protected using a homomorphic encryption | |
WO2003065639A2 (en) | System and method of hiding cryptographic private keys | |
CN111404952B (zh) | 变电站数据加密传输方法、装置、计算机设备和存储介质 | |
CN107078906A (zh) | 公钥加密系统 | |
Abdeldaym et al. | Modified RSA algorithm using two public key and Chinese remainder theorem | |
CN113904808A (zh) | 一种私钥分发、解密方法、装置、设备及介质 | |
WO2013021360A1 (en) | Encryption and decryption method | |
CN115549891A (zh) | 同态加密方法、同态解密方法、同态计算方法及设备 | |
Kara et al. | A Probabilistic Public-Key Encryption with Ensuring Data Integrity in Cloud Computing | |
EP3698262B1 (en) | Protecting modular inversion operation from external monitoring attacks | |
CN117134906A (zh) | 多方隐私求交方法及相关装置 | |
JPWO2015166701A1 (ja) | 暗号化方法、プログラム、および、システム | |
KR101440680B1 (ko) | 중국인 나머지 정리에 기반한 준동형 암복호화 방법 및 이를 이용한 장치 | |
JP4563037B2 (ja) | 暗号化装置および復号化装置、並びにこれらを備えた暗号システム、暗号化方法および復号化方法 | |
EP2225846B1 (en) | Method to generate a private key in a Boneh-Franklin scheme | |
CN116226874A (zh) | 一种数据处理方法、解密终端、加密终端及存储介质 | |
WO2022172041A1 (en) | Asymmetric cryptographic schemes | |
US8306220B2 (en) | Method to generate a private key in a boneh-franklin scheme | |
EP3419213A1 (en) | Computer implemented method, computer system and computer readable computer program product | |
Rao et al. | Secure and practical outsourcing of linear programming in cloud computing: A survey | |
WO2018011825A1 (en) | Encryption and decryption of messages |
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 |