CN112287408B - Rsa单核数据系统 - Google Patents

Rsa单核数据系统 Download PDF

Info

Publication number
CN112287408B
CN112287408B CN202011573731.7A CN202011573731A CN112287408B CN 112287408 B CN112287408 B CN 112287408B CN 202011573731 A CN202011573731 A CN 202011573731A CN 112287408 B CN112287408 B CN 112287408B
Authority
CN
China
Prior art keywords
state
data
encrypted
parameter
computation
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.)
Active
Application number
CN202011573731.7A
Other languages
English (en)
Other versions
CN112287408A (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.)
Saixin semiconductor technology (Beijing) Co.,Ltd.
Original Assignee
Jiuzhou Huaxing Integrated Circuit Design Beijing Co ltd
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 Jiuzhou Huaxing Integrated Circuit Design Beijing Co ltd filed Critical Jiuzhou Huaxing Integrated Circuit Design Beijing Co ltd
Priority to CN202011573731.7A priority Critical patent/CN112287408B/zh
Publication of CN112287408A publication Critical patent/CN112287408A/zh
Application granted granted Critical
Publication of CN112287408B publication Critical patent/CN112287408B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本申请提供了一种RSA单核数据系统。该系统包括控制单元、第一运算单元、第二运算单元和寄存器,控制单元用于接收多条待加密数据,且将多条待加密数据分别写入第一运算单元和第二运算单元;每次循环在两个计算周期内完成,在第i次循环的第一个计算周期内,第一运算单元用于解算第m条待加密数据的第一参数,同时,第二运算单元用于解算第n条待加密数据的第二参数,在第i次循环的第二个计算周期内,第一运算单元用于解算第n条待加密数据的第一参数,同时,第二运算单元用于解算第m条待加密数据的第二参数;寄存器用于存储所有的第一参数和第二参数。该方案保证了第一运算单元和第二运算单元的同时计算,节约了资源。

Description

