CN113965324A - 基于模板的rsa-crt实现模约减攻击的私钥恢复方法和系统 - Google Patents

基于模板的rsa-crt实现模约减攻击的私钥恢复方法和系统 Download PDF

Info

Publication number
CN113965324A
CN113965324A CN202111482487.8A CN202111482487A CN113965324A CN 113965324 A CN113965324 A CN 113965324A CN 202111482487 A CN202111482487 A CN 202111482487A CN 113965324 A CN113965324 A CN 113965324A
Authority
CN
China
Prior art keywords
byte
hamming weight
intermediate value
private key
rsa
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
CN202111482487.8A
Other languages
English (en)
Other versions
CN113965324B (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.)
National Information Technology Security Research Center
Original Assignee
National Information Technology Security Research Center
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 National Information Technology Security Research Center filed Critical National Information Technology Security Research Center
Priority to CN202111482487.8A priority Critical patent/CN113965324B/zh
Publication of CN113965324A publication Critical patent/CN113965324A/zh
Application granted granted Critical
Publication of CN113965324B publication Critical patent/CN113965324B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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
    • 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/723Modular exponentiation
    • 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

Abstract

本申请实施例公开了基于模板的RSA‑CRT实现模约减攻击的私钥恢复方法和系统,所述方法包括:基于汉明重量模型,对训练设备的模约减操作的能量迹进行多元正态分布建模,得到模约减后中间值逐字节对应的模板;基于选择密文的模板匹配方法,得到RSA算法模约减操作的中间值r,由中间值r恢复RSA算法使用的私钥p;分解公钥n得到私钥q,从而得到RSA的私钥p和q。基于模约减后中间值的汉明重量模型建模,通过采集选择密文模约减的能量迹进行模板匹配获取模约减后中间值的汉明重量,根据私钥恢复算法进行密钥恢复,解决了无法由模约减后中间值的汉明重量恢复私钥的难题。

Description

