CN108242994A - 密钥的处理方法和装置 - Google Patents

密钥的处理方法和装置 Download PDF

Info

Publication number
CN108242994A
CN108242994A CN201611223887.6A CN201611223887A CN108242994A CN 108242994 A CN108242994 A CN 108242994A CN 201611223887 A CN201611223887 A CN 201611223887A CN 108242994 A CN108242994 A CN 108242994A
Authority
CN
China
Prior art keywords
sliding window
sequence
processing
key
length
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201611223887.6A
Other languages
English (en)
Other versions
CN108242994B (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201611223887.6A priority Critical patent/CN108242994B/zh
Priority to TW106126271A priority patent/TWI730152B/zh
Priority to US15/847,689 priority patent/US10721056B2/en
Priority to PCT/US2017/067335 priority patent/WO2018125677A1/en
Publication of CN108242994A publication Critical patent/CN108242994A/zh
Application granted granted Critical
Publication of CN108242994B publication Critical patent/CN108242994B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/728Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic using Montgomery reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种密钥的处理方法和装置。其中,该方法包括:获取密钥的滑窗序列,其中,滑窗序列包括:对密钥进行滑窗处理后得到的多个滑窗;对滑窗序列中的至少一个滑窗进行加扰处理,得到加扰后的滑窗序列;遍历加扰后的滑窗序列,使用蒙哥马利模乘器对加扰后的滑窗序列进行后处理。本发明解决了现有基于“滑窗处理”的RSA加密算法易受SPA攻击的技术问题。

Description

密钥的处理方法和装置
技术领域
本发明涉及信息安全领域,具体而言,涉及一种密钥的处理方法和装置。
背景技术
RSA公钥加密算法作为一种重要的非对称签名/加密算法,广泛应用于现有的网络通信中(例如,HTTPS)。RSA算法涉及到大量的运算,一般在服务器端完成RSA算法的计算。另外,如果利用软件完成RSA加解密,则需要耗费大量的CPU资源,严重影响性能;如果利用硬件加速单元,从而将运算密集的RSA操作放在CPU之外单独进行,则CPU能够处理更多的协议栈和操作系统层面的请求。RSA的加解密算法主要涉及两种运算:模平方(平方及取模)和模乘(乘法及取模),这两种算法分别采用专门的运算单元实现。RSA的主体算法过程就是利用这两种运算单元做迭代计算处理,处理的序列由输入的指数变换后得到。
在RSA公钥加密算法中,对于幂指数(一般为公钥、私钥或相关计算值)的“0-bit”,RSA算法只需要做模平方;而对于“1-bit”,RSA算法需要依次做模平方和模乘。由于“模平方”和“模乘”两种算法的功耗、消耗时间都有差异,依靠精确测量和反演可以破解出密码,例如,SPA(Simple Power Analysis)作为一种基于功耗测量的攻击方法,可以通过分析加密算法的不同部分执行运算时,能量消耗变化会很明显,容易攻击RSA加密算法。
为了增强密钥的安全性,现有技术采用对密钥进行“滑窗处理”来抵抗上述SPA攻击。“滑窗处理”是对幂指数从最高有效位(Most Significant bit,MSb)到最低有效位(Least Significant bit,LSb)作滑窗处理,并对每次滑窗内的“有效”窗口长度进行计算,当且仅当有效窗口结束时才进行一次模乘操作。由于,现有基于“滑窗处理”的RSA经典计算方法,对于给定的幂指数和滑窗长度上限值,其有效滑窗长度序列也是唯一确定的,因而,这种方法仍然容易通过SPA得出每个有效窗口的长度,进而反推出有效窗口的分布特征,从而进一步攻击并破解出密钥。
针对上述现有基于“滑窗处理”的RSA加密算法易受SPA攻击的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种密钥的处理方法和装置,以至少解决现有基于“滑窗处理”的RSA加密算法易受SPA攻击的技术问题。
根据本发明实施例的一个方面,提供了一种密钥的处理方法,包括:获取密钥的滑窗序列,其中,滑窗序列包括:对密钥进行滑窗处理后得到的多个滑窗;对滑窗序列中的至少一个滑窗进行加扰处理,得到加扰后的滑窗序列;遍历加扰后的滑窗序列,使用蒙哥马利模乘器对加扰后的滑窗序列进行后处理。
根据本发明实施例的另一方面,还提供了一种密钥的处理装置,包括:第一获取模块,用于获取密钥的滑窗序列,其中,滑窗序列包括:对密钥进行滑窗处理后得到的多个滑窗;第二处理模块,用于对滑窗序列中的至少一个滑窗进行加扰处理,得到加扰后的滑窗序列;第三处理模块,用于遍历加扰后的滑窗序列,使用蒙哥马利模乘器对加扰后的滑窗序列进行后处理。
一种智能网卡,包括根据上述任意一项可选的密钥的处理方法得到的密钥。
在本发明实施例中,通过获取密钥的滑窗序列,其中,滑窗序列包括:对密钥进行滑窗处理后得到的多个滑窗;对滑窗序列中的至少一个滑窗进行加扰处理,得到加扰后的滑窗序列;遍历加扰后的滑窗序列,使用蒙哥马利模乘器对加扰后的滑窗序列进行后处理,达到了在增加原来的功耗和延时的情况下改变了对密钥进行滑窗处理得到的有效窗口长度序列和分布的目的,从而实现了提高密钥安全性的技术效果,进而解决了现有基于“滑窗处理”的RSA加密算法易受SPA攻击的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1所示为根据现有技术的一种可选的基于“滑窗处理”的RSA经典硬件结构示意图;
图2所示为根据现有技术的一种可选的基于“滑窗处理”的RSA经典计算方法流程图;
图3是根据本发明实施例的一种密钥的处理方法的流程图;
图4(a)是根据本发明实施例的一种可选的对密钥进行滑窗处理的示意图;
图4(b)是根据本发明实施例的一种可选的对密钥的滑窗序列进行加扰操作后的滑窗处理示意图;
图5是根据本发明实施例的一种可选的密钥的处理方法的流程图;
图6是根据本发明实施例的一种可选的密钥的处理方法的流程图;
图7是根据本发明实施例的一种可选的密钥的处理方法的流程图;
图8是根据本发明实施例的一种可选的密钥的处理方法的流程图;
图9是根据本发明实施例的一种可选的密钥的处理方法的流程图;
图10是根据本发明实施例的一种可选的密钥的处理方法的流程图;
图11是根据本发明实施例的一种可选的密钥的处理方法的流程图;
图12是根据本发明实施例的一种可选的密钥的处理方法的流程图;
图13是根据本发明实施例的一种可选的密钥的处理方法的流程图;
图14所示为根据本发明实施例的一种优选的基于“滑窗处理”的RSA硬件结构示意图;
图15所示为根据本发明实施例的一种优选的基于“滑窗处理”的RSA计算方法流程图;
图16是根据本发明实施例的一种密钥的处理装置的示意图;以及
图17是根据本发明实施例的一种计算机终端的硬件结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
RSA算法:一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密;
ALU:Algorithm Logic Unit,算术逻辑单元,实现多组算术运算和逻辑运算的组合逻辑电路;
SPA:Simple Power Analysis,简单功率分析,一种基于功耗测量的攻击方法;
MSb:Most Significant bit,最高有效位,即在指数P对应二进制序列中的最高位置的比特“1”;
LSb:Least Significant bit,最低有效位,即在指数P对应二进制序列中的最低位置的比特“1”;
MMM:Montgomery Modular Multiplier,蒙哥马利模乘器,用于进行蒙哥马利模乘算法的运算器,可以不使用除法(用移位操作)而求得模乘运算的结果;
PN序列:Pseudo Noise,伪随机数序列,PN序列发生器产生的PN序列码;
滑窗处理:采用“滑动窗口算法”对密钥进行处理的一种方案,滑动窗口算法是一种优化的快速计算模幂运算算法,它可以将模幂运算分解为一系列的乘法运算和平方运算,幂指数以一定大小的窗口在二进制幂指数上进行滑动,利用预计算表中的元素直接作为乘数,减少乘数重复计算的步骤,提高运算效率,可以被用于RSA加密算法中;
滑窗序列:对密钥的二进制进行滑窗处理后,统计得到的多个有效窗口长度值,由这些有效窗口长度构成的序列为滑窗序列。
实施例1
根据本发明实施例,还提供了一种密钥的处理方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请提供的密钥的处理方法实施例可以应用于信息安全领域中所有涉及到滑动窗口处理的加密算法中,例如,基于“滑窗处理”的RSA加密算法,RSA算法原理是首先生成一对RSA密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册,人们用公钥加密文件发送给个人,个人就可以用私钥解密接收。
随着智能卡、IC卡、电子钥匙USB Key等在电子商务、身份认证等许多领域越来越广泛的应用,它们集数据加密和数据存储两大功能于一身,有着体积小,使用方便,功能强大,安全性好,价格便宜等特点,成为了推动电子商务发展的强大动力之一,还广泛应用于交通、医疗、身份认证等其他领域,极大地提高了人们生活和工作的现代化程度。智能卡、IC卡、电子钥匙USB Key等小型硬件设备,不仅被用来实现数据加密传输,还用来实现数字签名、密钥交换等功能。RSA加密算法是是第一个既能用于数据加密也能用于数字签名的算法,因此它为公用网络上信息的加密和鉴别提供了一种基本的方法,广泛应用于智能IC卡和网络安全产品。
RSA是一种重要的非对称签名/加密算法,涉及大量的运算,如果采用软件完成这些运算,需要耗费大量的CPU资源,严重影响加解密的速度。而通过硬件加速单元可以将运算密集的RSA操作在CPU之外单独进行,CPU能够处理更多的协议栈和操作系统层面的请求。其中,硬件加速单元中通常都会采用多运算核心(引擎)的方案来进行处理。而每个运算引擎在不同的运算阶段需要向CPU申请的调度的算术逻辑单元(Arithmetic Logic Unit,ALU)不同,ALU是中央处理器(CPU)的执行单元,是所有中央处理器的核心组成部分,主要功能是进行二进制的算术运算(例如,加、减、乘等运算)。在RSA算法中,主要涉及到“模平方”和“模乘”两种算数运算,分别采用专门的算术逻辑单元ALU实现。
由于“模平方”和“模乘”两种算数运算的功耗、消耗时间都有差异,容易受到简易功率分析(Simple Power Analysis,SPA)攻击。SPA是一种基于功耗测量的攻击方法,在SPA攻击中,攻击者直接观察一个系统的功率消耗,由于RSA运算在不同部分执行“模平方”和“模乘”两种算数运算时,变化很明显,因而,可以能被SPA识别出来。
为了防止RSA加密算法受到SPA攻击,现有技术大致采用以下几种方法来抵抗SPA攻击:
第一种方案,将RSA算法中涉及到的“模平方”和“模乘”两种算法都采用模乘器来实现。由于模平方器比模乘器速度快、面积小,方案一利用模乘器替代模平方器,牺牲了性能和成本,虽然对抵抗SPA攻击有好处、但是对速度影响很大。
第二种方案,设计功耗相同的模乘器和模平方器。该方案对大量输入数据组合都保持功耗相同的模乘器和模平方器,需要引入更复杂的设计,在很大程度上增加了设计复杂度、验证复杂度,降低了可靠性。
需要说明的是,在包含有某些特定类型的输入序列的情况下,上述第一种方案和第二种方案仍然很有可能从功耗等侧信道信息推演出本次运算时模平方还是模乘。
第三种方案,加入冗余模块进行功率干扰。冗余模块可以通过(准)随机噪声的方式对功耗测量造成干扰,但是同时也引入了更大的功耗开销、并且带来了更多的杂散噪声、影响信号完整性。
第四种方案,对RSA算法的特定步骤进行“滑窗处理”。“滑窗处理”是对幂指数从最高有效位(Most Significant bit,MSb)到最低有效位(Least Significant bit,LSb)作滑窗处理,并对每次滑窗内的“有效”窗口长度进行计算,当且仅当有效窗口结束时才进行一次模乘操作。滑窗处理是一种优化的快速计算模幂运算算法,它可以将模幂运算分解为一系列的乘法运算和平方运算,以一定大小的窗口在二进制幂指数上进行滑动,利用预计算表中的元素直接作为乘数,减少乘数重复计算的步骤,提高运算效率,可以被用于RSA加密算法中。
但是,从本申请背景部分内容可知,上述第四种方案,对于给定的幂指数和滑窗长度上限值,其有效滑窗长度序列也是唯一确定的,因而,这种方法仍然容易通过SPA得出每个有效窗口的长度,进而反推出有效窗口的分布特征,从而进一步攻击并破解出密钥。
具体地,本申请在描述本申请提供的密钥的处理的方法实施例的进一步细节之前,首先对现有基于“滑窗处理”的RSA经典计算方法进行了分析,图1所示为根据现有技术的一种可选的基于“滑窗处理”的RSA经典硬件结构示意图;图2所示为根据现有技术的一种可选的基于“滑窗处理”的RSA经典计算方法流程图。如图2所示,基于“滑窗处理”的RSA算法包括如下步骤:
定义运算器MMM(a,b)=a*b*R-1mod M,即蒙哥马利模乘器。其中,R是a、b、M的进制位数的幂,满足R*R-1=1(mod M),例如,当RSA的加密长度为2048位时,R=22048
输入:Ain,P,M;
输出:Result=Ain^P mod M。
第一步,预计算:计算R2和A。
R2=MMM(R*R,R);
A=MMM(Ain,R2);
第二步,乘幂取模计算:每一步迭代的中间结果存入基数寄存器B中。
首先,按MSb至LSb的顺序对P做滑窗遍历,其有效滑窗的总个数记为n,计算对应的有效滑窗长度序列L={L0,L1,L2,L3,….,Ln};
其次,依次对每个有效滑窗Li进行遍历(i=0,1,2…n),包括:
①对Li内的每一个比特,都对应一次运算B=SQR(B);
②对每个Li,在其结束后对应一次运算B=MMM(B,A)。
第三步,后处理:计算最终结果。
Result=MMM(B,1)。
从上述步骤可看出,基于“滑窗处理”的RSA经典计算方法的缺点在于,对于给定的幂指数P和滑窗长度上限值,其有效滑窗长度序列也是唯一确定的,因而,这种方法仍然能通过SPA得出每个有效窗口的长度,进而反推出有效窗口的分布特征,从而进一步攻击并破解出密钥。
综上所述,现有的抵抗SPA攻击的RSA算法都存在各自的不足,本申请实施例通过在RSA的指数控制运算序列中加入伪随机扰码,在不新增功耗和延时的条件下,随机改变了原来幂指数的有效窗口长度序列分布,使得SPA攻击只能得到盲化后的测量结果,从而实现较好的单引擎抵抗SPA攻击。
具体地,在上述运行环境下,本申请提供了如图3所示的一种密钥的处理方法。该方法可以应用于信息安全领域中所有涉及到滑动窗口处理的加密算法中,通常公钥加密算法中最耗时的就是模幂算法,所谓模幂运算是在已知模数n,底数m,以及指数e的情况下,计算memod n。滑动窗口算法可以快速实现模幂运算,其基本思想是采用一个固定大小为k的窗口,在二进制模幂指数e上从左到右(也可以从右到左)滑动,滑动过程中,直到窗口的最右边第一次碰到“1”结束,然后再创建一个窗口从上次结束的地方开始另一次滑动,持续到e的二进制表达中没有“1”为止。由此可知,对于给定的二进制序列(即,上述指数二进制序列),和滑动窗口的大小,可以确定对该二进制序列进行滑窗处理后,得到的有效滑窗长度(即,实际窗口大小)的序列,这对于安全性要求较高的加密算法来说,存在被攻击的隐患。而本申请提供的对密钥的处理方法,主要对得到的滑窗序列进行加扰处理。具体地,图3是根据本发明实施例1的一种密钥的处理方法的流程图,包括如下步骤:
步骤S302,获取密钥的滑窗序列。
具体地,在上述步骤中,上述密钥可以为用于将明文转换为密文或者将密文转换为明文的算法中输入的参数,可以分为对称密钥和非对称密钥,一种可选的实施例中,该密钥可以为RSA加密算法中对发送信号进行模幂运算的指数;通过对该密钥的二进制序列进行滑窗处理,可以得到与该二进制序列对应的滑窗序列,该滑窗序列为由对二进制进行滑窗处理后得到的多个有效窗口长度值构成序列;具体地,采用固定长度大小的窗口在该密钥的二进制序列从左到右(也可以从右到左)滑动,滑动过程中,直到窗口的最右边第一次碰到“1”结束,然后再创建一个窗口从上次结束的地方开始另一次滑动,持续到二进制序列中没有“1”为止,从而得到多个有效窗口,由这些有效窗口内的二进制构成的序列则构成该密钥的滑窗序列。
此处需要说明的是,在RSA算法中,涉及到“模平方”和“模乘”两种算数运算,由于“模平方”和“模乘”两种算数运算的功耗、消耗时间都有差异,容易受到SPA攻击,其中,SPA是一种基于功耗测量的攻击方法。为了防止RSA加密算法受到SPA攻击,可以采用“滑动窗口算法”来对RSA算法的密钥进行滑窗处理,并对每次滑窗内的有效窗口长度(即,实际窗口的长度)进行计算,当且仅当有效窗口结束时才进行一次模乘操作。其中,“滑动窗口算法”是一种优化的快速计算模幂运算算法,它可以将模幂运算分解为一系列的乘法运算和平方运算,以一定大小的窗口在二进制幂指数上进行滑动,利用预计算表中的元素直接作为乘数,减少乘数重复计算的步骤,提高运算效率,可以被用于RSA加密算法中。
一种可选的实施例中,以RSA算法为例,图4(a)所示为根据本发明实施例的一种可选的对密钥进行滑窗处理的示意图;假设原始的指数P(密钥)输入为0xCA8F……,则其对应的二进制序列为“110010101000…”。在滑动窗口的长度上限设置为6的情况下,采用长度为6的窗口对指数P的二进制序列作第一滑窗处理后,滑窗在遇到“1”结束,因而,得到的滑窗序列中第一个有效窗口长度为L0=5,用粗线框所示;在结束的位置,采用长度大小为6的窗口对二进制序列继续作滑窗处理,得到第二个有效窗口长度为L1=3,持续作滑窗处理,直到遍历整个二进制序列。
需要说明的是,由于在RSA公钥加密算法中,对于幂指数(一般为公钥、私钥或相关计算值)的“0”-bit,RSA算法只需要做模平方;而对于“1”-bit,算法需要依次做模平方和模乘。因而,每个滑窗都是由“1”-bit起始的,滑窗之间的“0”-bit只有模平方操作,不影响MMM操作的分布,在图中用细线框表示。
步骤S304,对滑窗序列中的至少一个滑窗进行加扰处理,得到加扰后的滑窗序列。
具体地,在上述步骤中,上述滑窗序列可以为对上述密钥的二进制序列进行滑窗处理后得到的多个有效滑窗后,统计这些有效滑窗内的窗口长度值构成的序列;在通过对密钥的二进制序列进行滑窗处理,得到该密钥的滑窗序列后,可以对滑窗序列中的一个或多个有效窗口长度值进行加扰处理,一种可选的方案中,可以采用随机数对有效窗口长度值进行处理,从而得到加扰后的滑窗序列。
作为一种可选的实施例,仍以RSA算法为例,图4(b)所示为根据本发明实施例的一种可选的对密钥的滑窗序列进行加扰操作后的滑窗处理示意图;假设原始的指数P输入为0xCA8F……,在滑动窗口的长度上限设置为6的情况下,对指数P作滑窗处理后的结果如图4(b)所示,原始的滑窗长度序列为L0=5,L1=3,……,加入扰码后的滑窗长度序列发生变化,L0和L1被调整修正为L0=2,L1=5,……。
步骤S306,遍历加扰后的滑窗序列,使用蒙哥马利模乘器对加扰后的滑窗序列进行后处理。
具体地,在上述步骤中,蒙哥马利模乘器可以为用于进行蒙哥马利模乘算法的运算器;在对滑窗序列中的至少一个有效窗口长度值进行加扰处理,得到加扰后的滑窗序列后,遍历加扰后的滑窗序列,使用蒙哥马利模乘器对加扰后的滑窗序列进行后处理。
仍以上述RSA算法为例,由图4(b)可以看出,由于原始的滑窗长度序列为L0=5,L1=3,……,前两个蒙哥马利模乘(MMM)操作发生在L0和L1的滑窗末尾位置,即从MSb起始的第5-bit和第9-bit处。而加入扰码后的滑窗长度序列发生变化,即,L0和L1被调整修正为L0=2,L1=5,……,可以看出,前两个蒙哥马利模乘(MMM)操作发生在L0和L1的滑窗末尾位置,即从MSb起始的第2-bit和第9-bit处。
由上可知,在不新增加功耗和延时的条件下,通过对滑窗序列进行加扰处理,随机改变了原来幂指数的有效窗口长度序列分布,从而可以实现较好的单引擎抵抗SPA攻击。
需要说明的是,由于RSA公钥加密算法的核心算法是模幂运算,模幂运算又相当于模乘运算的循环,要提高RSA算法的效率,首要问题在于提高模乘运算的效率。在模乘过程中,复杂度最高的环节是求模运算,因为一次除法实际上包含了多次加法、减法和乘法,如果在算法中能够尽量减少除法甚至避免除法,则算法的效率会大大提高。而蒙哥马利模乘实际上是解决了这样一个问题,即不使用除法(用移位操作)而求得模乘运算的结果。
由上可知,在本申请上述实施例中,通过对密钥的二进制序列进行滑窗处理,并统计对密钥进行滑窗处理得到的有效滑窗长度序列,得到该密钥的滑窗序列后,对得到的滑窗序列加入扰码的进行盲化处理,一种可选的实施例中,可以在RSA加密算法的指数控制运算序列(即,滑窗序列)中加入伪随机扰码,最后使用蒙哥马利模乘器对加扰后的滑窗序列进行后处理,达到了在增加原来的功耗和延时的情况下改变了对密钥进行滑窗处理得到的有效窗口长度序列和分布的目的,从而实现了提高密钥安全性的技术效果。
由此,本申请上述实施例解决了现有基于“滑窗处理”的RSA加密算法易受SPA攻击的技术问题。
在一种可选的实施例中,如图5所示,对滑窗序列中的至少一个滑窗进行加扰处理,得到加扰后的滑窗序列,可以包括如下步骤:
步骤S502,获取随机码;
步骤S504,根据随机码,确定调整参数,其中,调整参数包括:调整趋势和调整长度;
步骤S506,使用调整参数调整滑窗序列中一个或多个滑窗的窗口长度,得到加扰后的滑窗序列。
具体地,在上述步骤中,上述随机码可以为由随机码发生器随机产生的由数字和字母组成的一个序列;上述调整参数可以用于调整滑窗的长度,包括调整趋势和调整长度;一种可选的实施例中,以RSA算法为例,在获得对RSA的密钥作滑窗处理的滑窗序列L={L0,L1,L2,L3,….,Ln}后,可以对每个滑窗序列中的滑窗长度值Li的大小进行调整,首先确定是将Li增大还是缩小,确定对Li调整的趋势后,再根据随机码序列值的大小,确定对Li调整的长度值,如图4(b)所示,原始滑窗序列L={L0,L1,L2,L3,….,Ln}中滑窗长度值L0的大小为5、L1的大小为3,在根据随机码确定的调整参数调整滑窗的长度值后,得到加扰后的滑窗序列中滑窗长度值L0的大小为2、L1的大小为5。
基于上述步骤S502至S506公开的方案中,在对密钥进行滑窗处理,获取密钥的滑窗序列之后,获取随机码,并根据随机码确定对滑窗序列进行调整的趋势和大小,然后对滑窗序列中一个或多个滑窗的窗口长度进行调整,从而得到加扰后的滑窗序列。
一种可选的实施例中,上述随机码可以为由PN序列发生器产生的PN序列码。
通过上述实施例,实现了将对密钥处理的滑窗序列进行盲化处理的目的,从而可以隐藏原来幂指数的有效窗口长度序列和分布。
在一种可选的实施例中,如图6所示,根据随机码,确定调整参数,包括:
步骤S602,判断随机码的值是否满足预设条件;
步骤S604,如果随机码的值满足预设条件,则确定调整趋势为增加滑窗长度或减少滑窗长度;
步骤S606,根据随机码的值所处的区域范围,确定随机码对应的调整长度。
具体地,在上述步骤中,上述随机码可以为PN序列发生器产生的PN序列码;在获取到随机码之后,判断该随机码的值是否满足预设条件,一种可选的实施例中,可以该随机码是否小于原始滑窗序列的上限值,如果该随机码的值满足预设条件,则将该随机码与标准值进行比较,从而确定对滑窗序列调整的趋势,包括增加滑窗长度或减少滑窗长度两种情况,在确定对滑窗序列调整的趋势后,再根据随机码的值所处的区域范围,确定对滑窗序列进行调整的长度。
通过上述实施例,实现了根据符合预设条件随机码的值来确定对滑窗序列进行调整的趋势以及调整的大小,避免了一些不符合条件随机码对滑窗序列调整,减少了错误发生的概率。
在一种可选的实施例中,如图7所示,在根据随机码,确定调整参数之后,方法还包括:
步骤S702,判断调整参数是否满足如下至少一个条件:
条件一:调整长度是否没有超过滑窗的窗口长度;
条件二:调整长度确定的调整位置是否存在对应的滑窗;
步骤S704,如果满足任意一个或多个条件,则允许使用调整参数调整滑窗序列。
具体地,在上述步骤中,上述调整长度是指对密钥的原始滑窗序列进行调整的滑窗长度;在根据随机码确定对密钥的原始滑窗序列进行调整的参数后,判断对原始滑窗序列中滑窗进行调整的长度是否超过滑窗的窗口长度,或者,对原始滑窗序列中滑窗进行调整的位置是否存在相应的滑窗,在满足任意一个条件或两个条件都满足的情况下,才使用该调整参数对滑窗序列中相应的滑窗进行调整。
通过上述实施例,对调整参数进行验证,进一步增加了对滑窗调整成功的概率。
在一种可选的实施例中,如图8所示,在使用调整参数调整滑窗序列中一个或多个滑窗的窗口长度之后,上述方法还可以包括如下步骤:
步骤S802,获取滑窗序列中的窗口数量与加扰后的滑窗序列中的滑窗数量之间的差值;
步骤S804,如果差值超过第一预定阈值,修改调整趋势;
步骤S806,基于修改后的调整趋势重新确定随机码的调整长度,得到修正后的调整参数。
具体地,在上述步骤中,在使用调整参数调整滑窗序列中一个或多个滑窗的窗口长度之后,分别获取原始滑窗序列中的滑动窗口的数量和对滑窗序列进行加扰处理后得到的新的滑窗序列中的滑窗序列中的滑动窗口的数量,并判断二者之间的差值是否超过第一预定阈值,如果二者之间的差值超过第一预定阈值,则修改对原始滑窗序列中滑窗的调整趋势(即,如果原来调整趋势为将原始滑窗序列中滑窗的长度增加,则修改为将原始滑窗序列中滑窗的长度减小;如果原来调整趋势为将原始滑窗序列中滑窗的长度减小,则修改为将原始滑窗序列中滑窗的长度增加),在确定对原始滑窗序列中滑窗的调整趋势后,重新确定随机码的调整长度,得到修正后的调整参数。
一种可选的实施例中,上述滑窗序列中的窗口数量可以为滑窗序列中非零长度的有效窗口的数量。
通过上述实施例,可以保证加扰后的滑窗序列中的滑窗数量与原始滑窗序列中的窗口数量相当,即可以保证在不增加原来的功耗和延时的情况下对滑窗序列进行盲化处理的效果。
在一种可选的实施例中,如图9所示,在遍历加扰后的滑窗序列,使用蒙哥马利模乘器对加扰后的滑窗序列进行后处理之前,上述方法还可以包括如下步骤:
步骤S902,判断加扰后的滑窗序列中的滑窗长度是否超过预定值;
步骤S904,如果超过预定值,则对滑窗中比特值为0的比特位进行模平方处理,得到平方取模后的值;
步骤S906,如果平方取模后的值超过第二预定阈值,则调整滑窗长度;
步骤S908,对调整了滑窗长度的滑窗序列返回执行加扰处理。
具体地,在上述步骤中,在对密钥进行滑窗处理,得到该密钥的滑窗序列之后,判断加扰后的滑窗序列中的滑窗长度是否超过预定值;如果超过预定值,则对滑窗中比特值为0的比特位进行模平方处理,得到平方取模后的值;如果平方取模后的值超过第二预定阈值,则调整滑窗长度;对调整了滑窗长度的滑窗序列返回执行加扰处理。
在一种可选的实施例中,如图10所示,上述方法还可以包括:
步骤S910,如果没有超过预定值,则提取加扰后的滑窗序列中的滑窗因子;
步骤S912,对滑窗因子进行模平方处理和模乘处理,得到相乘取模后的值。
具体地,在上述步骤中,上述滑窗因子可以为滑窗序列中每个滑窗中对应的二进制序列;在对密钥进行滑窗处理,得到该密钥的滑窗序列之后,如果加扰后的滑窗序列中的滑窗长度没有超过预定值,则提取加扰后的滑窗序列中的滑窗因子,对滑窗因子进行模平方处理和模乘处理,得到相乘取模后的值。
通过上述实施例,实现了对密钥进行基于盲化序列的滑窗处理,增强了密钥的安全性。
在一种可选的实施例中,如图11所示,在步骤302对密钥进行滑窗处理,获取密钥的滑窗序列之前,上述方法还可以包括如下步骤:
步骤S112,通过随机码生成器生成随机码,其中,基于随机码执行加扰处理。
具体地,在上述步骤中,上述随机码生成器可以用于随机码的序列发生器,一种可选的实施例中,该随机码生成器可以为PN序列发生器。在对密钥进行滑窗处理,获取密钥的滑窗序列之前,首先要通过随机码生成器生成随机码,根据该随机码确定对密钥的滑窗序列进行调整的参数,从而利用该调整参数对密钥的滑窗序列进行调整,得到盲化的滑窗序列,再对对密钥进行滑窗处理。
通过上述实施例,采用随机码来确定对滑窗序列进行调整的参数,实现了随机调整滑窗长度序列的分布的目的。
在一种可选的实施例中,如图12所示,获取密钥的滑窗序列,可以包括如下步骤:
步骤S122,获取密钥的二进制序列;
步骤S124,对二进制序列进行滑窗处理,计算得到每个滑窗的长度,其中,多个滑窗构成滑窗序列。
具体地,在上述步骤中,上述密钥可以为用于将明文转换为密文或者将密文转换为明文的算法中输入的参数,可以分为对称密钥和非对称密钥,一种可选的实施例中,该密钥可以为RSA加密算法中对发送信号进行模幂运算的指数;在采用“滑动窗口算法”对密钥进行滑窗处理的情况下,通常以一定大小的窗口在二进制幂指数上进行滑动,因而,首相要将密钥以二进制序列的形式表示,然后根据设置好的滑动窗口的长度上限值,对对二进制序列进行滑窗处理,得到的多个有效滑窗后,统计这些有效滑窗内的窗口长度值构成该密钥的滑窗序列。
通过上述实施,达到了获取密钥的滑窗序列的目的。
在一种可选的实施例中,如图13所示,对二进制序列进行滑窗处理,计算得到有效滑窗长度序列,包括:
步骤S132,采用预设窗口长度的滑窗从二进制序列第一预设位置至第二预设位置进行滑窗;
步骤S134,在滑窗遇到比特位的值为1情况下结束滑窗,并从结束位置继续对二进制序列作滑窗,直到遍历整个二进制序列;
步骤S136,统计并计算每个滑窗的长度,得到滑窗序列。
具体地,在上述步骤中,在对密钥的二进制序列进行滑窗处理时,首先采用预设窗口长度的滑窗从二进制序列第一预设位置至第二预设位置进行滑窗;一种可选的实施方式中,可以采用固定长度大小的窗口在该密钥的二进制序列从左到右(也可以从右到左)滑动,滑动过程中,直到窗口的最右边第一次碰到“1”结束,然后再创建一个窗口从上次结束的地方开始另一次滑动,持续到二进制序列中没有“1”为止,从而得到多个有效窗口,由这些有效窗口内的二进制构成的序列则构成该密钥的滑窗序列。
需要说明的是,现有技术大致采用以下四种方案来抵抗SPA攻击:(1)将RSA算法中涉及到的“模平方”和“模乘”两种算法都采用模乘器来实现;(2)设计功耗相同的模乘器和模平方器;(3)加入冗余模块进行功率干扰;(4)对RSA算法的特定步骤改善(如滑窗处理)。
与上述四种方案相比,本申请上述实施例可以达到以下技术效果:
①与方案(1)比较,本申请上述实施例中公开方案中,保留了RSA算法中的“模平方”算法,不会影响算法的运算速度;
②与方案(2)比较,由于本申请可以保证加扰后的滑窗序列中的滑窗数量与原始滑窗序列中的窗口数量相当,即可以保证在不增加原来的功耗和延时的情况下对滑窗序列进行盲化处理的效果;
③与方案(3)比较,本申请上述实施例的公开方案,并没有采用冗余模块,因而不会引入了更大的功耗开销、并且带来了更多的杂散噪声、影响信号完整性;
④与方案(4)比较,本申请上述实施例的公开方案,改变了滑窗处理的有效窗口长度序列,进一步了提高了密钥的安全性。
作为一种优选的实施例,图14所示为根据本发明实施例的一种优选的基于“滑窗处理”的RSA硬件结构示意图,如图14所示,PN序列发生器用于产生随机码,通过指数移位器从幂指数的二进制序列的最高位(MSb)向最低位(LSb)作滑窗遍历,计算对应的有效滑窗长度序列,并根据PN序列发生器的输出的随机码对有效滑窗长度序列进行加扰处理,得到加扰后的滑窗序列,并遍历加扰后的滑窗序列,使用蒙哥马利模乘器对加扰后的滑窗序列进行后处理。其中,算术逻辑单元ALU0用于预处理/后处理步骤,算术逻辑单元ALU1、ALU2用于正式计算步骤,其中,ALU1用于平方及取模步骤,ALU2用于相乘及取模步骤。蒙哥马利模乘器可以为用于进行蒙哥马利模乘算法的运算器,不使用除法(用移位操作)而求得模乘运算的结果。
作为一种优选的实施例方式,可以结合图15来说明本申请上述实施例,图15所示为根据本发明实施例的一种优选的基于“滑窗处理”的RSA计算方法流程图;如图15所示,该方法包括如下步骤:
步骤S122,预计算:R2和A,滑窗的各级幂,生成盲化序列。
具体地,在上述步骤中,通过R2=MMM(R*R,R),A=MMM(Ain,R2)计算得到:R2、A,以及滑窗的各级幂,并生成盲化序列。
步骤S124,指数移位。
具体地,在上述步骤中,按MSb至LSb的顺序对P作滑窗遍历。
步骤S126,计算滑窗长度。
具体地,在上述步骤中,统计有效滑窗的总个数记为n,并计算对应的有效滑窗长度序列L={L0,L1,L2,L3,….,Ln}
步骤S128,修正滑窗。
具体地,在上述步骤中,利用由随机码发生器产生的随机码,确定滑窗序列的调整参数,利用确定好的调整参数对原始滑窗序列进行调整。
步骤S130,判断滑窗长度是否大于0。
具体地,在上述步骤中,判断调整后的滑窗序列中的滑窗长度是否大于0,如果大于0,则执行步骤S132;反之,则执行步骤S140。
步骤S132,取出滑窗因子。
具体地,在上述步骤中,如果调整后的滑窗序列中的滑窗长度大于0,则提取调整后的滑窗序列中的滑窗因子。
步骤S134,相乘取模。
具体地,在上述步骤中,在提取调整后的滑窗序列中的滑窗因子后,对滑窗因子进行模平方处理和模乘处理,得到相乘取模后的值。
步骤S136,判断指数是否处理完成。
具体地,在上述步骤中,判断是否已经按MSb至LSb的顺序对P进行完滑窗遍历。
步骤S138,输出结果。
具体地,在上述步骤中,通过Result=MMM(B,1)计算得到最终结果Result。
步骤S140,平方取模求值。
具体地,在上述步骤中,如果调整后的滑窗序列中的滑窗长度等于0,则对进行平方取模求值运算。
步骤S142,滑窗长度调整。
具体地,在上述步骤中,调整滑窗长度,并对调整了滑窗长度的滑窗序列返回执行加扰处理。
需要说明的是,在进行乘幂取模运算过程中,每一步迭代的中间结果存入基数寄存器B中,具体地,按照如下步骤进行:
(1)按MSb至LSb的顺序对指数P做滑窗遍历,其有效滑窗的总个数记为n,计算对应的有效滑窗长度序列L={L0,L1,L2,L3,….,Ln};
(2)根据PN序列发生器的输出对有效滑窗长度序列L进行调整:
①从PN序列中获得初始的增/减方向;
②根据PN序列当前值对Li进行增/减调整;
③若调整后的非零长度有效窗口数量与调整前的数量之差大过阈值,将增/减方向反向,并对Li重复一次(2.2)的修正步骤;
④重复上述步骤,直到对全部序列修正完毕,调整后的有效滑窗长度序列L={L0,L1,L2,L3,….,Lm};
(3)依次对每个有效滑窗Li进行遍历(i=0,1,2…m):对Li内的每一个bit,都对应一次运算B=SQR(B);对每个Li,在其结束后对应一次运算B=MMM(B,A)。
基于上述步骤S122至S142公开的方案可以看出,本申请上述实施例与经典方法相比的优点在于,对于给定的指数P和滑窗长度上限,其有效滑窗长度序列并不能够唯一确定,盲化序列会随机调整滑窗长度序列的分布。
根据本发明实施例,还提供了一种智能网卡,包括根据上述任意一项可选或优选所述的密钥的处理方法得到的密钥。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
根据本发明实施例,还提供了一种用于实施上述密钥的处理方法的装置实施例,图16是根据本发明实施例的一种密钥的处理装置的示意图,如图16所示,该装置包括:第一获取模块161、第一处理模块163和第二处理模块165。
其中,第一获取模块161,用于获取密钥的滑窗序列,其中,滑窗序列包括:对密钥进行滑窗处理后得到的多个滑窗;
第一处理模块163,用于对滑窗序列中的至少一个滑窗进行加扰处理,得到加扰后的滑窗序列;
第二处理模块165,用于遍历加扰后的滑窗序列,使用蒙哥马利模乘器对加扰后的滑窗序列进行后处理。
此处需要说明的是,第一获取模块161、第一处理模块163和第二处理模块165可以对应于实施例1中的步骤S302至步骤S306,三个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。
由上可知,在本申请上述实施例中,通过对密钥的二进制序列进行滑窗处理,并统计对密钥进行滑窗处理得到的有效滑窗长度序列,得到该密钥的滑窗序列后,对得到的滑窗序列加入扰码的进行盲化处理,一种可选的实施例中,可以在RSA加密算法的指数控制运算序列(即,滑窗序列)中加入伪随机扰码,最后使用蒙哥马利模乘器对加扰后的滑窗序列进行后处理,达到了在增加原来的功耗和延时的情况下改变了对密钥进行滑窗处理得到的有效窗口长度序列和分布的目的,从而实现了提高密钥安全性的技术效果。
由此,本申请上述实施例解决了现有基于“滑窗处理”的RSA加密算法易受SPA攻击的技术问题。
在一种可选的实施例中,如图16所示,上述第一处理模块163包括:第三获取模块,用于获取随机码;第一确定模块,用于根据随机码,确定调整参数,其中,调整参数包括:调整趋势和调整长度;调整模块,用于使用调整参数调整滑窗序列中一个或多个滑窗的窗口长度,得到加扰后的滑窗序列。
此处需要说明的是,第三获取模块、第一确定模块和调整模块可以对应于实施例1中的步骤S502至步骤S506,三个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。
在一种可选的实施例中,如图16所示,上述第一确定模块包括:第一判断模块,用于判断随机码的值是否满足预设条件;第一执行模块,用于如果随机码的值满足预设条件,则确定调整趋势为增加滑窗长度或减少滑窗长度;第二确定模块,用于根据随机码的值所处的区域范围,确定随机码对应的调整长度。
此处需要说明的是,第一判断模块、第一执行模块和第二确定模块可以对应于实施例1中的步骤S602至步骤S606,三个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。
在一种可选的实施例中,如图16所示,上述装置还包括:第二判断模块,用于判断调整参数是否满足如下至少一个条件:条件一:调整长度是否没有超过滑窗的窗口长度;条件二:调整长度确定的调整位置是否存在对应的滑窗;第二执行模块,用于如果满足任意一个或多个条件,则允许使用调整参数调整滑窗序列。
此处需要说明的是,第二判断模块和第二确定模块可以对应于实施例1中的步骤S702至步骤S704,两个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。
在一种可选的实施例中,如图16所示,上述装置还包括:第四获取模块,用于获取滑窗序列中的窗口数量与加扰后的滑窗序列中的滑窗数量之间的差值;第三执行模块,用于如果差值超过第一预定阈值,修改调整趋势;第五获取模块,用于基于修改后的调整趋势重新确定随机码的调整长度,得到修正后的调整参数。
此处需要说明的是,第四获取模块、第三执行模块和第五获取模块可以对应于实施例1中的步骤S802至步骤S806,三个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。
在一种可选的实施例中,如图16所示,上述装置还包括:第三判断模块,用于判断加扰后的滑窗序列中的滑窗长度是否超过预定值;第四执行模块,用于如果超过预定值,则对滑窗中比特值为0的比特位进行模平方处理,得到平方取模后的值;第五执行模块,用于如果平方取模后的值超过第二预定阈值,则调整滑窗长度;第四处理模块,用于对调整了滑窗长度的滑窗序列返回执行加扰处理。
此处需要说明的是,第三判断模块、第四执行模块、第五执行模块和第四处理模块可以对应于实施例1中的步骤S902至步骤S908,四个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。
在一种可选的实施例中,如图16所示,上述装置还包括:第六执行模块,用于如果没有超过预定值,则提取加扰后的滑窗序列中的滑窗因子;第五处理模块,用于对滑窗因子进行模平方处理和模乘处理,得到相乘取模后的值。
此处需要说明的是,第六执行模块和第五处理模块可以对应于实施例1中的步骤S910至步骤S912,两个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。
在一种可选的实施例中,如图16所示,上述装置还包括:生成模块,用于通过获取随机码生成器生成随机码,其中,基于随机码执行加扰处理。
此处需要说明的是,生成模块可以对应于实施例1中的步骤S112,该模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端20中。
在一种可选的实施例中,如图16所示,上述第一获取模块161包括:第二获取模块,用于获取密钥的二进制序列;第三处理模块,用于对二进制序列进行滑窗处理,计算得到每个滑窗的长度,其中,多个滑窗构成滑窗序列。
此处需要说明的是,第二获取模块和第三处理模块可以对应于实施例1中的步骤S122至步骤S124,两个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。
在一种可选的实施例中,如图16所示,上述第三处理模块包括:第一子处理模块,用于采用预设窗口长度的滑窗从二进制序列第一预设位置至第二预设位置进行滑窗;第二子处理模块,用于在滑窗遇到比特位的值为1情况下结束滑窗,并从结束位置继续对二进制序列作滑窗,直到遍历整个二进制序列;计算模块,用于统计并计算每个滑窗的长度,得到滑窗序列。
此处需要说明的是,第一子处理模块、第二子处理模块和计算模块可以对应于实施例1中的步骤S132至步骤S136,三个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。
实施例3
本发明的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
图17示出了一种计算机终端的硬件结构框图。如图17所示,计算机终端17可以包括一个或多个(图中采用172a、172b,……,172n来示出)处理器172(处理器172可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器174、以及用于通信功能的传输装置176。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图17所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端17还可包括比图17中所示更多或者更少的组件,或者具有与图17所示不同的配置。
应当注意到的是上述一个或多个处理器172和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端17中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
处理器172可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:获取密钥的滑窗序列,其中,滑窗序列包括:对密钥进行滑窗处理后得到的多个滑窗;对滑窗序列中的至少一个滑窗进行加扰处理,得到加扰后的滑窗序列;遍历加扰后的滑窗序列,使用蒙哥马利模乘器对加扰后的滑窗序列进行后处理。
存储器174可用于存储应用软件的软件程序以及模块,如本发明实施例中的密钥的处理方法对应的程序指令/数据存储装置,处理器172通过运行存储在存储器174内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的密钥的处理方法。存储器174可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器174可进一步包括相对于处理器172远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端17。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置176用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端17的通信供应商提供的无线网络。在一个实例中,传输装置176包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置176可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端17的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图17所示的计算机终端17可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图17仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机终端17中的部件的类型。
在本实施例中,上述计算机终端17可以执行应用程序的密钥的处理方法中以下步骤的程序代码:获取密钥的滑窗序列,其中,滑窗序列包括:对密钥进行滑窗处理后得到的多个滑窗;对滑窗序列中的至少一个滑窗进行加扰处理,得到加扰后的滑窗序列;遍历加扰后的滑窗序列,使用蒙哥马利模乘器对加扰后的滑窗序列进行后处理。
可选的,上述处理器还可以执行如下步骤的程序代码:获取随机码;根据随机码,确定调整参数,其中,调整参数包括:调整趋势和调整长度;使用调整参数调整滑窗序列中一个或多个滑窗的窗口长度,得到加扰后的滑窗序列。
可选的,上述处理器还可以执行如下步骤的程序代码:判断随机码的值是否满足预设条件;如果随机码的值满足预设条件,则确定调整趋势为增加滑窗长度或减少滑窗长度;根据随机码的值所处的区域范围,确定随机码对应的调整长度。
可选的,上述处理器还可以执行如下步骤的程序代码:判断调整参数是否满足如下至少一个条件:条件一:调整长度是否没有超过滑窗的窗口长度;条件二:调整长度确定的调整位置是否存在对应的滑窗;如果满足任意一个或多个条件,则允许使用调整参数调整滑窗序列。
可选的,上述处理器还可以执行如下步骤的程序代码:获取滑窗序列中的窗口数量与加扰后的滑窗序列中的滑窗数量之间的差值;如果差值超过第一预定阈值,修改调整趋势;基于修改后的调整趋势重新确定随机码的调整长度,得到修正后的调整参数。
可选的,上述处理器还可以执行如下步骤的程序代码:判断加扰后的滑窗序列中的滑窗长度是否超过预定值;如果超过预定值,则对滑窗中比特值为0的比特位进行模平方处理,得到平方取模后的值;如果平方取模后的值超过第二预定阈值,则调整滑窗长度;对调整了滑窗长度的滑窗序列返回执行加扰处理。
可选的,上述处理器还可以执行如下步骤的程序代码:如果没有超过预定值,则提取加扰后的滑窗序列中的滑窗因子;对滑窗因子进行模平方处理和模乘处理,得到相乘取模后的值。
可选的,上述处理器还可以执行如下步骤的程序代码:通过随机码生成器生成随机码,其中,基于随机码执行加扰处理。
可选的,上述处理器还可以执行如下步骤的程序代码:获取密钥的二进制序列;对二进制序列进行滑窗处理,计算得到每个滑窗的长度,其中,多个滑窗构成滑窗序列。
可选的,上述处理器还可以执行如下步骤的程序代码:采用预设窗口长度的滑窗从二进制序列第一预设位置至第二预设位置进行滑窗;在滑窗遇到比特位的值为1情况下结束滑窗,并从结束位置继续对二进制序列作滑窗,直到遍历整个二进制序列;统计并计算每个滑窗的长度,得到滑窗序列。
本领域普通技术人员可以理解,图17所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图17其并不对上述电子装置的结构造成限定。例如,计算机终端17还可包括比图17中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图17所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例4
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的密钥的处理方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:获取密钥的滑窗序列,其中,滑窗序列包括:对密钥进行滑窗处理后得到的多个滑窗;对滑窗序列中的至少一个滑窗进行加扰处理,得到加扰后的滑窗序列;遍历加扰后的滑窗序列,使用蒙哥马利模乘器对加扰后的滑窗序列进行后处理。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:获取随机码;根据随机码,确定调整参数,其中,调整参数包括:调整趋势和调整长度;使用调整参数调整滑窗序列中一个或多个滑窗的窗口长度,得到加扰后的滑窗序列。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:判断随机码的值是否满足预设条件;如果随机码的值满足预设条件,则确定调整趋势为增加滑窗长度或减少滑窗长度;根据随机码的值所处的区域范围,确定随机码对应的调整长度。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:判断调整参数是否满足如下至少一个条件:条件一:调整长度是否没有超过滑窗的窗口长度;条件二:调整长度确定的调整位置是否存在对应的滑窗;如果满足任意一个或多个条件,则允许使用调整参数调整滑窗序列。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:获取滑窗序列中的窗口数量与加扰后的滑窗序列中的滑窗数量之间的差值;如果差值超过第一预定阈值,修改调整趋势;基于修改后的调整趋势重新确定随机码的调整长度,得到修正后的调整参数。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:判断加扰后的滑窗序列中的滑窗长度是否超过预定值;如果超过预定值,则对滑窗中比特值为0的比特位进行模平方处理,得到平方取模后的值;如果平方取模后的值超过第二预定阈值,则调整滑窗长度;对调整了滑窗长度的滑窗序列返回执行加扰处理。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:如果没有超过预定值,则提取加扰后的滑窗序列中的滑窗因子;对滑窗因子进行模平方处理和模乘处理,得到相乘取模后的值。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:通过随机码生成器生成随机码,其中,基于随机码执行加扰处理。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:获取密钥的二进制序列;对二进制序列进行滑窗处理,计算得到每个滑窗的长度,其中,多个滑窗构成滑窗序列。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:采用预设窗口长度的滑窗从二进制序列第一预设位置至第二预设位置进行滑窗;在滑窗遇到比特位的值为1情况下结束滑窗,并从结束位置继续对二进制序列作滑窗,直到遍历整个二进制序列;统计并计算每个滑窗的长度,得到滑窗序列。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (12)

1.一种密钥的处理方法,其特征在于,包括:
获取密钥的滑窗序列,其中,所述滑窗序列包括:对所述密钥进行滑窗处理后得到的多个滑窗;
对所述滑窗序列中的至少一个滑窗进行加扰处理,得到加扰后的滑窗序列;
遍历所述加扰后的滑窗序列,使用蒙哥马利模乘器对所述加扰后的滑窗序列进行后处理。
2.根据权利要求1所述的方法,其特征在于,对所述滑窗序列中的至少一个滑窗进行加扰处理,得到加扰后的滑窗序列,包括:
获取随机码;
根据所述随机码,确定调整参数,其中,所述调整参数包括:调整趋势和调整长度;
使用所述调整参数调整所述滑窗序列中一个或多个滑窗的窗口长度,得到所述加扰后的滑窗序列。
3.根据权利要求2所述的方法,其特征在于,根据所述随机码,确定调整参数,包括:
判断所述随机码的值是否满足预设条件;
如果所述随机码的值满足所述预设条件,则确定所述调整趋势为增加滑窗长度或减少滑窗长度;
根据所述随机码的值所处的区域范围,确定所述随机码对应的调整长度。
4.根据权利要求2所述的方法,其特征在于,在根据所述随机码,确定调整参数之后,所述方法还包括:
判断所述调整参数是否满足如下至少一个条件:
条件一:所述调整长度是否没有超过滑窗的窗口长度;
条件二:所述调整长度确定的调整位置是否存在对应的滑窗;
如果满足任意一个或多个所述条件,则允许使用所述调整参数调整所述滑窗序列。
5.根据权利要求2所述的方法,其特征在于,在使用所述调整参数调整所述滑窗序列中一个或多个滑窗的窗口长度之后,所述方法还包括:
获取所述滑窗序列中的窗口数量与所述加扰后的滑窗序列中的滑窗数量之间的差值;
如果所述差值超过第一预定阈值,修改所述调整趋势;
基于修改后的调整趋势重新确定所述随机码的调整长度,得到修正后的调整参数。
6.根据权利要求1至5中任意一项所述的方法,其特征在于,在遍历所述加扰后的滑窗序列,使用蒙哥马利模乘器对所述加扰后的滑窗序列进行后处理之前,所述方法还包括:
判断所述加扰后的滑窗序列中的滑窗长度是否超过预定值;
如果超过所述预定值,则对滑窗中比特值为0的比特位进行模平方处理,得到平方取模后的值;
如果所述平方取模后的值超过第二预定阈值,则调整所述滑窗长度;
对调整了滑窗长度的滑窗序列返回执行所述加扰处理。
7.根据权利要求6所述的方法,其特征在于,
如果没有超过所述预定值,则提取所述加扰后的滑窗序列中的滑窗因子;
对所述滑窗因子进行所述模平方处理和模乘处理,得到相乘取模后的值。
8.根据权利要求1至5中任意一项所述的方法,其特征在于,在获取密钥的滑窗序列之前,所述方法还包括:
通过随机码生成器生成随机码,其中,基于所述随机码执行所述加扰处理。
9.根据权利要求1所述的方法,其特征在于,获取密钥的滑窗序列,包括:
获取所述密钥的二进制序列;
对所述二进制序列进行滑窗处理,计算得到每个滑窗的长度,其中,多个滑窗构成所述滑窗序列。
10.根据权利要求9所述的方法,其特征在于,对所述二进制序列进行滑窗处理,计算得到每个滑窗的长度,包括:
采用预设窗口长度的滑窗从所述二进制序列第一预设位置至第二预设位置进行滑窗;
在所述滑窗遇到比特位的值为1情况下结束滑窗,并从结束位置继续对所述二进制序列作滑窗,直到遍历整个所述二进制序列;
统计并计算每个滑窗的长度,得到所述滑窗序列。
11.一种密钥的处理装置,其特征在于,包括:
第一获取模块,用于获取密钥的滑窗序列,其中,所述滑窗序列包括:对所述密钥进行滑窗处理后得到的多个滑窗;
第二处理模块,用于对所述滑窗序列中的至少一个滑窗进行加扰处理,得到加扰后的滑窗序列;
第三处理模块,用于遍历所述加扰后的滑窗序列,使用蒙哥马利模乘器对所述加扰后的滑窗序列进行后处理。
12.一种智能网卡,其特征在于,包括根据权利要求1至10中任意一项所述的密钥的处理方法得到的密钥。
CN201611223887.6A 2016-12-26 2016-12-26 密钥的处理方法和装置 Active CN108242994B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201611223887.6A CN108242994B (zh) 2016-12-26 2016-12-26 密钥的处理方法和装置
TW106126271A TWI730152B (zh) 2016-12-26 2017-08-03 密鑰的處理方法和裝置
US15/847,689 US10721056B2 (en) 2016-12-26 2017-12-19 Key processing method and device
PCT/US2017/067335 WO2018125677A1 (en) 2016-12-26 2017-12-19 Key processing method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611223887.6A CN108242994B (zh) 2016-12-26 2016-12-26 密钥的处理方法和装置

Publications (2)

Publication Number Publication Date
CN108242994A true CN108242994A (zh) 2018-07-03
CN108242994B CN108242994B (zh) 2021-08-13

Family

ID=62630174

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611223887.6A Active CN108242994B (zh) 2016-12-26 2016-12-26 密钥的处理方法和装置

Country Status (4)

Country Link
US (1) US10721056B2 (zh)
CN (1) CN108242994B (zh)
TW (1) TWI730152B (zh)
WO (1) WO2018125677A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112019320A (zh) * 2019-05-30 2020-12-01 中国科学技术大学 侧信道分析中的能量轨迹提取方法及系统
CN113570465A (zh) * 2021-09-18 2021-10-29 杭州远境互联科技有限公司 基于pos共识机制的区块链签名处理方法
CN113609511A (zh) * 2021-09-30 2021-11-05 北京智芯微电子科技有限公司 数据处理和密钥保护方法、装置、设备、存储介质和程序
CN115459898A (zh) * 2022-08-23 2022-12-09 西安电子科技大学 一种基于GPU的Paillier同态加解密计算方法及系统
CN117792640A (zh) * 2024-02-22 2024-03-29 中国科学技术大学 动态调整量子密钥分组尺寸和量子密钥窗口尺寸的方法及系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11863304B2 (en) * 2017-10-31 2024-01-02 Unm Rainforest Innovations System and methods directed to side-channel power resistance for encryption algorithms using dynamic partial reconfiguration

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1702613A (zh) * 2004-03-02 2005-11-30 三星电子株式会社 蒙哥马利模乘法器
US20090003607A1 (en) * 2007-06-28 2009-01-01 Samsung Electronics Co., Ltd. Altering the size of windows in public key cryptographic computations
CN101378314A (zh) * 2008-09-26 2009-03-04 北京数字太和科技有限责任公司 一种密钥序列的生成方法和密钥产生装置
US7974409B2 (en) * 2007-06-28 2011-07-05 Samsung Electronics Co., Ltd. Changing the order of public key cryptographic computations
CN102468956A (zh) * 2010-11-11 2012-05-23 上海华虹集成电路有限责任公司 适用于rsa模幂计算的方法
CN102571342A (zh) * 2010-12-27 2012-07-11 北京中电华大电子设计有限责任公司 一种rsa算法数字签名方法
US20130297919A1 (en) * 2011-11-30 2013-11-07 Xiaozhu Kang Efficient implementation of rsa using gpu/cpu architecture
CN103560877A (zh) * 2013-11-01 2014-02-05 中国电子科技集团公司第十五研究所 攻击密钥的方法及装置
CN104750455A (zh) * 2013-12-31 2015-07-01 上海复旦微电子集团股份有限公司 一种基于蒙哥马利模乘的数据处理方法和装置

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6259789B1 (en) * 1997-12-12 2001-07-10 Safecourier Software, Inc. Computer implemented secret object key block cipher encryption and digital signature device and method
FI112708B (fi) 2000-09-29 2003-12-31 Setec Oy Menetelmä ja laite vasteen laskemiseksi
JP3950638B2 (ja) * 2001-03-05 2007-08-01 株式会社日立製作所 耐タンパーモジュラ演算処理方法
JP4199937B2 (ja) 2001-03-06 2008-12-24 株式会社日立製作所 耐タンパー暗号処理方法
US7218734B2 (en) 2001-05-02 2007-05-15 Nciper Corporation Limited Ring arithmetic method, system, and apparatus
IL143951A0 (en) 2001-06-21 2003-09-17 Discretix Technologies Ltd A method and apparatus for carrying out efficiently arithmetic computations in hardware
US20030072442A1 (en) * 2001-10-01 2003-04-17 Blakley George Robert Cisponentiation method, software, and device for exponentiation
US7185039B2 (en) 2003-05-19 2007-02-27 Lsi Logic Corporation Multiplier for modular exponentiation
US7478748B2 (en) 2004-08-30 2009-01-20 Robert Buttross Access control system and method
FR2880148A1 (fr) 2004-12-23 2006-06-30 Gemplus Sa Procede d'exponentiation securisee et compacte pour la cryptographie
US7602907B2 (en) 2005-07-01 2009-10-13 Microsoft Corporation Elliptic curve point multiplication
US7900022B2 (en) * 2005-12-30 2011-03-01 Intel Corporation Programmable processing unit with an input buffer and output buffer configured to exclusively exchange data with either a shared memory logic or a multiplier based upon a mode instruction
KR100850202B1 (ko) 2006-03-04 2008-08-04 삼성전자주식회사 Ecc 패스트 몽고매리 전력 래더 알고리즘을 이용하여dfa 에 대응하는 암호화 방법
US20080005209A1 (en) 2006-06-29 2008-01-03 Kounavis Michael E System, method and apparatus for public key encryption
US7760875B2 (en) 2006-06-29 2010-07-20 Intel Corporation Accelerating Diffie-Hellman key-exchange protocol with zero-biased exponent windowing
US8265267B2 (en) * 2007-05-30 2012-09-11 Panasonic Corporation Information security device
US8380767B2 (en) 2007-06-30 2013-02-19 Intel Corporation Polynomial-basis to normal-basis transformation for binary Galois-Fields GF(2m)
US8380777B2 (en) 2007-06-30 2013-02-19 Intel Corporation Normal-basis to canonical-basis transformation for binary galois-fields GF(2m)
US7903814B2 (en) 2007-07-26 2011-03-08 Samsung Electronics Co., Ltd. Enhancing the security of public key cryptosystem implementations
JP5328186B2 (ja) * 2008-03-21 2013-10-30 ルネサスエレクトロニクス株式会社 データ処理システム及びデータ処理方法
US8645713B2 (en) 2011-03-22 2014-02-04 Fujitsu Limited Encrypting method, recording medium of encrypting program, decrypting method, and recording medium of decrypting program
FR2997780B1 (fr) 2012-11-07 2016-01-22 Inside Secure Procede de cryptographie comprenant une operation d'exponentiation modulaire
FR3001315B1 (fr) * 2013-01-18 2016-05-06 Inside Secure Procede de cryptographie comprenant une operation de multiplication par un scalaire ou une exponentiation
US9959429B2 (en) * 2013-03-15 2018-05-01 Cryptography Research, Inc. Asymmetrically masked multiplication
US9094377B2 (en) * 2013-08-16 2015-07-28 Netflix, Inc. Key generation and broadcasting
CN104883256B (zh) 2014-02-27 2019-02-01 中国科学院数据与通信保护研究教育中心 一种抵抗物理攻击和系统攻击的密钥保护方法
US9735953B2 (en) 2015-03-06 2017-08-15 Qualcomm Incorporated Side channel analysis resistant architecture
US20170118017A1 (en) 2015-06-19 2017-04-27 Numecent Holdings, Inc. Systems and methods for cryptography using folding unit computations
EP3375165B1 (en) 2015-11-13 2023-06-14 Samsung Electronics Co., Ltd. Method and apparatus for downloading profile on embedded universal integrated circuit card of terminal
DK3387855T3 (da) 2015-12-07 2021-06-28 Ericsson Telefon Ab L M Fremgangsmåder og arrangementer til at autentificere en kommunikationsindretning
US10346147B2 (en) 2015-12-22 2019-07-09 Samsung Electronics Co., Ltd. Method and apparatus for providing a profile
US10097525B2 (en) 2016-03-08 2018-10-09 Qualcomm Incorporated System, apparatus and method for generating dynamic IPV6 addresses for secure authentication

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1702613A (zh) * 2004-03-02 2005-11-30 三星电子株式会社 蒙哥马利模乘法器
US20090003607A1 (en) * 2007-06-28 2009-01-01 Samsung Electronics Co., Ltd. Altering the size of windows in public key cryptographic computations
US7974409B2 (en) * 2007-06-28 2011-07-05 Samsung Electronics Co., Ltd. Changing the order of public key cryptographic computations
CN101378314A (zh) * 2008-09-26 2009-03-04 北京数字太和科技有限责任公司 一种密钥序列的生成方法和密钥产生装置
CN102468956A (zh) * 2010-11-11 2012-05-23 上海华虹集成电路有限责任公司 适用于rsa模幂计算的方法
CN102571342A (zh) * 2010-12-27 2012-07-11 北京中电华大电子设计有限责任公司 一种rsa算法数字签名方法
US20130297919A1 (en) * 2011-11-30 2013-11-07 Xiaozhu Kang Efficient implementation of rsa using gpu/cpu architecture
CN103560877A (zh) * 2013-11-01 2014-02-05 中国电子科技集团公司第十五研究所 攻击密钥的方法及装置
CN104750455A (zh) * 2013-12-31 2015-07-01 上海复旦微电子集团股份有限公司 一种基于蒙哥马利模乘的数据处理方法和装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112019320A (zh) * 2019-05-30 2020-12-01 中国科学技术大学 侧信道分析中的能量轨迹提取方法及系统
CN112019320B (zh) * 2019-05-30 2022-04-19 中国科学技术大学 侧信道分析中的能量轨迹提取方法及系统
CN113570465A (zh) * 2021-09-18 2021-10-29 杭州远境互联科技有限公司 基于pos共识机制的区块链签名处理方法
CN113570465B (zh) * 2021-09-18 2022-01-07 杭州远境互联科技有限公司 基于pos共识机制的区块链签名处理方法
CN113609511A (zh) * 2021-09-30 2021-11-05 北京智芯微电子科技有限公司 数据处理和密钥保护方法、装置、设备、存储介质和程序
CN115459898A (zh) * 2022-08-23 2022-12-09 西安电子科技大学 一种基于GPU的Paillier同态加解密计算方法及系统
CN117792640A (zh) * 2024-02-22 2024-03-29 中国科学技术大学 动态调整量子密钥分组尺寸和量子密钥窗口尺寸的方法及系统
CN117792640B (zh) * 2024-02-22 2024-04-30 中国科学技术大学 动态调整量子密钥分组尺寸和量子密钥窗口尺寸的方法及系统

Also Published As

Publication number Publication date
US10721056B2 (en) 2020-07-21
TW201824805A (zh) 2018-07-01
CN108242994B (zh) 2021-08-13
TWI730152B (zh) 2021-06-11
WO2018125677A1 (en) 2018-07-05
US20180183569A1 (en) 2018-06-28

Similar Documents

Publication Publication Date Title
CN108242994A (zh) 密钥的处理方法和装置
Medwed et al. Template attacks on ECDSA
EP3559811B1 (en) Protecting parallel multiplication operations from external monitoring attacks
CN105207772B (zh) 安全地交换消息的加密方法及实现该方法的设备和系统
CN104796250B (zh) 针对RSA密码算法M-ary实现的侧信道攻击方法
EP1840732A1 (en) Protection against side channel attacks
CN106105093B (zh) 用于抵制旁信道信息泄露的椭圆曲线点相乘的方法和装置
CN107111966A (zh) 用于测试并且加固软件应用的方法
CN104378196A (zh) 加解密算法的安全执行方法和装置
CN103795527A (zh) 防止基于功耗分析攻击aes算法的软件掩码防护方案
CN111817842B (zh) 一种针对rsa-crt运算的能量分析攻击测试装置和方法
CN104811297B (zh) 针对RSA之M-ary实现模乘余数输入侧信道攻击
WO2018019233A1 (zh) 一种运算方法和安全芯片
CN107896142B (zh) 一种执行模幂运算的方法及装置、计算机可读存储介质
CN107659402A (zh) 一种数字加密货币的交易数据签名方法、装置及介质
Gaspar et al. Hardware implementation and side-channel analysis of lapin
CN114465728B (zh) 攻击椭圆曲线签名算法的方法、装置、设备及存储介质
CN104298897B (zh) 基于混沌技术的嵌入式版权认证方法及专用处理器
CN109936437A (zh) 一种基于d+1阶掩码的抗功耗攻击方法
CN108370311A (zh) 计算设备和方法
Hanley et al. Exploiting collisions in addition chain-based exponentiation algorithms using a single trace
Wang et al. Single-Trace Side-Channel Attacks on CRYSTALS-Dilithium: Myth or Reality?
CN113965324B (zh) 基于模板的rsa-crt实现模约减攻击的私钥恢复方法和系统
Eliasi et al. Xoodyak Under SCA Siege
CN106330443B (zh) 一种基于sm3算法的密码模块的防攻击方法及装置

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