RSA单核数据系统
技术领域
本申请涉及RSA加密领域,具体而言,涉及一种RSA单核数据系统。
背景技术
RSA加密多采用Montgomery算法实现,将1024位或2048位的模乘分解成小运算单元并行运算。现有技术中采用Montgomery算法对一个2048位的数据进行加密或者解密,至少需要进行2048次模乘,而每次模乘需要经过多次循环(例如将2048位的数据用8个256位的数据进行表示,每次模乘需要经过8次循环),才能得到模乘的结果,模乘的每次循环需要解算两个参数,分别为第一参数qi和第二参数Si+1,每次循环中Si+1的值与qi的值有关。所以,想求得Si+1的值必须先求得qi的值。现有的RSA单核数据系统,一般采用第一运算单元解算qi的值,采用第二运算单元解算第二参数Si+1的值,所以,在每次循环中,必须等第一运算单元结算出qi的值后,第二运算单元才能解算第二参数Si+1的值,而下一次循环的第一参数的值又与上一次循环的第二参数的值有关,所以,下一次循环第一运算单元需要等上一次循环的第二运算单元解算完成后,才能进行解算,导致第一运算单元与第二运算单元不能同时进行计算,也就是说,在第一运算单元进行计算时,第二运算单元处于闲置的状态,同理,在第二运算单元进行计算时,第一运算单元处于闲置的状态,造成了RSA单核数据系统资源的浪费。
发明内容
本申请的主要目的在于提供一种RSA单核数据系统,以解决现有技术中RSA单核数据系统中的第一运算单元与第二运算单元不能同时进行计算的问题。
为了实现上述目的,根据本申请的一个方面,提供了一种RSA单核数据系统,包括控制单元、第一运算单元、第二运算单元和寄存器,所述控制单元用于接收多条待加密数据,且将多条所述待加密数据分别写入所述第一运算单元和所述第二运算单元;每次循环在两个计算周期内完成,在第i次循环的第一个计算周期内,所述第一运算单元用于解算第m条所述待加密数据的第一参数,同时,所述第二运算单元用于解算第n条所述待加密数据的第二参数,在第i次循环的第二个计算周期内,所述第一运算单元用于解算第n条所述待加密数据的第一参数,同时,所述第二运算单元用于解算第m条所述待加密数据的第二参数,其中,m为大于或者等于1的整数,n为大于或者等于1的整数,且m不等于n,i为大于或者等于0的整数;所述寄存器用于存储所有的所述第一参数和所述第二参数。
进一步地,所述数据系统还包括至少一个预运算单元,所述预运算单元用于求取多个预定参数,所述第一运算单元基于所述预定参数解算所述第一参数,所述第二运算单元基于所述预定参数解算所述第二参数。
进一步地,所述预运算单元的个数与所述待加密数据的条数相等。
进一步地,在所述待加密数据有两条的情况下,在第i次循环的第一个计算周期内,所述第一运算单元用于解算第一条待加密数据的第一参数,同时,所述第二运算单元用于解算第二条待加密数据的第二参数,在第i次循环的第二个计算周期内,所述第一运算单元用于解算第二条待加密数据的第一参数,同时,所述第二运算单元用于解算第一条待加密数据的第二参数。
进一步地,所述控制单元的状态机有十个不同的状态,分别为发输入请求状态、准备写输入状态、写输入状态、预运算状态、第一计算模乘状态、第二计算模乘状态、指数E的扫描状态、完成运算状态、发输出请求状态和输出状态,所述第一计算模乘状态用于控制所述第一运算单元解算所述第一参数,所述第二计算模乘状态用于控制所述第二运算单元解算所述第二参数,所述预运算状态用于控制所述预运算单元求取多个所述预定参数。
进一步地,在所述待加密数据有两条的情况下,所述状态机有93种组合状态。
进一步地,对一条所述待加密数据进行加密的操作为第一操作,对另一条所述待加密数据进行加密的操作为第二操作,在所述第一操作和所述第二操作在下一个计算周期同时跳入所述第一计算模乘状态或者所述第二计算模乘状态的情况下,控制其中的一个操作保持原状态或者进入空状态等待一个所述计算周期。
进一步地,所述第一操作和所述第二操作在下一个计算周期同时跳入所述第一计算模乘状态或者所述第二计算模乘状态的当前组合状态包括:所述第一操作处于所述第一计算模乘状态,且所述第二操作处于所述第二计算模乘状态;所述第一操作处于所述指数E的扫描状态,且所述第二操作处于所述第二计算模乘状态;所述第一操作处于所述第二计算模乘状态,且所述第二操作处于所述预运算状态;所述第一操作处于所述指数E的扫描状态,且所述第二操作处于所述预运算状态;所述第一操作处于所述预运算状态,且所述第二操作处于所述预运算状态;所述第一操作处于所述指数E的扫描状态,且所述第二操作处于所述指数E的扫描状态。
进一步地,在所述第一操作处于所述第一计算模乘状态,且所述第二操作处于所述第二计算模乘状态,下一个计算周期两个操作均预跳入所述第二计算模乘状态的情况下,控制所述第一操作停在所述第一计算模乘状态。
进一步地,在所述第一操作处于所述指数E的扫描状态,且所述第二操作处于所述第二计算模乘状态,下一个计算周期两个操作均预跳入所述第一计算模乘状态的情况下,控制所述第一操作首先进入所述第一计算模乘状态,所述第二操作停在所述第二计算模乘状态。
应用本申请的技术方案,将每次循环在两个计算周期内完成,对于每一次循环,第一计算周期内第一运算单元计算其中的一条待加密数据的第一参数,同时,第二运算单元计算另一条待加密的数据的第二参数,第二计算周期内第一运算单元计算另一条待加密的数据的第一参数,同时,第二运算单元计算一条待加密数据的第二参数,使得在每个计算周期内第一运算单元和第二运算单元可以同时进行运算,由于寄存器将计算得到的第一参数和第二参数进行了存储,使得下一次计算第一参数时可以从寄存器中获取上一次计算得到的第二参数,同理,使得下一次计算第二参数时可以从寄存器中获取上一次计算得到的第一参数,保证了第一运算单元和第二运算单元的同时计算,节约了资源,且可以同时加密多条待加密的数据,且加快了数据处理的频率,数据的吞吐量得到了提升。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出了根据本申请实施例的RSA单核数据系统示意图;
图2示出了根据本申请实施例的一种具体的RSA单核数据系统示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应该理解的是,当元件(诸如层、膜、区域、或衬底)描述为在另一元件“上”时,该元件可直接在该另一元件上,或者也可存在中间元件。而且,在说明书以及权利要求书中,当描述有元件“连接”至另一元件时,该元件可“直接连接”至该另一元件,或者通过第三元件“连接”至该另一元件。
正如背景技术中所介绍的,现有技术中的RSA单核数据系统中的第一运算单元与第二运算单元不能同时进行计算,为解决如上RSA单核数据系统中的第一运算单元与第二运算单元不能同时进行计算的问题,本申请的实施例提供了一种RSA单核数据系统。
本申请的一种实施例,提供了一种RSA单核数据系统。如图1所示,该RSA单核数据系统,包括控制单元、第一运算单元、第二运算单元和寄存器,
上述控制单元用于接收多条待加密数据,且将多条上述待加密数据分别写入上述第一运算单元和上述第二运算单元;
每次循环在两个计算周期内完成,在第i次循环的第一个计算周期内,上述第一运算单元用于解算第m条上述待加密数据的第一参数,同时,上述第二运算单元用于解算第n条上述待加密数据的第二参数,在第i次循环的第二个计算周期内,上述第一运算单元用于解算第n条上述待加密数据的第一参数,同时,上述第二运算单元用于解算第m条上述待加密数据的第二参数,其中,m为大于或者等于1的整数,n为大于或者等于1的整数,且m不等于n,i为大于或者等于0的整数;
上述寄存器用于存储所有的上述第一参数和上述第二参数。
具体地,上述寄存器位于上述控制单元的内部。
上述方案中,将每次循环在两个计算周期内完成,对于每一次循环,第一计算周期内第一运算单元计算其中的一条待加密数据的第一参数,同时,第二运算单元计算另一条待加密的数据的第二参数,第二计算周期内第一运算单元计算另一条待加密的数据的第一参数,同时,第二运算单元计算一条待加密数据的第二参数,使得在每个计算周期内第一运算单元和第二运算单元可以同时进行运算,由于寄存器将计算得到的第一参数和第二参数进行了存储,使得下一次计算第一参数时可以从寄存器中获取上一次计算得到的第二参数,同理,使得下一次计算第二参数时可以从寄存器中获取上一次计算得到的第一参数,保证了第一运算单元和第二运算单元的同时计算,节约了资源,且可以同时加密多条待加密的数据,且加快了数据处理的频率,数据的吞吐量得到了提升。
本申请的一种实施例中,如图1所示,上述数据系统还包括至少一个预运算单元,上述预运算单元用于求取多个预定参数,上述第一运算单元基于上述预定参数解算上述第一参数,上述第二运算单元基于上述预定参数解算上述第二参数。由于解算第一参数和第二参数时需要用到预定参数,且在计算第一参数的第二参数的多次循环中,预定参数的值不会随着循环次数的增加而改变,所以,通过设置预运算单元提前对预定参数进行求取,然后控制单元将求取得到的预定参数发送至第一运算单元和第二运算单元,可以加快数据加密的速度。
本申请的一种实施例中,上述预运算单元的个数与上述待加密数据的条数相等。由于待加密数据的差异性,使得每一条待加密数据对应的预定参数也是不同的,通过为每一条待加密的数据设置预运算单元,可以保证多条待加密数据的预定参数同时进行求取,以提高数据加密的速度,如果仅仅只有一个预运算单元,需要对多条待加密数据的预定参数轮流求取。
本申请的一种实施例中,在上述待加密数据有两条的情况下,在第i次循环的第一个计算周期内,上述第一运算单元用于解算第一条待加密数据的第一参数,同时,上述第二运算单元用于解算第二条待加密数据的第二参数,在第i次循环的第二个计算周期内,上述第一运算单元用于解算第二条待加密数据的第一参数,同时,上述第二运算单元用于解算第一条待加密数据的第二参数。即在有两条待加密的数据的情况下,在某一次循环中可以实现对两条待加密数据的第一参数和第二参数的解算。
本申请的一种实施例中,由于本次计算得到的第二参数与上次计算得到的第一参数有关,本次计算得到的第一参数与上次计算得到的第二参数有关,通过合理安排第一参数和第二参数的计算时间,可以实现同时对两条待加密数据进行流水加密。
本申请的一种实施例中,上述控制单元的状态机有十个不同的状态,分别为发输入请求状态(WRITE_PRE)、准备写输入状态(IDLE)、写输入状态(FETCH_DATA)、预运算状态(COMPUTE_MOD)、第一计算模乘状态(EXECUTE_S1)、第二计算模乘状态(EXECUTE_S2)、指数E的扫描状态(E_SCAN)、完成运算状态(COMPUTE_DONE)、发输出请求状态(WAIT_FOR_OUTPUT)和输出状态(OUTPUT),上述第一计算模乘状态用于控制上述第一运算单元解算上述第一参数,上述第二计算模乘状态用于控制上述第二运算单元解算上述第二参数,上述预运算状态用于控制上述预运算单元求取多个上述预定参数。即控制单元中的状态可以实现对第一运算单元、第二运算单元的预运算单元的控制。
具体地,第一计算模乘状态用于控制上述第一运算单元解算第一条待加密数据的第一参数,同时,第二计算模乘状态用于控制上述第二运算单元解算第二条待加密数据的第二参数;同理,第一计算模乘状态用于控制上述第一运算单元解算第二条待加密数据的第一参数,同时,第二计算模乘状态用于控制上述第二运算单元解算第一条待加密数据的第二参数,以实现对两条待加密数据的同时加密。
本申请的一种实施例中,在上述待加密数据有两条的情况下,上述状态机有93种组合状态。由于每一条待加密的数据对应10种不同的状态,在有两条待加密的数据的情况下,本应该有100种组合状态,但是由于某些组合状态无法成立,使得状态机剩余93种组合状态。具体地,对一条上述待加密数据进行加密的操作为第一操作,对另一条上述待加密数据进行加密的操作为第二操作,由于运算单元的资源限制,两笔操作在EXECUTE_S1,EXECUTE_S2两个状态不能重合;此外由于64个数据端口为双向端口,两笔操作读输入和写结果的相关状态不能重合。当单核接收到握手信号,则进入IDLE状态待一个周期,下一周期进入FETCH_DATA状态开始数据的传输,因此两笔操作不能同时在IDLE状态或FETCH_DATA状态,或一笔在IDLE,另一笔在FETCH_DATA状态。同一时间只能有一个单核向结果SRAM写数据,因此两笔操作不能同时在OUTPUT状态,即不能成立的组合状态包括(其中OP1表示第一操作,OP2表示第二操作,“-”表示状态组合):
OP1_EXECUTE_S1-OP2_EXECUTE_S1;OP1_EXECUTE_S2-OP2_EXECUTE_S2;
OP1_FETCH_DATA-OP2_FETCH_DATA;OP1_IDLE-OP2_IDLE;
OP1_FETCH_DATA-OP2_IDLE;
OP1_IDLE-OP2_FETCH_DATA;
OP1_OUTPUT-OP2_OUTPUT。
本申请的一种实施例中,对一条上述待加密数据进行加密的操作为第一操作,对另一条上述待加密数据进行加密的操作为第二操作,在上述第一操作和上述第二操作在下一个计算周期同时跳入上述第一计算模乘状态或者上述第二计算模乘状态的情况下,控制其中的一个操作保持原状态或者进入空状态等待一个上述计算周期。控制其中的一个操作保持原状态还是进入空状态等待一个上述计算周期,取决于停在该状态会不会造成控制信号的错误赋值,以及上一周期的结果能不能保持住。由于第一操作和上述第二操作不能同时跳入第一计算模乘状态或者上述第二计算模乘状态,所以,在第一操作和上述第二操作在下一个计算周期同时跳入第一计算模乘状态或者上述第二计算模乘状态的情况下,需要控制其中的一个操作保持原状态或者进入空状态等待一个计算周期,在第一操作完成计算后,第二操作再开始计算,防止对同一计算单元的资源的抢占。
本申请的一种实施例中,上述第一操作和上述第二操作在下一个计算周期同时跳入上述第一计算模乘状态或者上述第二计算模乘状态的当前组合状态包括:上述第一操作处于上述第一计算模乘状态,且上述第二操作处于上述第二计算模乘状态;上述第一操作处于上述指数E的扫描状态,且上述第二操作处于上述第二计算模乘状态;上述第一操作处于上述第二计算模乘状态,且上述第二操作处于上述预运算状态;上述第一操作处于上述指数E的扫描状态,且上述第二操作处于上述预运算状态;上述第一操作处于上述预运算状态,且上述第二操作处于上述预运算状态;上述第一操作处于上述指数E的扫描状态,且上述第二操作处于上述指数E的扫描状态,共六种状态,下一周期跳EXECUTE_S2的状态时当前状态只有EXECUTE_S1和EXECUTE_S2两种可能,而下一周期跳EXECUTE_S1的状态时当前状态有EXECUTE_S2,COMPUTE_MOD,E_SCAN三种可能,那么下一周期某个操作需要被停在该状态或跳入NOP(空状态)的情况有6种;两个操作的当前状态分别是EXECUTE_S1- EXECUTE_S2,E_SCAN-EXECUTE_S2,EXECUTE_S2-COMPUTE_MOD,E_SCAN- COMPUTE_MOD,COMPUTE_MOD-COMPUTE_MOD,E_SCAN-E_SCAN,其中“-”表示状态组合。当然,六种组合中第一操作和第二操作的位置可以互换。
本申请的一种实施例中,在上述第一操作处于上述第一计算模乘状态,且上述第二操作处于上述第二计算模乘状态,下一个计算周期两个操作均预跳入第二计算模乘状态的情况下,控制上述第一操作停在上述第一计算模乘状态。由于EXECUTE_S1状态是执行第一参数qi的计算,它的结果在第一运算单元赋值,因此EXECUTE_S1状态的那条操作可以被停在该状态,而不会影响到下一周期的结果。
本申请的一种实施例中,对于E_SCAN- E_SCAN,由于该状态需要对指数(E)的扫描进行计数,因此该状态的操作不能停在该状态(否则会造成计数信号的错误增加),解决方案是增加一个EXECUTE_S1-E_SCAN_NOP状态,下一周期再回到EXECUTE_S2- EXECUTE_S1状态。
本申请的一种实施例中,在上述第一操作处于上述指数E的扫描状态,且上述第二操作处于上述第二计算模乘状态,下一个计算周期两个操作均预跳入上述第一计算模乘状态的情况下,控制上述第一操作首先进入上述第一计算模乘状态,上述第二操作停在上述第二计算模乘状态。
本申请的一种实施例中,对于COMPUTE_MOD状态,不涉及计数或其他改变上一周期结果的操作,因此任何操作在遇到阻塞时,COMPUTE_MOD状态的操作可以被停在该状态。
需要说明的是,本申请中的RSA单核数据系统同样适用于对数据的解密。
实施例
本实施例涉及一种具体的RSA单核数据系统,如图2所示,该RSA单核数据系统包括控制单元、第一运算单元、第二运算单元和寄存器,第二运算单元包括pe_word0至pe_word7, pe_word0到pe_word7拼接起来的输出为一个循环Si+1的结果,对待加密的数据进行加密的具体的原理如下:
Figure DEST_PATH_IMAGE001
Figure DEST_PATH_IMAGE002
其中,X为待加密数据,E为指数,N为模数,X、E和N为输入控制单元的数据,A为最终的加密之后的输出,mont(X,R2mod(N))= X R2mod(N) R-1modN,mont表示模乘,在X为2048位时,可以将X用八个256位的数表示,即令m=8,每次模乘需要经过八次循环求得S7,即第二运算单元的输出,每次对一个2048位的数据进行加密时,至少需要经过2048次模乘。
预运算单元包括i_modinv,M1,M2,共3个运算模块,其中i_modinv用来求N’,M1用来求A的初始值,A = R mod (N),M2用来求R2mod(N)。
预运算单元的3个运算模块可并行,对于2048位的一次加密,需要花费大概2150个周期。如果只有一套预运算的运算单元,进入单核的两条加密操作就要串行地完成预运算。在操作1计算预运算的2150个周期,第一运算单元和8个pe_word都有一半的时间空闲。为了解决这个问题,复制了一份预运算单元modinv,M1,M2,让两笔操作的预运算同时进行,同时结束,之后相隔一个周期进入对指数E的扫描和Montgomery模乘。
本发明中,一次算法循环仍在两个周期内完成,但采用两条加密操作同时送入单核的方式,第一个周期求第一操作的qi,同时8个pe_word求第二操作的Si+1,第二个周期求第一操作的Si+1,同时8个pe_word求第二操作的qi
对于一次模乘,要执行m(i=0 to m-1)次for循环和下一次模乘操作数的赋值,每次循环将8个pe_word的结果赋值给Si的寄存器,之后开启下一个循环,最后一次for循环为一次模乘的结果。运行下一次模乘之前,还要花费一个周期给下一次模乘的输入赋值,Si寄存器赋回零。对于本发明,由于qi和Si的计算拆成了两个周期完成,一次模乘需要执行(2m+1)个周期。为了方便状态的控制,增加了loop_cnt信号对循环进行计数,其中loop_cnt值为0到m-1时分别对应m次for循环,loop_cnt值为m时对应给下一次模乘的两个操作数赋值,Si赋值回零(对应算法中的S0 =0),为了简便,将loop_cnt为m的操作并入EXECUTE_S2状态。在EXECUTE_S1状态时下一周期只能跳入EXECUTE_S2状态,而EXECUTE_S2通过判断控制信号,可跳到EXECUTE_S1(loop_cnt为0到m-1),EXECUTE_S2(loop_cnt为8),E_SCAN(根据指数E的扫描结果判断下一次模乘的操作数),COMP_DONE(完成了A和1的模乘,将Montgomery域转化为普通域的结果)四个不同状态。
在上述第一操作处于上述指数E的扫描状态,且上述第二操作处于上述第二计算模乘状态,下一个计算周期两个操作均预跳入上述第一计算模乘状态的情况下,控制上述第一操作首先进入上述第一计算模乘状态,上述第二操作停在上述第二计算模乘状态。由于EXECUTE_S2跳EXECUTE_S1状态涉及到Si结果的写回,如果等到下一周期再赋值,则会错误地读取另一笔操作的结果;解决方案是增加一个flag(标识)信号,当下一状态和当前状态都是EXECUTE_S2,且当前loop_cnt不等于m-1时,把8个pe_word的结果写回Si,loop_cnt加1,且flag赋1;下一周期跳EXECUTE_S1时,如果flag为1,则不再执行写结果的操作,且flag赋回0。
应用本发明的方案,RSA单核实现了同时对两笔待加密的数据进行加密,且加快了数据处理的频率,数据的吞吐量得到了提升。
从以上的描述中,可以看出,本申请上述的实施例实现了如下技术效果:
本申请的RSA单核数据系统,将每次循环在两个计算周期内完成,对于每一次循环,第一计算周期内第一运算单元计算其中的一条待加密数据的第一参数,同时,第二运算单元计算另一条待加密的数据的第二参数,第二计算周期内第一运算单元计算另一条待加密的数据的第一参数,同时,第二运算单元计算一条待加密数据的第二参数,使得在每个计算周期内第一运算单元和第二运算单元可以同时进行运算,由于寄存器将计算得到的第一参数和第二参数进行了存储,使得下一次计算第一参数时可以从寄存器中获取上一次计算得到的第二参数,同理,使得下一次计算第二参数时可以从寄存器中获取上一次计算得到的第一参数,保证了第一运算单元和第二运算单元的同时计算,节约了资源,且可以同时加密多条待加密的数据,且加快了数据处理的频率,数据的吞吐量得到了提升。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种RSA单核数据系统,其特征在于,包括控制单元、第一运算单元、第二运算单元和寄存器,
所述控制单元用于接收多条待加密数据,且将多条所述待加密数据分别写入所述第一运算单元和所述第二运算单元;
每次循环在两个计算周期内完成,在第i次循环的第一个计算周期内,所述第一运算单元用于解算第m条所述待加密数据的第一参数,同时,所述第二运算单元用于解算第n条所述待加密数据的第二参数,在第i次循环的第二个计算周期内,所述第一运算单元用于解算第n条所述待加密数据的第一参数,同时,所述第二运算单元用于解算第m条所述待加密数据的第二参数,其中,m为大于或者等于1的整数,n为大于或者等于1的整数,且m不等于n,i为大于或者等于0的整数;
所述寄存器用于存储所有的所述第一参数和所述第二参数。
2.根据权利要求1所述的RSA单核数据系统,其特征在于,所述数据系统还包括至少一个预运算单元,所述预运算单元用于求取多个预定参数,所述第一运算单元基于所述预定参数解算所述第一参数,所述第二运算单元基于所述预定参数解算所述第二参数。
3.根据权利要求2所述的RSA单核数据系统,其特征在于,所述预运算单元的个数与所述待加密数据的条数相等。
4.根据权利要求1所述的RSA单核数据系统,其特征在于,在所述待加密数据有两条的情况下,在第i次循环的第一个计算周期内,所述第一运算单元用于解算第一条待加密数据的第一参数,同时,所述第二运算单元用于解算第二条待加密数据的第二参数,在第i次循环的第二个计算周期内,所述第一运算单元用于解算第二条待加密数据的第一参数,同时,所述第二运算单元用于解算第一条待加密数据的第二参数。
5.根据权利要求2所述的RSA单核数据系统,其特征在于,所述控制单元的状态机有十个不同的状态,分别为发输入请求状态、准备写输入状态、写输入状态、预运算状态、第一计算模乘状态、第二计算模乘状态、指数E的扫描状态、完成运算状态、发输出请求状态和输出状态,所述第一计算模乘状态用于控制所述第一运算单元解算所述第一参数,所述第二计算模乘状态用于控制所述第二运算单元解算所述第二参数,所述预运算状态用于控制所述预运算单元求取多个所述预定参数。
6.根据权利要求5所述的RSA单核数据系统,其特征在于,在所述待加密数据有两条的情况下,所述状态机有93种组合状态。
7.根据权利要求6所述的RSA单核数据系统,其特征在于,对一条所述待加密数据进行加密的操作为第一操作,对另一条所述待加密数据进行加密的操作为第二操作,在所述第一操作和所述第二操作在下一个计算周期同时跳入所述第一计算模乘状态或者所述第二计算模乘状态的情况下,控制其中的一个操作保持原状态或者进入空状态等待一个所述计算周期。
8.根据权利要求7所述的RSA单核数据系统,其特征在于,所述第一操作和所述第二操作在下一个计算周期同时跳入所述第一计算模乘状态或者所述第二计算模乘状态的当前组合状态包括:
所述第一操作处于所述第一计算模乘状态,且所述第二操作处于所述第二计算模乘状态;
所述第一操作处于所述指数E的扫描状态,且所述第二操作处于所述第二计算模乘状态;
所述第一操作处于所述第二计算模乘状态,且所述第二操作处于所述预运算状态;
所述第一操作处于所述指数E的扫描状态,且所述第二操作处于所述预运算状态;
所述第一操作处于所述预运算状态,且所述第二操作处于所述预运算状态;
所述第一操作处于所述指数E的扫描状态,且所述第二操作处于所述指数E的扫描状态。
9.根据权利要求8所述的RSA单核数据系统,其特征在于,在所述第一操作处于所述第一计算模乘状态,且所述第二操作处于所述第二计算模乘状态,下一个计算周期两个操作均预跳入所述第二计算模乘状态的情况下,控制所述第一操作停在所述第一计算模乘状态。
10.根据权利要求8所述的RSA单核数据系统,其特征在于,在所述第一操作处于所述指数E的扫描状态,且所述第二操作处于所述第二计算模乘状态,下一个计算周期两个操作均预跳入所述第一计算模乘状态的情况下,控制所述第一操作首先进入所述第一计算模乘状态,所述第二操作停在所述第二计算模乘状态。
CN202011573731.7A 2020-12-28 2020-12-28 Rsa单核数据系统 Active CN112287408B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011573731.7A CN112287408B (zh) 2020-12-28 2020-12-28 Rsa单核数据系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011573731.7A CN112287408B (zh) 2020-12-28 2020-12-28 Rsa单核数据系统