基于模板的RSA-CRT实现模约减攻击的私钥恢复方法和系统
技术领域
本申请实施例涉及密码学应用技术领域,具体涉及基于模板的RSA-CRT实现模约减攻击的私钥恢复方法和系统。
背景技术
Kocher等提出的差分能量分析开创了侧信道攻击这一研究领域,侧信道攻击主要研究利用密码设备加解密消息过程中泄漏出的能量消耗、电磁辐射等侧信道信息恢复敏感信息。侧信道攻击主要分为两类,一类是建模类攻击,如模板攻击,另一类是非建模类攻击,如相关能量分析。基于建模类攻击,攻击者需要获得两个一模一样的设备,其中一个设备具有足够的控制权,将采集的能量迹进行训练建立模板,使用另一个设备采集的能量迹进行匹配,匹配概率最高的对应为正确密钥。基于非建模类攻击,只需要采集目标设备明文对应的能量迹,将明文与猜测密钥对应的假设能量消耗值计算相关性系数,系数最大对应的密钥猜测为正确密钥。到目前为止,模板攻击的密码算法涵盖了RSA、DES和AES等。由于侧信道攻击的通用性和极强的现实威胁性,分析者对其进行了深入研究,并将其用于破解各种密码算法工程实现,恢复密码算法使用的密钥。
RSA算法是一种被广泛应用的公钥密码算法,对其的侧信道攻击一直是研究的热点。Messees等提出了针对模幂运算的三种差分能量攻击方法:单指数多数据(SingleExponent Multiple Data)、多指数单数据(Multiple Exponent Single Data)、零指数多数据(Zero Exponent Multiple Data),并分析了这三种方法的使用条件。Novak根据Garner重组运算中模p运算中是否要执行加p运算,提出了选择可适应密文的简单能量分析攻击。Yen等提出了一种选择明文的简单能量分析攻击方法,当k是奇数时,
Figure 223707DEST_PATH_IMAGE001
。当k是偶数时,
Figure 696277DEST_PATH_IMAGE002
。通过观察能量迹可以直接辨别出参与运算的私钥信息。M Witteman利用了RSA-CRT重组运算中近似相等关系,提出了单字节猜测密钥p或q的侧信道攻击方法,Witteman等针对RSA-CRT带有能量消耗分支平衡算法的快速实现方式,提出一种侧信道攻击方法。该方法通过识别相关能量消耗特征,如相邻列之间相关性高的为0,相关性低的为1,以此恢复私钥信息。Coppersmith提出了针对RSA的因子分解定理,如果能够获取p和q的低部分
Figure 12988DEST_PATH_IMAGE003
位信息,那么就可以得出p和q,但是目前并没有相关研究者在该条件下成功恢复出p和q值,有许多研究者提出了已知p某些比特恢复p的实现方法,查阅到最新的成果由Stephen等2021年提出的,提出了一种减少格的维度和矩阵大小的方法,使得恢复RSA算法的密钥时间更小,速度更快。
目前,现有技术中模约减攻击都采用了相关能量分析与选择输入消息相结合的方式。在一些场景中,通常可以获取模约减后的汉明重量值,但是由汉明重量值如何恢复RSA算法的私钥是一个亟待解决的难题。
发明内容
为此,本申请实施例提供基于模板的RSA-CRT实现模约减攻击的私钥恢复方法和系统,基于模约减后中间值的汉明重量模型建模,通过采集选择密文模约减的能量迹进行模板匹配获取模约减后中间值的汉明重量,根据私钥恢复算法进行密钥恢复,解决了无法由模约减后中间值的汉明重量恢复私钥的难题。
为了实现上述目的,本申请实施例提供如下技术方案:
根据本申请实施例的第一方面,提供了基于模板的RSA-CRT实现模约减攻击的私钥恢复方法,所述方法包括:
基于汉明重量模型,对训练设备的模约减操作的能量迹进行多元正态分布建模,得到模约减后中间值逐字节对应的模板;
基于选择密文的模板匹配方法,得到RSA算法模约减操作的中间值r,由中间值r恢复RSA算法使用的私钥p;
分解公钥n得到私钥q,从而得到RSA的私钥p和q。
可选地,所述基于汉明重量模型,对训练设备的模约减操作的能量迹进行多元正态分布建模,得到模约减后中间值逐字节对应的模板,包括:
将m个随机密文,输入训练设备进行模约减操作,得到模约减操作后的中间值
Figure 938219DEST_PATH_IMAGE004
基于m个随机密文分别采集每个随机密文操作对应的能量消耗,得到能量迹
Figure 162527DEST_PATH_IMAGE005
根据能量迹
Figure 489603DEST_PATH_IMAGE005
和中间值
Figure 852583DEST_PATH_IMAGE004
进行汉明重量值多元正态分布建模,得到模约减后中间值逐字节对应的模板。
可选地,基于选择密文的模板匹配方法,得到RSA算法模约减操作的中间值r,包括:
选择随机密文C,输入目标设备进行模约减操作,得到模约减操作能量消耗的能量迹
Figure 265109DEST_PATH_IMAGE006
Figure 27529DEST_PATH_IMAGE006
与模板匹配,得到中间值r的第一逐字节汉明重量值
Figure 677953DEST_PATH_IMAGE007
Figure 133205DEST_PATH_IMAGE008
表示r的最低字节的汉明重量值,
Figure 33028DEST_PATH_IMAGE009
表示r的第i个汉明重量值,
Figure 599139DEST_PATH_IMAGE010
,k为字节随机数据;
将密文
Figure 963124DEST_PATH_IMAGE011
输入目标设备进行模约减操作,得到模约减操作能量消耗的能量迹
Figure 589277DEST_PATH_IMAGE012
分别将
Figure 976396DEST_PATH_IMAGE012
与模板匹配获取中间值
Figure 80619DEST_PATH_IMAGE013
的第二逐字节汉明重量值
Figure 79536DEST_PATH_IMAGE014
Figure 876591DEST_PATH_IMAGE015
表示
Figure 485427DEST_PATH_IMAGE016
的最低字节的汉明重量值,
Figure 862182DEST_PATH_IMAGE017
表示
Figure 872863DEST_PATH_IMAGE018
的第i个汉明重量值,
Figure 840819DEST_PATH_IMAGE019
根据第一逐字节汉明重量值和第二逐字节汉明重量值的差值,确定中间值r的一个字节
Figure 936951DEST_PATH_IMAGE020
通过逐位查表得到8位一个字节,将查表得到的字节连接,得到中间值r。
可选地,密文
Figure 710872DEST_PATH_IMAGE021
按照如下公式计算:
Figure 841639DEST_PATH_IMAGE022
其中,C为随机密文,j=0,1,…,7。
可选地,所述由中间值r恢复RSA算法使用的私钥p,包括:
按照如下公式由中间值r恢复RSA算法使用的私钥p:
Figure 980496DEST_PATH_IMAGE023
其中,C为随机密文,r为中间值,n为目标设备公钥;
若p>1则p为RSA算法使用的目标设备私钥,若p=1则重复计算中间值r的步骤直到满足p大于1的条件,以得到RSA算法使用的目标设备私钥p。
根据本申请实施例的第二方面,提供了基于模板的RSA-CRT实现模约减攻击的私钥恢复系统,所述系统包括:
汉明重量建模模块,用于基于汉明重量模型,对训练设备的模约减操作的能量迹进行多元正态分布建模,得到模约减后中间值逐字节对应的模板;
RSA私钥恢复模块,用于基于选择密文的模板匹配方法,得到RSA算法模约减操作的中间值r,由中间值r恢复RSA算法使用的私钥p;
RSA私钥计算模块,用于分解公钥n得到私钥q,从而得到RSA的私钥p和q。
可选地,所述汉明重量建模模块,具体用于:
将m个随机密文,输入训练设备进行模约减操作,得到模约减操作后的中间值
Figure 563924DEST_PATH_IMAGE024
基于m个随机密文分别采集每个随机密文操作对应的能量消耗,得到能量迹
Figure 157848DEST_PATH_IMAGE025
根据能量迹
Figure 143121DEST_PATH_IMAGE025
和中间值
Figure 452880DEST_PATH_IMAGE024
进行汉明重量值多元正态分布建模,得到模约减后中间值逐字节对应的模板。
可选地,所述RSA私钥恢复模块,具体用于:
选择随机密文C,输入目标设备进行模约减操作,得到模约减操作能量消耗的能量迹
Figure 726867DEST_PATH_IMAGE026
Figure 780273DEST_PATH_IMAGE027
与模板匹配,得到中间值r的第一逐字节汉明重量值
Figure 620053DEST_PATH_IMAGE028
Figure 100713DEST_PATH_IMAGE029
表示r的最低字节的汉明重量值,
Figure 986630DEST_PATH_IMAGE030
表示r的第i个汉明重量值,
Figure 843727DEST_PATH_IMAGE031
,k为字节随机数据;
将密文
Figure 538014DEST_PATH_IMAGE032
输入目标设备进行模约减操作,得到模约减操作能量消耗的能量迹
Figure 189575DEST_PATH_IMAGE033
分别将
Figure 817914DEST_PATH_IMAGE033
与模板匹配获取中间值
Figure 213124DEST_PATH_IMAGE034
的第二逐字节汉明重量值
Figure 761917DEST_PATH_IMAGE035
Figure 318800DEST_PATH_IMAGE036
表示
Figure 585833DEST_PATH_IMAGE037
的最低字节的汉明重量值,
Figure 519154DEST_PATH_IMAGE038
表示
Figure 188033DEST_PATH_IMAGE039
的第i个汉明重量值,
Figure 774872DEST_PATH_IMAGE040
根据第一逐字节汉明重量值和第二逐字节汉明重量值的差值,确定中间值r的一个字节
Figure 263622DEST_PATH_IMAGE041
通过逐位查表得到8位一个字节,将查表得到的字节连接,得到中间值r。
根据本申请实施例的第三方面,提供了一种设备,所述设备包括:数据采集装置、处理器和存储器;所述数据采集装置用于采集数据;所述存储器用于存储一个或多个程序指令;所述处理器,用于执行一个或多个程序指令,用以执行第一方面任一项所述的方法。
根据本申请实施例的第四方面,提供了一种计算机可读存储介质,所述计算机存储介质中包含一个或多个程序指令,所述一个或多个程序指令用于执行如第一方面任一项所述的方法。
综上所述,本申请实施例提供了基于模板的RSA-CRT实现模约减攻击的私钥恢复方法和系统,通过基于汉明重量模型,对训练设备的模约减操作的能量迹进行多元正态分布建模,得到模约减后中间值逐字节对应的模板;基于选择密文的模板匹配方法,得到RSA算法模约减操作的中间值r,由中间值r恢复RSA算法使用的私钥p;分解公钥n得到私钥q,从而得到RSA的私钥p和q。基于模约减后中间值的汉明重量模型建模,通过采集选择密文模约减的能量迹进行模板匹配获取模约减后中间值的汉明重量,根据私钥恢复算法进行密钥恢复,解决了无法由模约减后中间值的汉明重量恢复私钥的难题。
附图说明
为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容能涵盖的范围内。
图1为本申请实施例提供的基于模板的RSA-CRT实现模约减攻击的私钥恢复方法流程示意图;
图2为本申请实施例提供的RSA-CRT模约减操作能量迹示意图;
图3为本申请实施例提供的能量迹模板匹配高16字节图;
图4为本申请实施例提供的能量迹模板匹配最高字节图;
图5为本申请实施例提供的能量迹模板匹配32-48字节图;
图6为本申请实施例提供的能量迹模板匹配16-32字节图;
图7为本申请实施例提供的能量迹低16字节模板匹配图;
图8为本申请实施例提供的基于模板的RSA-CRT实现模约减攻击的私钥恢复系统框图。
具体实施方式
以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本领域部分公知术语定义如下:
汉明重量:计算数据以二进制展开非零数据位的个数。
能量迹:通过示波器采集密码模块某个操作的能量消耗曲线。
多元正态分布建模:多元正态分布由均值向量m和协方差矩阵K组成.在模板建模时,通过记录不同的数据对(di,kj)产生的能量迹,将相同的数据对对应的能量迹划为一组,分别计算这些能量迹的均值向量和协方差矩阵.本专利中基于汉明重量建模将数据相同汉明重量值对应的能量迹划为一组,分别计算这些能量迹的均值向量和协方差矩阵。
图1示出了本申请实施例提供的基于模板的RSA-CRT实现模约减攻击的私钥恢复方法,所述方法包括:
步骤101:基于汉明重量模型,对训练设备的模约减操作的能量迹进行多元正态分布建模,得到模约减后中间值逐字节对应的模板;能量迹是用示波器采集到的能量消耗曲线;
步骤102:基于选择密文的模板匹配方法,得到RSA算法模约减操作的中间值r,由中间值r恢复RSA算法使用的私钥p;
步骤103:分解公钥n得到私钥q,从而得到RSA的私钥p和q。
在一种可能的实施方式中,在步骤101中,所述基于汉明重量模型,对训练设备的模约减操作的能量迹进行多元正态分布建模,得到模约减后中间值逐字节对应的模板,包括:
将m个随机密文,输入训练设备进行模约减操作,得到模约减操作后的中间值
Figure 266213DEST_PATH_IMAGE042
基于m个随机密文分别采集每个随机密文操作对应的能量消耗,得到能量迹
Figure 789598DEST_PATH_IMAGE043
根据能量迹
Figure 422705DEST_PATH_IMAGE043
和中间值
Figure 664331DEST_PATH_IMAGE042
进行汉明重量值多元正态分布建模,得到模约减后中间值逐字节对应的模板。
在一种可能的实施方式中,在步骤102中,基于选择密文的模板匹配方法,得到RSA算法模约减操作的中间值r,包括:
选择随机密文C,输入目标设备进行模约减操作,得到模约减操作能量消耗的能量迹
Figure 205033DEST_PATH_IMAGE044
Figure 661554DEST_PATH_IMAGE044
与模板匹配,得到中间值r的第一逐字节汉明重量值
Figure 262299DEST_PATH_IMAGE045
Figure 725642DEST_PATH_IMAGE046
表示r的最低字节的汉明重量值,
Figure 70035DEST_PATH_IMAGE047
表示r的第i个汉明重量值,
Figure 895909DEST_PATH_IMAGE048
,k为字节随机数据;H代表的是r以字节方式展开,每个字节的汉明重量值;
将密文
Figure 401976DEST_PATH_IMAGE049
输入目标设备进行模约减操作,得到模约减操作能量消耗的能量迹
Figure 618194DEST_PATH_IMAGE050
分别将
Figure 500700DEST_PATH_IMAGE050
与模板匹配获取中间值
Figure 322025DEST_PATH_IMAGE051
的第二逐字节汉明重量值
Figure 998994DEST_PATH_IMAGE052
Figure 436929DEST_PATH_IMAGE053
表示
Figure 700289DEST_PATH_IMAGE054
的最低字节的汉明重量值,
Figure 907279DEST_PATH_IMAGE055
表示
Figure 20728DEST_PATH_IMAGE056
的第i个汉明重量值,
Figure 945959DEST_PATH_IMAGE057
根据第一逐字节汉明重量值和第二逐字节汉明重量值的差值,确定中间值r的一个字节
Figure 763742DEST_PATH_IMAGE058
通过逐位查表得到8位一个字节,将查表得到的字节连接,得到中间值r。
在一种可能的实施方式中,密文
Figure 90819DEST_PATH_IMAGE059
按照如下公式(1)计算:
Figure 375169DEST_PATH_IMAGE060
公式(1)
其中,C为随机密文,j=0,1,…,7。
在一种可能的实施方式中,所述由中间值r恢复RSA算法使用的私钥p,包括:
按照如下公式(2)由中间值r恢复RSA算法使用的私钥p:
Figure 725379DEST_PATH_IMAGE061
公式(2)
其中,C为随机密文,r为中间值,n为目标设备公钥;
若p>1则p为RSA算法使用的目标设备私钥,若p=1则重复计算中间值r的步骤直到满足p大于1的条件,以得到RSA算法使用的目标设备私钥p。
下面对本申请实施例涉及的相关知识进行介绍说明。
选择输入攻击是一种攻击模式,攻击者可按照其需要,对任意选择的输入执行密码运算,从中获取相关信息进行密码分析。选择输入攻击可与其他密码分析技术相结合,以提升攻击效果。
RSA-CRT包括模约减、模幂和重组三部分,但大部分研究针对模幂运算进行,对于模约减的研究较少。由于模约减运算的复杂性,现有的攻击都采用了与选择输入相结合的方式,主要分为两类:第一种为等距输入攻击或单字节随机攻击,由denBoer在CHES2002上提出,每次对输入消息的一个字节进行遍历;第二种则是使用形如n−𝑘的随机数据作为输入进行攻击,k为p的长度,如RSA长度位数为1024位,则k为64字节随机数据,也可以为62或63字节,剩余字节靠穷举恢复。
第一种方法为denBoer在CHES2002上提出的等距输入攻击:选择随机密文𝑥0,将𝑟0=𝑥0𝑚𝑜d𝑝作为CPA攻击目标,采用从低到高逐字节攻击的方式,每次恢复中间值𝑟0的一个字节,直到逼近或恢复出𝑟0,最后由𝑟0恢复出素数p,具体分析方法如下:
(1)选择随机密文𝑥0,然后逐字节构造其它密文输入𝑥𝑖=𝑥0–𝑖*(256)k,其中𝑖为输入明文序号,由于逐字节攻击,因此i的范围为𝑖∈[0,255],k为攻击中间值𝑟0的第几个字节,因此它的最大值为p的长度。显然攻击𝑟0的最低字节时,k=0,选择密文序列之间的距离为1。
(2)将(1)中的选择密文分别送入密码模块,使用RSA-CRT进行解密运算,采集解密运算的能量消耗曲线。
(3)假设攻击𝑟0的最低字节,由
Figure 753378DEST_PATH_IMAGE062
,中间值𝑟0的最后一个字节为
Figure 934961DEST_PATH_IMAGE063
,因此其它消息的中间值
Figure 390213DEST_PATH_IMAGE064
的最后一个字节为
Figure 634244DEST_PATH_IMAGE065
。对j进行256次猜测,得到所有选择密文模p的中间值最后一个字节。
(4)利用(3)计算的假设中间值,使用汉明重量模型映射为假设能量消耗值与采集到的能量迹实施相关能量分析攻击。显然对j的正确猜测𝑝𝑔𝑢𝑒𝑠𝑠,将会导致与能量迹最大的相关性,从而能够得出中间值𝑟0的最后一个字节。
(5)对于𝑟0的其它字节攻击步骤类似,假设已攻出了𝑟0的前k个字节,𝑝𝑔𝑢𝑒𝑠𝑠为𝑟0的第k+1个字节的遍历,那么该字节的中间值为
Figure 200354DEST_PATH_IMAGE066
,j同样为中间值𝑟0的第k+1个字节。
(6)重复以上步骤可得到完整的𝑟0,由
Figure 236443DEST_PATH_IMAGE067
于是有
Figure 862597DEST_PATH_IMAGE068
,进而分解n完成攻击。
第二种方法为选择形如
Figure 312033DEST_PATH_IMAGE069
的随机密文,其中随机密文𝑥小于p,中间值
Figure 681834DEST_PATH_IMAGE070
,因此从低到高攻击的方式,直接逐字节猜测中间值p,每次恢复p的一个字节,直到恢复的中间值Mp,使得
Figure 838009DEST_PATH_IMAGE071
,进而分解n完成攻击。Boeretal提出的第一种方法恢复一个字节中间值需要采集一次能量迹,整体需要采集的能量迹过多。该方法与提出的第一种方法相比,前者直接恢复的是私钥p的某个字节,而且只需要采集一次能量迹即可,也就是每次逐字节分析都是使用的同一组能量迹,只是分析能量迹的位置不同而已。
假设r以字节为基展开为
Figure DEST_PATH_IMAGE073A
,p以字节为基展开为
Figure DEST_PATH_IMAGE075A
,x以字节为基展开为
Figure DEST_PATH_IMAGE077A
。在计算
Figure 681069DEST_PATH_IMAGE078
中间值时,如果某个随机密文中
Figure 617801DEST_PATH_IMAGE079
,需要从
Figure 525714DEST_PATH_IMAGE080
借位,因此计算的中间值需要加256,具体分析方法如下:
(1)选择小于p的随机密文
Figure 536395DEST_PATH_IMAGE081
,然后计算签名数据
Figure 504351DEST_PATH_IMAGE082
(2)将(1)中的签名数据
Figure 69325DEST_PATH_IMAGE083
分别送入密码模块,使用RSA-CRT进行解密运算,采集解密运算的能量消耗曲线。
(3)由于
Figure 780929DEST_PATH_IMAGE084
,因此
Figure 911696DEST_PATH_IMAGE085
,猜测p的最后一个字节𝑝𝑔𝑢𝑒𝑠𝑠,如果𝑝𝑔𝑢𝑒𝑠𝑠减去
Figure 129182DEST_PATH_IMAGE086
的最后一个字节,等到中间值r小于0,则加上256。
(4)利用(3)计算的假设中间值,使用汉明重量模型映射为假设能量消耗值与采集到的能量迹实施相关能量分析攻击。显然正确猜测𝑝𝑔𝑢𝑒𝑠𝑠,将会导致与能量迹最大的相关性,从而能够得出p的最后一个字节。
(5)对于p的其它字节攻击步骤类似,假设已攻出了p的前k个字节,𝑝𝑔𝑢𝑒𝑠𝑠为p的第k+1个字节的遍历,同样如果𝑝𝑔𝑢𝑒𝑠𝑠减去该字节小于0,则加上256,如果p的k个字节小于
Figure 447031DEST_PATH_IMAGE087
的k个字节,则中间值r应减1。
(6)由(5)恢复的p达到相应大小时,如果
Figure 962326DEST_PATH_IMAGE088
,进而分解n完成攻击。
下面介绍研究对象RSA-CRT实现和模板攻击的相关知识。
第一方面,RSA-CRT。
RSA是第一个获得广泛应用的公钥密码算法,它的安全性基于大合数分解为素数数学难题。RSA算法密钥可分为公钥(e,n)和私钥(p,q,d)两部分,满足
Figure 947599DEST_PATH_IMAGE089
Figure 726199DEST_PATH_IMAGE090
。使用RSA算法对消息m进行签名运算对应于计算模幂
Figure 531344DEST_PATH_IMAGE091
。通常可采用“平方-乘”算法,如算法1所示,选择从最高位
Figure 584751DEST_PATH_IMAGE092
开始逐比特运算完成。
算法1:平方乘从左到右。
输入:c,n,
Figure 424531DEST_PATH_IMAGE093
输出:
Figure 233087DEST_PATH_IMAGE094
1. s=1
2. for i = k -1 down to 0 do{
3. s=s*s mod n
4. if(di==1)then
5. s=s*c mod n }
6. 返回s。
RSA-CRT是一种利用中国剩余定理(Chinese Remainder Theorem ,CRT)加速RSA运算的方法,其将私钥p和q分别作为模数计算模幂,能够降低模平方和模乘的运算复杂度。RSA-CRT的实现可以分为模约减、模幂和重组三部分,如算法2所示。RSA-CRT模幂运算的操作数长度已降低为原来的一半,实现效率提升近四倍,因此在实际应用中,优先使用RSA-CRT算法,特别是在计算及存储资源有限的密码设备中。
算法2:RSA-CRT
输入: n、 p、 q、 c;
输出:
Figure 791107DEST_PATH_IMAGE095
1.计算
Figure 382626DEST_PATH_IMAGE096
Figure 185234DEST_PATH_IMAGE097
2.计算
Figure 836795DEST_PATH_IMAGE098
Figure 616533DEST_PATH_IMAGE099
3.计算
Figure 11742DEST_PATH_IMAGE100
4.计算
Figure 29376DEST_PATH_IMAGE101
5.计算
Figure 851839DEST_PATH_IMAGE102
6.计算
Figure 118872DEST_PATH_IMAGE103
7. 得出s。
第二方面,模板攻击。
模板攻击是一种profile类攻击方法,该方法成立的前提是能量消耗依赖于正在处理的数据。使用模板攻击一般需要两个步骤,其一是使用多元正态分布对已拥有权限的设备采集的能量迹的特征进行刻画;其二是使用目标设备的能量迹进行匹配恢复算法使用的密钥。
通过多元正态分布刻画能量迹得到模板,而多元正态分布由均值向量m和协方差矩阵K组成。在模板建模时,通过记录不同的数据对
Figure 645669DEST_PATH_IMAGE104
产生的能量迹,将相同的数据对对应的能量迹划为一组,分别计算这些能量迹的均值向量和协方差矩阵。协方差矩阵通常和选取的能量迹点数的平方成正比,因此选取的点数必须包含数据对的能量消耗,而且大的点数会造成计算量的增大,在选取时尽可能的少。
在模板构建时,如果选择为每一个数据对
Figure 314547DEST_PATH_IMAGE105
构建模板,则构建的模板数量巨大,在现实中,通常选择以某个中间值或基于能量模型构建模板。以中间值构建模板,通常选择S盒输出的某一个字节构建模板,如果能量消耗依赖于数据,那么该模板对S盒输出的其它字节仍然使用。
在现实中,使用最多的是基于能量模型的模板构建,因为真实的能量消耗通常与中间值的某个能量消耗模型相关,并且以能量模型建模,所建的模板数量大大减少。
模板建立后,由目标设备的能量迹分别与每个模板进行匹配,分别得到匹配每个模板的概率值,由统计学知识基础,概率值反应了能量迹与模板的匹配程度,所有密钥等概率分布,因此概率最大的对应为该能量迹正确匹配的模板,如以能量模型建模,则可以得到该能量迹对应的中间值汉明重量。概率匹配如公式(3),T表示的是选取能量迹上特征点的数量,t表示一条能量迹, m表示建模时能量迹的均值向量,K是建模时能量迹的协方差。(t-m)右上角的符号代表转置。
Figure 307911DEST_PATH_IMAGE106
实际环境模板攻击时,协方差矩阵K可能不存在逆矩阵,为避免协方差无法求逆的问题,通常使用单位矩阵代替协方差矩阵K,也就是仅保留均值向量简化计算,如公式(4)。
Figure 62240DEST_PATH_IMAGE107
为了避免指数运算,对概率取对数简化运算,如公式(5)。匹配概率值的对数绝对值最小的模板对应的是正确密钥。
Figure 409039DEST_PATH_IMAGE108
在RSA-CRT签名运算中的第2步就是模p的约减操作,针对该机密性操作,首先介绍基于选择密文的RSA密钥恢复,即无法由模约减后中间值的汉明重量值恢复私钥,然后介绍本申请实施例提出的基于模板攻击的RSA-CRT的模约减攻击算法。
首先介绍基于选择密文的RSA密钥恢复。
在RSA-CRT实现的第一步就是密文数据C模p的约减操作,之前的相关分析者针对该操作提出了一些分析方法,其中之一是通过能量分析与密文结果相结合恢复约减操作中间值r,但在一些场景中,由侧信道的相关攻击方法并不能直接得到r,而是得到r的一部分信息,比如r的汉明重量值。
这里介绍如获取约减操作后中间值r的汉明重量,如何分析得到私钥p,进而分解n,得到q。
如果已知r则求解可以直接求解汉明重量值,但如果已知汉明重量值则不能逆向求解出r,这是由于汉明重量到r之间不是单射。在侧信道攻击中,由分而治之的思路,通常可以获取r的逐比特、逐字节或更多位汉明重量值,取决于CPU或专用IC计算时侧信道泄露信息的情况。如果是逐比特汉明重量已知,那么可以直接得到r值,但通常现实中不符合逐比特泄露的场景。
接下来介绍r的逐字节汉明重量已知情况下如何恢复p的方法,进而扩展到64位,甚至以p的位数仍然适合。
任取一个密文C,计算
Figure 932424DEST_PATH_IMAGE109
,如果得出r,则可以计算
Figure 96690DEST_PATH_IMAGE110
。假设通过侧信道可以逐字节获取r的汉明重量,r以字节为基展开为
Figure DEST_PATH_IMAGE112AAA
,首先考虑恢复r的最低字节
Figure 541577DEST_PATH_IMAGE113
。如果r等于0,则
Figure 82280DEST_PATH_IMAGE114
。否则
Figure 53647DEST_PATH_IMAGE115
,通过穷举
Figure 654393DEST_PATH_IMAGE116
从低到高第一个为1的各种情况,如表1所示,x表示未知数。
通过密文C采集的能量消耗进行侧信道分析得到原
Figure 117735DEST_PATH_IMAGE117
值的汉明重量,选择密文C-1侧信道分析得到现 值的汉明重量,则可以得到这两个汉明重量变化值,查表1可以得出第一个为1的置位。如选择密文C-1后汉明重量增加4,则可以确定原
Figure 289269DEST_PATH_IMAGE117
值为xx100000。类似的方法,选择密文
Figure 60916DEST_PATH_IMAGE119
确定第2个为1的情况,直到得出
Figure 11554DEST_PATH_IMAGE117
值,其中i-1为最近恢复1的位置。
由表1分析可以得出,恢复一个字节,极端情况是该字节的每位都是1,最多需要8条能量迹。假设RSA私钥p的位数为512位,则每个字节需要8条能量迹,恢复r最多需要选择密文对应的512条能量迹,加上随机密文C对应的能量迹,一共需要513条能量迹。
Figure 362901DEST_PATH_IMAGE120
如上分析,该方法可行的一个主要特点是选择密文攻击,如设计者在工程实现中使用底数乘法掩码的防护方法,则实际进行
Figure 715385DEST_PATH_IMAGE121
操作时的密文不再是选择密文。因此该防御措施使得攻击者不能选择密文进行攻击,以达到有效防护的效果。
在基于选择密文的RSA密钥恢复基础上,本申请实施例提出基于模板攻击的RSA-CRT实现模约减攻击。
模板攻击是一种强大的攻击方法,在这里将模约减后的中间值r的逐字节基于汉明重量模型建模,将同一值对应的能量迹进行多元高斯分布特征刻画。对训练设备进行训练建模后,基于选择密文对目标设备进行攻击,恢复目标设备使用的私钥,如算法3所示。
算法3:模板攻击的RSA-CRT实现模约减攻击算法。
输入: m个随机密文,随机密文C,训练设备私钥p,目标设备公钥n。
输出: 目标设备私钥p。
1. 将m个随机密文,送至训练设备进行模约减操作,得到模约减后的中间值
Figure 657933DEST_PATH_IMAGE122
,分别采集每个随机密文操作对应的能量消耗得到能量迹
Figure 95868DEST_PATH_IMAGE123
2. 对能量迹
Figure 109960DEST_PATH_IMAGE123
和中间值
Figure 316951DEST_PATH_IMAGE122
对应的汉明重量值多元高斯分布建模。
3. 选择随机密文C,并将C送至目标设备进行模约减操作,采集该操作的能量消耗得到能量迹
Figure 430400DEST_PATH_IMAGE124
4. 将
Figure 824472DEST_PATH_IMAGE124
与模板匹配获取中间值r的逐字节汉明重量值
Figure 48780DEST_PATH_IMAGE125
5. for i = 0 up to 63 do{
6. for j = 1 up to 7 do{
7.
Figure 375857DEST_PATH_IMAGE126
8. 将
Figure 394628DEST_PATH_IMAGE127
送至目标设备进行模约减操作,采集该操作的能量消耗得到能量迹
Figure 885783DEST_PATH_IMAGE128
9. 将
Figure 913782DEST_PATH_IMAGE128
与模板匹配获取中间值r的逐字节汉明重量值
Figure 95365DEST_PATH_IMAGE129
10.将9中的汉明重量与4的汉明重量差,查表1确定第二个为1的位置。}}
11.将每个字节连接得到中间值r。
12.计算
Figure 878513DEST_PATH_IMAGE130
13.返回私钥p。
基于建模类场景,本申请实施例提出了基于模板的RSA-CRT实现模约减攻击的私钥恢复方法,解决了无法由模约减后中间值的汉明重量恢复私钥的难题,并且提出了一种RSA私钥恢复算法。该方法基于模约减后中间值的汉明重量模型建模,通过采集选择密文模约减的能量迹进行模板匹配,获取模约减后中间值的汉明重量,然后由本申请实施例提出的私钥恢复算法进行密钥恢复。
另外,该方法的优点在于,理想情况下,中间值每个字节建立的模板之间可以共用,且本申请实施例提出的方法对中间值以多少位大小建模没有限制,可以以字节大小建立9个模板,可以以64位大小建立65个模板,甚至可以以私钥p的位数大小m建立m加1个模板,实际环境中可根据泄露信息情况进行选取。最后,以字节为单位建立9个模板,验证了该方法是可行的。
在具体实施中,在模约减攻击算法基础上,进行基于模板攻击的RSA-CRT实现模约减攻击实验。本实验的对象是基于ARM Cortex-M4 32位RISC内核的STM32F405RGT6芯片。本实验使用电磁探头采集芯片处理
Figure 512757DEST_PATH_IMAGE131
操作的能量消耗,选用的探头是LANGER RF-B,选用的示波器是Lecroy 9104。本实验选择最低字节的汉明重量建模,并且每个字节都复用该模板进行匹配。结果表明,该方法成功恢复出了私钥p,证明了该方法是可行的。
本实验第1步选取了60000个随机明文,并使用示波器分别采集芯片处理
Figure 78867DEST_PATH_IMAGE132
操作的能量消耗,采样率设置为10 GS/s,每次采集10万个点,如图2所示。图2示出了RSA-CRT模约减操作能量迹示意图。第2步将采集的能量迹进行滤波、对齐预处理。第3步本实验在泄露位置附近选择5个兴趣点。第4步将
Figure 380536DEST_PATH_IMAGE133
中间值的汉明重量对能量迹分组,相同的汉明重量分为一组。第5步计算每组能量迹的均值向量m和协方差矩阵K建模。第6步通过第4节选择密文,并分别采集对应的能量迹,然后进行模板匹配,每条能量迹进行匹配时会得到64个比较高的概率值。第7步由匹配出的汉明重量值计算私钥p,并验证p的正确性。
本申请实施例仅示例性的介绍一条选择密文的实验过程图,选择密文及其它数据见附录,其它能量迹匹配结果类似。中间值r大小为64字节,最高16字节模板匹配,图3示出了能量迹模板匹配高16字节图,如图3所示,横轴表示采样时间,纵轴表示模板匹配的概率,并且图中使用不同的线型分别绘制了不同汉明重模板对应的匹配概率。
通过分析可以得出,该曲线中存在16个明显的尖峰,分别对应着16个字节的泄露时刻,而且每个尖峰处的最高概率值对应匹配9个模板的某一个汉明重量,即r在该字节处的汉明重量值。
进一步,图4示出了能量迹模板匹配最高字节图,如图4所示,最高字节模板匹配最高概率远大于其它概率,由数学统计理论得出,该方法建立的模板是有效的,可以有效区分中间值不同字节的汉明重量值。其它字节分析类似不再赘述,能量迹模板匹配的32-48字节见图5,16-32字节见图6,最低16字节见图7。如果其中某个字节匹配的两个概率值接近,那么该字节对应的中间值可以分类处理,类似于二叉树结构,最后遍历整个二叉树通过计算
Figure 475531DEST_PATH_IMAGE134
,如果p>1则得出正确的p。
由上面实验过程可以得出密文模约减后中间值的每个字节对应的汉明重量,如表2所示,将每个汉明重量与实际中间值的汉明重量相比,可以得出所有的汉明重量已全部正确恢复。
Figure 597071DEST_PATH_IMAGE135
RSA算法是一种基于离散对数难题的公钥密码算法,该算法具有签名功能,在我国大量使用。在实际环境中,RSA运算基本都是基于CRT实现,这是由于利用CRT实现RSA签名大约提高了4倍效率。侧信道攻击具有代价低、可行性强的特点,对密码算法实现的安全性构成极大威胁,本申请实施例基于建模类场景,提出了基于模板的RSA-CRT实现模约减攻击的私钥恢复方法,解决了无法由模约减后中间值的汉明重量恢复私钥的难题,并且提出了一种RSA私钥恢复算法。建议设计者在工程实现中使用底数乘法掩码的防护方法,使得攻击者不能选择密文进行攻击,以达到有效防护的效果。
该方法基于模约减后中间值的汉明重量模型建模,通过采集选择密文模约减的能量迹进行模板匹配获取模约减后中间值的汉明重量,然后由本申请实施例提出的私钥恢复算法进行密钥恢复。另外,该方法的优点在于理想情况下,中间值每个字节建立的模板之间可以共用,且对中间值以多少位大小建模没有限制,可以以字节大小建立9个模板,可以以64位大小建立65个模板,甚至可以以私钥p的位数大小m建立m加1个模板,实际环境中可根据泄露信息情况进行选取。该方法可以为密码实现分析者和专业测评机构提供一种有效的攻击方法和评估手段。
目前针对RSA-CRT的建模类攻击研究较少,本申请实施例以模约减操作为研究对象,提出了一种针对RSA-CRT实现的模板攻击方法。该方法的核心是解决了无法由模约减后中间值的汉明重量恢复私钥的难题,进而给出了一种RSA私钥恢复算法。该方法的特点是基于模约减后中间值的汉明重量模型建模,通过采集选择密文模约减的能量迹进行模板匹配获取模约减后中间值的汉明重量,然后由本申请实施例提出的私钥恢复算法进行密钥恢复。另外,该方法的优点在于理想情况下,中间值每个字节建立的模板之间可以共用,且对中间值以多少位大小建模没有限制。可以以字节大小建立9个模板,可以以64位大小建立65个模板,甚至可以以私钥p的位数大小m建立m加1个模板,实际环境中可根据泄露信息情况进行选取。最后,本申请实施例以字节为单位进行建模,验证了该方法是可行的并给出了防护建议。
综上所述,本申请实施例提供了基于模板的RSA-CRT实现模约减攻击的私钥恢复方法,基于汉明重量模型,对训练设备的模约减操作的能量迹进行多元正态分布建模,得到模约减后中间值逐字节对应的模板;基于选择密文的模板匹配方法,得到RSA算法模约减操作的中间值r,由中间值r恢复RSA算法使用的私钥p;分解公钥n得到私钥q,从而得到RSA的私钥p和q。基于模约减后中间值的汉明重量模型建模,通过采集选择密文模约减的能量迹进行模板匹配获取模约减后中间值的汉明重量,根据私钥恢复算法进行密钥恢复,解决了无法由模约减后中间值的汉明重量恢复私钥的难题。
基于相同的技术构思,本申请实施例还提供了基于模板的RSA-CRT实现模约减攻击的私钥恢复系统,如图8所示,所述系统包括:
汉明重量建模模块801,用于基于汉明重量模型,对训练设备的模约减操作的能量迹进行多元正态分布建模,得到模约减后中间值逐字节对应的模板;
RSA私钥恢复模块802,用于基于选择密文的模板匹配方法,得到RSA算法模约减操作的中间值r,由中间值r恢复RSA算法使用的私钥p;
RSA私钥计算模块803,用于分解公钥n得到私钥q,从而得到RSA的私钥p和q。
可选地,所述汉明重量建模模块801,具体用于:
将m个随机密文,输入训练设备进行模约减操作,得到模约减操作后的中间值
Figure 966872DEST_PATH_IMAGE136
基于m个随机密文分别采集每个随机密文操作对应的能量消耗,得到能量迹
Figure 700211DEST_PATH_IMAGE137
根据能量迹
Figure 497265DEST_PATH_IMAGE137
和中间值
Figure 106101DEST_PATH_IMAGE136
进行汉明重量值多元正态分布建模,得到模约减后中间值逐字节对应的模板。
可选地,所述RSA私钥恢复模块802,具体用于:
选择随机密文C,输入目标设备进行模约减操作,得到模约减操作能量消耗的能量迹
Figure 14014DEST_PATH_IMAGE138
Figure 618171DEST_PATH_IMAGE138
与模板匹配,得到中间值r的第一逐字节汉明重量值
Figure 586127DEST_PATH_IMAGE139
,k为字节随机数据;
将密文
Figure 682259DEST_PATH_IMAGE140
输入目标设备进行模约减操作,得到模约减操作能量消耗的能量迹
Figure 393863DEST_PATH_IMAGE141
分别将
Figure 462313DEST_PATH_IMAGE141
与模板匹配获取中间值
Figure 601170DEST_PATH_IMAGE142
的第二逐字节汉明重量值
Figure 184599DEST_PATH_IMAGE143
根据第一逐字节汉明重量值和第二逐字节汉明重量值的差值,确定中间值r的一个字节
Figure 44101DEST_PATH_IMAGE144
通过逐位查表得到8位一个字节,将查表得到的字节连接,得到中间值r。
基于相同的技术构思,本申请实施例还提供了一种设备,所述设备包括:数据采集装置、处理器和存储器;所述数据采集装置用于采集数据;所述存储器用于存储一个或多个程序指令;所述处理器,用于执行一个或多个程序指令,用以执行所述的方法。
基于相同的技术构思,本申请实施例还提供了一种计算机可读存储介质,所述计算机存储介质中包含一个或多个程序指令,所述一个或多个程序指令用于执行所述的方法。
本说明书中上述方法的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。相关之处参见方法实施例的部分说明即可。
需要说明的是,尽管在附图中以特定顺序描述了本发明方法的操作,但这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然本申请提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。
上述实施例阐明的单元、装置或模块等,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
以上所述的具体实施例,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施例而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.基于模板的RSA-CRT实现模约减攻击的私钥恢复方法,其特征在于,所述方法包括:
基于汉明重量模型,对训练设备的模约减操作的能量迹进行多元正态分布建模,得到模约减后中间值逐字节对应的模板;
基于选择密文的模板匹配方法,得到RSA算法模约减操作的中间值r,由中间值r恢复RSA算法使用的私钥p;
分解公钥n得到私钥q,从而得到RSA的私钥p和q。
2.如权利要求1所述的方法,其特征在于,所述基于汉明重量模型,对训练设备的模约减操作的能量迹进行多元正态分布建模,得到模约减后中间值逐字节对应的模板,包括:
将m个随机密文,输入训练设备进行模约减操作,得到模约减操作后的中间值
Figure 21739DEST_PATH_IMAGE001
基于m个随机密文分别采集每个随机密文操作对应的能量消耗,得到能量迹
Figure 195231DEST_PATH_IMAGE002
根据能量迹
Figure 674754DEST_PATH_IMAGE002
和中间值
Figure 642710DEST_PATH_IMAGE001
进行汉明重量值多元正态分布建模,得到模约减后中间值逐字节对应的模板。
3.如权利要求1所述的方法,其特征在于,基于选择密文的模板匹配方法,得到RSA算法模约减操作的中间值r,包括:
选择随机密文C,输入目标设备进行模约减操作,得到模约减操作能量消耗的能量迹
Figure 738842DEST_PATH_IMAGE003
Figure 778342DEST_PATH_IMAGE003
与模板匹配,得到中间值r的第一逐字节汉明重量值
Figure 643530DEST_PATH_IMAGE004
Figure 625131DEST_PATH_IMAGE005
表示r的最低字节的汉明重量值,
Figure 208559DEST_PATH_IMAGE006
表示r的第i个汉明重量值,
Figure 458274DEST_PATH_IMAGE007
,k为字节随机数据;
将密文
Figure 646810DEST_PATH_IMAGE008
输入目标设备进行模约减操作,得到模约减操作能量消耗的能量迹
Figure 956569DEST_PATH_IMAGE009
分别将
Figure 27293DEST_PATH_IMAGE009
与模板匹配获取中间值
Figure 408596DEST_PATH_IMAGE010
的第二逐字节汉明重量值
Figure 248376DEST_PATH_IMAGE011
Figure 73243DEST_PATH_IMAGE012
表示
Figure 365685DEST_PATH_IMAGE013
的最低字节的汉明重量值,
Figure 222782DEST_PATH_IMAGE014
表示
Figure 120331DEST_PATH_IMAGE015
的第i个汉明重量值,
Figure 771892DEST_PATH_IMAGE016
根据第一逐字节汉明重量值和第二逐字节汉明重量值的差值,确定中间值r的一个字节
Figure 817209DEST_PATH_IMAGE017
通过逐位查表得到8位一个字节,将查表得到的字节连接,得到中间值r。
4.如权利要求3所述的方法,其特征在于,密文
Figure 805893DEST_PATH_IMAGE018
按照如下公式计算:
Figure 354686DEST_PATH_IMAGE019
其中,C为随机密文,j=0,1,…,7。
5.如权利要求1所述的方法,其特征在于,所述由中间值r恢复RSA算法使用的私钥p,包括:
按照如下公式由中间值r恢复RSA算法使用的私钥p:
Figure 25751DEST_PATH_IMAGE020
其中,C为随机密文,r为中间值,n为目标设备公钥;
若p>1则p为RSA算法使用的目标设备私钥,若p=1则重复计算中间值r的步骤直到满足p大于1的条件,以得到RSA算法使用的目标设备私钥p。
6.基于模板的RSA-CRT实现模约减攻击的私钥恢复系统,其特征在于,所述系统包括:
汉明重量建模模块,用于基于汉明重量模型,对训练设备的模约减操作的能量迹进行多元正态分布建模,得到模约减后中间值逐字节对应的模板;
RSA私钥恢复模块,用于基于选择密文的模板匹配方法,得到RSA算法模约减操作的中间值r,由中间值r恢复RSA算法使用的私钥p;
RSA私钥计算模块,用于分解公钥n得到私钥q,从而得到RSA的私钥p和q。
7.如权利要求6所述的系统,其特征在于,所述汉明重量建模模块,具体用于:
将m个随机密文,输入训练设备进行模约减操作,得到模约减操作后的中间值
Figure 292784DEST_PATH_IMAGE021
基于m个随机密文分别采集每个随机密文操作对应的能量消耗,得到能量迹
Figure 491684DEST_PATH_IMAGE022
根据能量迹
Figure 363826DEST_PATH_IMAGE022
和中间值
Figure 622769DEST_PATH_IMAGE021
进行汉明重量值多元正态分布建模,得到模约减后中间值逐字节对应的模板。
8.如权利要求6所述的系统,其特征在于,所述RSA私钥恢复模块,具体用于:
选择随机密文C,输入目标设备进行模约减操作,得到模约减操作能量消耗的能量迹
Figure 377098DEST_PATH_IMAGE023
Figure 442006DEST_PATH_IMAGE023
与模板匹配,得到中间值r的第一逐字节汉明重量值
Figure 965391DEST_PATH_IMAGE024
Figure 864077DEST_PATH_IMAGE025
表示r的最低字节的汉明重量值,
Figure 840123DEST_PATH_IMAGE026
表示r的第i个汉明重量值,
Figure 380826DEST_PATH_IMAGE027
,k为字节随机数据;
将密文
Figure 102925DEST_PATH_IMAGE028
输入目标设备进行模约减操作,得到模约减操作能量消耗的能量迹
Figure 438092DEST_PATH_IMAGE029
分别将
Figure 167013DEST_PATH_IMAGE029
与模板匹配获取中间值
Figure 573724DEST_PATH_IMAGE030
的第二逐字节汉明重量值
Figure 71701DEST_PATH_IMAGE031
Figure 46611DEST_PATH_IMAGE032
表示
Figure 262828DEST_PATH_IMAGE033
的最低字节的汉明重量值,
Figure 145334DEST_PATH_IMAGE034
表示
Figure 74981DEST_PATH_IMAGE035
的第i个汉明重量值,
Figure 17530DEST_PATH_IMAGE036
根据第一逐字节汉明重量值和第二逐字节汉明重量值的差值,确定中间值r的一个字节
Figure 455464DEST_PATH_IMAGE037
通过逐位查表得到8位一个字节,将查表得到的字节连接,得到中间值r。
9.基于模板的RSA-CRT实现模约减攻击的私钥恢复设备,其特征在于,所述设备包括:数据采集装置、处理器和存储器;
所述数据采集装置用于采集数据;所述存储器用于存储一个或多个程序指令;所述处理器,用于执行一个或多个程序指令,用以执行如权利要求1-5任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机存储介质中包含一个或多个程序指令,所述一个或多个程序指令用于执行如权利要求1-5任一项所述的方法。
CN202111482487.8A 2021-12-07 2021-12-07 基于模板的rsa-crt实现模约减攻击的私钥恢复方法和系统 Active CN113965324B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111482487.8A CN113965324B (zh) 2021-12-07 2021-12-07 基于模板的rsa-crt实现模约减攻击的私钥恢复方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111482487.8A CN113965324B (zh) 2021-12-07 2021-12-07 基于模板的rsa-crt实现模约减攻击的私钥恢复方法和系统