Publications (2)

Publication Number Publication Date
CN112287408A CN112287408A (zh) 2021-01-29
CN112287408B true CN112287408B (zh) 2021-03-30

Family

ID=74426388

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011573731.7A Active CN112287408B (zh) 2020-12-28 2020-12-28 Rsa单核数据系统

Country Status (1)

Country Link
CN (1) CN112287408B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109558372A (zh) * 2017-09-26 2019-04-02 智能Ic卡公司 用于安全处理器的设备和方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1738238A (zh) * 2005-09-08 2006-02-22 上海微科集成电路有限公司 高速可配置rsa加密算法及协处理器
JP5097138B2 (ja) * 2009-01-15 2012-12-12 シャープ株式会社 モンゴメリ乗算のための演算回路及び暗号回路
CN105871552A (zh) * 2016-06-14 2016-08-17 天津大学 双核并行rsa密码处理方法及协处理器
CN107135070A (zh) * 2017-04-25 2017-09-05 上海汇尔通信息技术有限公司 Rsa密钥对和证书的注入方法、架构及系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109558372A (zh) * 2017-09-26 2019-04-02 智能Ic卡公司 用于安全处理器的设备和方法

Also Published As

Publication number Publication date
CN112287408A (zh) 2021-01-29

Similar Documents