Publications (2)

Publication Number Publication Date
CN113965324A true CN113965324A (zh) 2022-01-21
CN113965324B CN113965324B (zh) 2022-04-19

Family

ID=79472914

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111482487.8A Active CN113965324B (zh) 2021-12-07 2021-12-07 基于模板的rsa-crt实现模约减攻击的私钥恢复方法和系统

Country Status (1)

Country Link
CN (1) CN113965324B (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001022653A2 (en) * 1999-09-22 2001-03-29 Raytheon Company Key escrow systems
US7269261B1 (en) * 1999-09-22 2007-09-11 Raytheon Company Key escrow systems
EP2395698A1 (en) * 2010-06-11 2011-12-14 Certicom Corp. Implicit certificate generation in the case of weak pseudo-random number generators
US20110307698A1 (en) * 2010-06-11 2011-12-15 Certicom Corp Masking the output of random number generators in key generation protocols
CN103259647A (zh) * 2012-03-31 2013-08-21 成都信息工程学院 加密系统边信道攻击测试方法
CN104852795A (zh) * 2015-05-05 2015-08-19 国家密码管理局商用密码检测中心 一种轮输出为布尔掩码的zuc序列密码算法掩码防护方法
CN105591739A (zh) * 2016-03-08 2016-05-18 中国人民解放军军械工程学院 一种基于光汉明重量的密钥分析方法
CN106301756A (zh) * 2016-08-22 2017-01-04 上海交通大学 用于sm2签名的大数模幂求逆功耗检测方法及其系统
CN108833120A (zh) * 2018-08-28 2018-11-16 成都信息工程大学 一种crt-rsa选择明文联合攻击新方法及系统
CN111817842A (zh) * 2020-07-02 2020-10-23 中金金融认证中心有限公司 一种针对rsa-crt运算的能量分析攻击测试装置和方法
CN112769551A (zh) * 2020-12-29 2021-05-07 杭州电子科技大学 基于fpga的sm4-gcm网络加密传输系统实现方法
CN113434332A (zh) * 2021-05-27 2021-09-24 国家信息技术安全研究中心 基于故障蔓延的针对des/3des中间轮攻击的密钥恢复方法

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001022653A2 (en) * 1999-09-22 2001-03-29 Raytheon Company Key escrow systems
US7269261B1 (en) * 1999-09-22 2007-09-11 Raytheon Company Key escrow systems
EP2395698A1 (en) * 2010-06-11 2011-12-14 Certicom Corp. Implicit certificate generation in the case of weak pseudo-random number generators
US20110307698A1 (en) * 2010-06-11 2011-12-15 Certicom Corp Masking the output of random number generators in key generation protocols
CN103259647A (zh) * 2012-03-31 2013-08-21 成都信息工程学院 加密系统边信道攻击测试方法
CN104852795A (zh) * 2015-05-05 2015-08-19 国家密码管理局商用密码检测中心 一种轮输出为布尔掩码的zuc序列密码算法掩码防护方法
CN105591739A (zh) * 2016-03-08 2016-05-18 中国人民解放军军械工程学院 一种基于光汉明重量的密钥分析方法
CN106301756A (zh) * 2016-08-22 2017-01-04 上海交通大学 用于sm2签名的大数模幂求逆功耗检测方法及其系统
CN108833120A (zh) * 2018-08-28 2018-11-16 成都信息工程大学 一种crt-rsa选择明文联合攻击新方法及系统
CN111817842A (zh) * 2020-07-02 2020-10-23 中金金融认证中心有限公司 一种针对rsa-crt运算的能量分析攻击测试装置和方法
CN112769551A (zh) * 2020-12-29 2021-05-07 杭州电子科技大学 基于fpga的sm4-gcm网络加密传输系统实现方法
CN113434332A (zh) * 2021-05-27 2021-09-24 国家信息技术安全研究中心 基于故障蔓延的针对des/3des中间轮攻击的密钥恢复方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CEZARY GLOWACZ: ""Simpler and more efficient rank estimation for side-channel security assessment"", 《INTERNATIONAL WORKSHOP ON FAST SOFTWARE ENCRYPTION》 *
陈艾东等: "基于ZDN约减的CRT算法实现的选择明文SPA攻击", 《四川大学学报(自然科学版)》 *

Also Published As

Publication number Publication date
CN113965324B (zh) 2022-04-19

Similar Documents

Publication Publication Date Title
Bernstein et al. Sliding right into disaster: Left-to-right sliding windows leak
Batina et al. Mutual information analysis: a comprehensive study
Kocher et al. Introduction to differential power analysis
CN103457719B (zh) 一种对sm3密码算法hmac模式的侧信道能量分析方法
CN108604981B (zh) 用于估计秘密值的方法和设备
Pan et al. Improving DPA by peak distribution analysis
CN104796250B (zh) 针对RSA密码算法M-ary实现的侧信道攻击方法
CN103905182B (zh) 基于动态改变中间数据存储位置的抗攻击方法及电路实现
CN104836666A (zh) 一种针对sm2解密算法的能量分析攻击的方法
Aydin et al. Horizontal side-channel vulnerabilities of post-quantum key exchange and encapsulation protocols
CN108242994A (zh) 密钥的处理方法和装置
CN104811297B (zh) 针对RSA之M-ary实现模乘余数输入侧信道攻击
Aulbach et al. Separating Oil and Vinegar with a Single Trace: Side-Channel Assisted Kipnis-Shamir Attack on UOV
Kotukh et al. Method of Security Improvement for MST3 Cryptosystem Based on Automorphism Group of Ree Function Field
Luo et al. Cryptanalysis of a chaotic block cryptographic system against template attacks
Liu et al. Machine learning-based similarity attacks for chaos-based cryptosystems
Levi et al. Garbled Circuits from an SCA Perspective: Free XOR can be Quite Expensive...
Unterluggauer et al. Practical attack on bilinear pairings to disclose the secrets of embedded devices
CN113965324B (zh) 基于模板的rsa-crt实现模约减攻击的私钥恢复方法和系统
CN109936437B (zh) 一种基于d+1阶掩码的抗功耗攻击方法
Aminudin et al. A practical analysis of the fermat factorization and pollard rho method for factoring integers
Cao et al. Two lattice-based differential fault attacks against ECDSA with w NAF algorithm
CN114465728B (zh) 攻击椭圆曲线签名算法的方法、装置、设备及存储介质
Leadbitter et al. Attacking DSA under a repeated bits assumption
Liu et al. Secure and verifiable outsourcing protocol for non-negative matrix factorisation

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