Publication Publication Date Title
Pan et al. An efficient elliptic curve cryptography signature server with GPU acceleration
US10103873B2 (en) Power side-channel attack resistant advanced encryption standard accelerator processor
KR102253628B1 (ko) 복수-쓰레드 프로세서에서의 복수 쓰레드들의 상태들의 결합
US7475229B2 (en) Executing instruction for processing by ALU accessing different scope of variables using scope index automatically changed upon procedure call and exit
US20030023830A1 (en) Method and system for encoding instructions for a VLIW that reduces instruction memory requirements
EP3839788B1 (en) Bit-length parameterizable cipher
JPH11282679A (ja) 演算処理装置
US9735953B2 (en) Side channel analysis resistant architecture
US20120213360A1 (en) Programmable cryptographic integrated circuit
Matsuoka et al. Virtual secure platform: A {Five-Stage} pipeline processor over {TFHE}
US11222127B2 (en) Processor hardware and instructions for SHA3 cryptographic operations
US11561926B2 (en) Data exchange pathways between pairs of processing units in columns in a computer
Longo et al. How low can you go? Using side-channel data to enhance brute-force key recovery
CN112287408B (zh) Rsa单核数据系统
US10454680B2 (en) RSA decryption processor and method for controlling RSA decryption processor
Edamatsu et al. Acceleration of large integer multiplication with Intel AVX-512 instructions
EP3651141B1 (en) Secure computing system, secure computing device, secure computing method, program, and recording medium
CN116260572A (zh) 数据杂凑处理方法、数据验证方法及电子设备
US8302083B2 (en) Architecture and implementation method of programmable arithmetic controller for cryptographic applications
Stefan Analysis and implementation of eSTREAM and SHA-3 cryptographic algorithms
CN100498727C (zh) 矩阵的解压缩方法和设备
CN104346134A (zh) 用于执行缩小和舍入算术运算的数据处理装置和方法
CN112487448B (zh) 一种加密信息处理装置、方法及计算机设备
JP2004334297A (ja) 並列演算処理装置及び並列演算処理方法
US8521793B1 (en) Method and system for scalable modulo mathematical computation

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
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 100080 s1601-s1605, 16 / F, block C, No.2, south academy of Sciences Road, Haidian District, Beijing

Patentee after: Saixin semiconductor technology (Beijing) Co.,Ltd.

Address before: 100080 s1601-s1605, 16 / F, block C, No.2, south academy of Sciences Road, Haidian District, Beijing

Patentee before: JIUZHOU HUAXING INTEGRATED CIRCUIT DESIGN (BEIJING) Co.,Ltd.

CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: S1601, 16 / F, block C, No. 2, South Road, Academy of Sciences, Haidian District, Beijing 100080

Patentee after: Saixin semiconductor technology (Beijing) Co.,Ltd.

Address before: 100080 s1601-s1605, 16 / F, block C, No.2, south academy of Sciences Road, Haidian District, Beijing

Patentee before: Saixin semiconductor technology (Beijing) Co.,Ltd.