CN111444518A - 安全处理器及其操作方法、加密或解密数据的方法 - Google Patents
安全处理器及其操作方法、加密或解密数据的方法 Download PDFInfo
- Publication number
- CN111444518A CN111444518A CN201910970322.1A CN201910970322A CN111444518A CN 111444518 A CN111444518 A CN 111444518A CN 201910970322 A CN201910970322 A CN 201910970322A CN 111444518 A CN111444518 A CN 111444518A
- Authority
- CN
- China
- Prior art keywords
- random
- random number
- operand
- input data
- secure processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000006243 chemical reaction Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 24
- 230000000873 masking effect Effects 0.000 description 5
- 101000891371 Homo sapiens Transcription elongation regulator 1 Proteins 0.000 description 4
- 102100040393 Transcription elongation regulator 1 Human genes 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 238000011017 operating method Methods 0.000 description 4
- 101100064323 Arabidopsis thaliana DTX47 gene Proteins 0.000 description 3
- 101150026676 SID1 gene Proteins 0.000 description 3
- 108010021188 Superoxide Dismutase-1 Proteins 0.000 description 3
- 102100038836 Superoxide dismutase [Cu-Zn] Human genes 0.000 description 3
- 102100032891 Superoxide dismutase [Mn], mitochondrial Human genes 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 108010045815 superoxide dismutase 2 Proteins 0.000 description 3
- 101000840469 Arabidopsis thaliana Isochorismate synthase 1, chloroplastic Proteins 0.000 description 2
- 101100256918 Caenorhabditis elegans sid-2 gene Proteins 0.000 description 2
- 102100029469 WD repeat and HMG-box DNA-binding protein 1 Human genes 0.000 description 2
- 101710097421 WD repeat and HMG-box DNA-binding protein 1 Proteins 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 230000007123 defense Effects 0.000 description 2
- 101150018075 sel-2 gene Proteins 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- XDDAORKBJWWYJS-UHFFFAOYSA-N glyphosate Chemical compound OC(=O)CNCP(O)(O)=O XDDAORKBJWWYJS-UHFFFAOYSA-N 0.000 description 1
- 230000036039 immunity Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/582—Pseudo-random number generators
- G06F7/586—Pseudo-random number generators using an integer algorithm, e.g. using linear congruential method
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/72—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/75—Protecting 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 by inhibiting the analysis of circuitry or operation
- G06F21/755—Protecting 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 by inhibiting the analysis of circuitry or operation with measures against power attack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/722—Modular multiplication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
提供了安全处理器及其操作方法、加密或解密数据的方法。所述安全处理器包括:随机数生成器,所述随机数生成器被配置为生成第一随机数;以及取模计算器,所述取模计算器被配置为基于第一输入数据和所述第一随机数生成第一随机操作数,并且通过对所述第一随机操作数进行取余运算生成输出数据,其中,对所述第一输入数据进行所述取余运算的结果值与对所述第一随机操作数进行所述取余运算的结果值相同。
Description
相关申请的交叉引用
本申请要求于2019年1月16日在韩国知识产权局提交的韩国专利申请No.10-2019-0005855的优先权,该韩国申请的全部公开内容以引用的方式合并于本申请中。
技术领域
本发明构思涉及一种安全处理器,更具体地,涉及一种能够有效地保护计算机***免受侧信道攻击(SCA(side channel attack))的安全处理器及安全处理器的操作方法。
背景技术
安全处理器可以通过使用要求安全性的信息(例如密钥)执行诸如密码操作的安全算法。基于安全处理器实施密码操作的机密信息的外泄可以被称为侧信道,并且使用侧信道的攻击方法可以被称为SCA。安全处理器可以采用针对SCA的对策来避免危及密码操作。
模板攻击是SCA的一个示例。在模板攻击中,攻击者可以使用与攻击目标类似的设备来创建“模板”。攻击者可以访问他们的目标设备的副本上的实际上无限次的输入和攻击操作。因此,攻击者可以通过针对设备的副本上处理的大量输入记录侧信道信息,来创建侧信道信息与目标设备上的机密信息如何相关的模型。例如,攻击者可以创建在执行密码操作时目标设备上的功率大小与输入如何对应的模型。
针对SCA的防御技术(包括屏蔽或隐藏侧信道信息)可能影响安全处理器的性能。例如,实施防御技术可能会使安全处理器的电路面积或平均功耗增加。此外,这些防御技术可能无法针对诸如模板攻击和功率分析攻击的某些SCA提供充分的保护。
发明内容
本发明构思提供了一种安全处理器及其操作方法,所述安全处理器能够有效地防止侧信道攻击(SCA),同时使所增加的功耗或性能开销最小化。
根据本发明构思的一个方面,提供了一种安全处理器,包括:随机数生成器,所述随机数生成器被配置为生成第一随机数;以及取模计算器,所述取模计算器被配置为基于第一输入数据和所述第一随机数生成第一随机操作数,并且通过对所述第一随机操作数进行取余运算来生成输出数据,其中,对于所述第一输入数据的任何值而言(即,对于所述安全处理器要处理的所述第一输入数据的任何值而言),对所述第一输入数据进行所述取余运算的结果值都与对所述第一随机操作数进行所述取余运算的结果值相同。
根据本发明构思的另一方面,提供了一种安全处理器,所述安全处理器包括:随机数生成器,所述随机数生成器被配置为生成第一随机数;取模计算器,所述取模计算器被配置为:通过将模与所述第一随机数相乘,将所述相乘的结果与第一输入数据相加来生成第一随机操作数,然后执行将所述第一随机操作数除以所述模的取余运算,来生成输出数据。
根据本发明构思的一个方面,提供了一种安全处理器的操作方法,所述操作方法包括:生成第一随机数;基于模、所述第一随机数和第一输入数据生成第一随机操作数;以及基于所述第一随机操作数生成输出数据,其中,对于所述第一输入数据的任何值而言,所述第一随机操作数除以所述模的余数都与所述第一输入数据除以所述模的余数相同。
描述了一种加密或解密数据的方法。所述方法包括:生成随机数;将所述随机数与模相乘;通过将所述相乘的结果与输入数据相加来生成随机操作数;通过使用所述模对所述随机操作数执行取余运算来生成输出数据;以及基于所述输出数据执行密码操作(例如,加密数据或解密数据)。
附图说明
从下文结合附图的详细描述将会更加清楚地理解本发明构思的实施例,在附图中:
图1是示出了根据示例实施例的电子***的框图;
图2是示出了根据示例实施例的安全处理器的框图;
图3是示出了根据示例实施例的随机操作数生成器的框图;
图4是示出了根据示例实施例的安全处理器的框图;
图5和图6是示出了根据示例实施例的算术处理器的操作的示图;
图7是示出了根据示例实施例的重编码器的示图;
图8示出了根据示例实施例的重编码表;
图9示出了根据示例实施例的控制信号表;
图10是示出了根据示例实施例的局部乘法器的电路图;
图11是示出了根据示例实施例的安全处理器的框图;
图12是示出了根据示例实施例的安全处理器的框图;
图13是示出了根据示例实施例的安全处理器的操作的示图;
图14是示出了根据示例实施例的安全处理器的框图;以及
图15是示出了根据示例实施例的应用处理器的框图。
具体实施方式
图1是示出了根据示例实施例的电子***1的框图。
参考图1,电子***1可以包括安全处理器10、存储器20和中央处理单元(CPU)30。电子***1可以对应于包括例如膝上型计算机、移动电话、智能电话、平板个人计算机(PC)和个人数字助理(PDA)等各种类型的***。
CPU 30可以输出用于控制安全处理器10和存储器20的各种控制信号。在另一实施例中,应用处理器(AP)可以执行CPU 30的功能。
存储器20可以在CPU 30或安全处理器10的控制下存储数据。在本发明构思的实施例中,存储器20可以记录从外部源接收的输入数据ID,在CPU 30的控制下将输入数据ID提供给安全处理器10,接收来自安全处理器10的输出数据OD,并记录接收的输出数据OD,其中输出数据OD是对输入数据ID执行安全操作的结果。
电子***1还可以包括安全处理器10(可以与CPU 30分离),该安全处理器10能够实现与安全操作有关的快速算术处理。安全处理器10可以使用机密信息执行操作。安全处理器10还可以被称为安全计算器。在一个实施例中,安全处理器10可以使用公钥基础设施(PKI)中的个人密钥、私钥或两者来执行加密或解密操作。
安全处理器10可以执行与加密或解密操作有关的各种操作。例如,安全处理器10可以执行与加密或解密数据有关的全部操作。或者,安全处理器10可以仅执行与全部加密或解密操作有关的多个操作中的一些操作。
根据本发明构思的实施例,被安全处理器10的加密或解密操作处理的数据可以被称为输入数据ID,作为加密或解密操作的结果而生成的数据可以被称为输出数据OD。在一个实施例中,输入数据ID可以表示PKI中的私钥或公钥,输出数据OD可以表示至少部分地基于私钥、公钥或两者被加密或解密的数据。
安全处理器10中的加密或解密操作可以包括一个或更多个乘法运算。例如,当安全处理器10执行公钥算法时,安全处理器10可以对相对较大的数执行算术运算(加法、减法、乘法、取余运算和取模运算等)。在一些情况下,当操作数的大小大于某个阈值(例如,在Rivest Shamir Adleman(RSA)算法的情况下至少为1024比特)时,操作可以被识别为是安全的。
对于使用大操作数的操作,安全处理器10可以实现数字串行乘法(Digital-serial Multiplication)。作为示例,将用于执行一般串行乘法(Serial Multiplication)的算法1描述如下:
算法1
作为另一示例,将用于执行数字串行乘法的算法2描述如下:
算法2
参考上述算法1和算法2,数字串行乘法是一般串行乘法的特殊情况,它能够一次对乘数B的几个比特bi进行运算。
在执行如上所述的乘法运算时,安全处理器10消耗的功率会受到运算值的影响。因此,当频繁执行类似操作时,可以使用诸如模板攻击的SCA来识别输入数据值(例如,A或B)。另外地或作为另一种选择,还可以分析安全处理器10的诸如密钥的机密信息。
可以采用隐藏技术和屏蔽技术作为针对这种类型的SCA的对策。隐藏技术可以指通过减少侧信道信号(或通过增加噪声)来减少在处理不同输入时的功耗变化的方法。然而,隐藏技术可能导致电路面积、平均功耗或两者的显著增加(例如,增加超过两倍)。另外,如果仅在时钟信号处于特定状态(例如,低状态)时执行实际运算,则会降低整体性能。
屏蔽技术(masking technique)可以指通过在加密操作之前执行屏蔽操作来使输入随机化。然后可以在加密操作之后执行解屏蔽操作以抵消屏蔽操作(得到在数学上等效的操作)。然而,当乘法运算中的输入数据值(即,A或B)对应于“0”时,屏蔽效果会丧失,因此安全处理器10的信息可能依然存在信息泄露的风险。
因此,根据本公开的实施例,安全处理器10可以通过基于随机数改变作为SCA的目标的输入数据ID,来向输入数据ID提供随机特性。这可以使安全处理器10能够在将输入数据ID作为目标的SCA期间使泄漏信息的风险最小化。也即是,可以随机地改变对实际输入数据ID的运算期间的功耗,因此可以消除或减少抗模板攻击的脆弱性。
为此,安全处理器10可以包括随机数生成器100和取模计算器200。随机数生成器100可以生成随机数。例如,随机数生成器100可以基于由用户的运动、电阻器的热噪声、半导体的p-n结的短噪声和光子产生的短噪声、辐射波等产生的熵信号,来产生随机数。在另一示例中,随机数生成器100可以基于在亚稳态下随机变化的熵信号来生成随机数。
取模计算器200可以基于从存储器20接收的输入数据ID和从随机数生成器100接收的随机数生成随机操作数,并且可以通过对随机操作数执行取余运算来输出输出数据OD。取余运算可以是将通过除数除以被除数而得到的余数输出的运算,也可以称为取模运算。
因此,电子***1可以通过如下方式执行密码操作:使用随机数生成器100生成随机数;将随机数乘以模,通过将乘积的结果与输入数据ID相加来产生随机操作数,通过在取模计算器200处使用模对随机操作数执行取余运算来产生输出数据OD;以及基于输出数据OD执行密码操作。
根据本发明构思的技术思想,取模计算器200可以对基于随机数和输入数据ID生成的随机操作数执行取余运算,该随机操作数可以与输入数据ID本身不同。由于随机操作数的特性根据随机数变化,因此安全处理器10可以具有对SCA的很强的免疫力。例如,使用随机操作数可以使输入数据ID与从安全处理器10泄漏的信息(例如,功率使用信息)之间的关系模糊。
图2是示出了根据示例实施例的安全处理器的框图。省略了先前参考图1给出的描述。
参考图2,安全处理器10可以包括随机数生成器100和取模计算器200,并且取模计算器200可以包括随机操作数生成器210和输出数据生成器220。
随机操作数生成器210可以从随机数生成器100接收随机数RN,从存储器(图1中的20)接收第一输入数据ID1。随机操作数生成器210可以基于随机数RN和第一输入数据ID1生成随机操作数RO。在一个实施例中,随机操作数生成器210可以通过将随机数RN和第一输入数据ID1输入到特定公式中来生成随机操作数RO。在示例中,随机操作数生成器210可以通过如下方式生成随机操作数RO:将模M与随机数RN相乘,然后通过将相乘的结果与第一输入数据ID1相加来生成随机操作数RO(其中RO=ID1+RN*M)。模M可以是输出数据生成器220为生成输出数据OD而执行的取余运算的被除数。
输出数据生成器220可以从随机操作数生成器210接收随机操作数RO,从存储器(图1中的20)接收第二输入数据ID2。输出数据生成器220可以对随机操作数RO和第二输入数据ID2执行算术运算(例如,加法、减法、乘法和除法),并且可以通过执行将模M用作被除数的取余运算来生成输出数据OD。
根据取余运算(mod)的性质,诸如A、B、r和模M的任意数以及任意算术运算△(例如,加法、减法、乘法和除法中的任何一种),可以满足下面的公式1和公式2。
[公式1]
A mod M=(A+rM)mod M
[公式2]
(A△B)mod M={(A+rM)△B}mod M
={A△(B+rM)}mod M
根据上述公式1和公式2,第一输入数据ID1、第二输入数据ID2和随机操作数RO可以满足公式3和公式4。
[公式3]
ID1 mod M=(ID1+RN*M)mod M
=RO mod M
[公式4]
(ID1△ID2)mod M={(ID1+RN*M)△ID2}mod M
=(RO△ID2)mod M
根据本发明构思的技术思想的安全处理器10可以基于随机数RN而不是第一输入数据ID1来对随机操作数RO执行取余运算。根据取余运算的性质,对随机操作数RO进行的取余运算的结果可以与对第一输入数据ID1进行的取余运算的结果相同,并且安全处理器10可以通过对添加了随机特性的随机操作数RO执行取余运算来有效地降低SCA的风险。
也即是,因为取余运算是对随机化后的输入RO△ID2进行运算的,而不是对输入本身(即,ID1△ID2)进行运算的,所以安全处理器10可以减小侧信道信息泄漏的可能性。但是,运算本身和取余运算的输出保持不变。因此,安全处理器10可以在基本上不增加使用功率或芯片面积的情况下产生期望的输出并降低SCA的风险。
图3是示出了根据示例实施例的随机操作数生成器的框图。
参考图3,随机操作数生成器210可以包括乘法器211和加法器212。乘法器211可以接收随机数RN和模M,并且可以对随机数RN和模M执行乘法。在示例中,乘法器211可以从安全处理器(例如,图1中的安全处理器10)内的寄存器接收模M。
在实施例中,乘法器211可以将随机数RN分为多个单元随机数,并且可以通过将模M与多个单元随机数中的每一个单元随机数相乘来生成多个单元模UM。乘法器211可以向加法器212输出所生成的多个单元模UM。
根据实施例,乘法器211可以将随机数RN分为具有小单元大小(例如,2比特)的多个单元随机数,可以执行对多个单元随机数中的每一个单元随机数和模M进行乘法运算的多个局部乘法运算(partial multiplication operation),并且因此可以有效地对比特数多的随机数和模M执行乘法运算。加法器212可以将多个单元模UM与第一输入数据ID1按数位数相加来生成随机操作数RO。
图4是示出了根据示例实施例的安全处理器的框图。
参考图4,安全处理器10可以包括随机数寄存器213、乘法器211、加法器212、随机操作数寄存器216和内部存储器300,并且乘法器211可以包括重编码器214和局部乘法器215。
随机数寄存器213可以从随机数生成器(图1中的100)接收随机数RN,并且向乘法器211输出具有特定比特数(例如,t比特)的随机数RN。
重编码器214可以接收随机数RN并对接收到的随机数RN执行重编码操作。在示例中,重编码操作可以对应于布斯(Booth)重编码操作,布斯(Booth)重编码操作适用于用来实现随机数RN和模M的数字串行算法的逻辑元件。
可以执行多个局部乘法运算,每一个局部乘法运算是随机数RN与模M相乘的一部分,并且可以执行与每个局部乘法运算相对应的一个重编码操作。重编码操作可以包括用在数学上等于原始值的不同值替换随机数的值以有效地实现乘法。当执行重编码操作时,可以减少局部乘法运算的次数。典型的重编码操作可以包括布斯重编码操作。
在一个实施例中,重编码器214可以包括存储有用于将多个单元随机数RN中的每一个单元随机数转换为多个重编码值的转换信息的重编码表,并且可以基于重编码表从多个单元随机数中的每一个单元随机数生成多个重编码值。下面参考图7详细描述重编码表。
在实施例中,重编码器214可以包括存储有关于多个控制信号SEL与多个重编码值中的每一个重编码值的对应的对应信息的控制信号表,并且可以基于控制信号表向局部乘法器215输出用于多个重编码值中的每一个重编码值的多个控制信号SEL。下面参考图8详细描述控制信号表。
局部乘法器215可以接收m比特的模M和多个控制信号SEL,并基于多个控制信号SEL生成多个单元模UM。多个单元模UM可以分别对应于通过将多个单元随机数乘以模M而获得的值。
内部存储器300可以存储从安全处理器10的外部(例如,从图1中的存储器20)接收的原始数据OrgD,并且可以向加法器212输出分割数据SD(原始数据OrgD以m比特为单位进行分割后的数据)。为此,内部存储器300可以被实现为至少一个存储设备,并且可以包括例如易失性存储器和非易失性存储器中的至少一种。
非易失性存储器可以包括闪速存储器、随机存取存储器(RAM)、相变RAM(PRAM)、磁RAM(MRAM)、电阻RAM(RRAM)和铁电RAM(FRAM)等,易失性存储器可以包括动态RAM(DRAM)、静态RAM(SRAM)、同步DRAM(SDRAM)、锁存器、触发器和寄存器等。
加法器212可以接收多个单元模UM和分割数据SD,并且还可以从随机操作数寄存器21接收向上舍入值(roundup value)Cr。向上舍入值Cr可以表示这样的数据:该数据对应于在针对前一分割数据SD的计算中超出作为分割数据SD的比特数的m比特的部分。加法器212可以通过将多个单元模UM、分割数据SD和向上舍入值Cr按数位数相加来产生(m+a)比特的随机操作数RO。加法器212可以将所生成的随机操作数RO存储在随机操作数寄存器216中。
随机操作数寄存器216可以存储随机操作数RO,并且当完成对所有原始数据OrgD的操作时,可以输出所存储的随机操作数RO。在图4中,随机操作数寄存器216、随机数寄存器213和内部存储器300被示出为彼此分离。然而,本实施例不限于此。随机操作数寄存器216、随机数寄存器213和内部存储器300中的两者以上可以实现为单个存储元件。此外,在图4中,示出了加法器212从内部存储器300接收分割数据SD的示例。然而,这仅是示例,加法器212可以从安全处理器10外部的存储器(例如,图1中的20)接收分割数据SD。
图5和图6是分别示出了根据示例实施例的算术处理器的操作的示图。
参考图4和图5,乘法器221可以接收随机数RN(例如,4比特的随机数RN)并且将随机数RN分成第一单元随机数URN1和第二单元随机数URN2,第一单元随机数URN1和第二单元随机数URN2均以两比特为单位。乘法器221可以通过将第一单元随机数URN1与8比特的模M相乘来生成10比特的第一单元模UM1。乘法器221可以通过将第二单元随机数URN2与模M(例如,具有8比特的模)相乘来生成10比特的第二单元模UM2。
根据本发明构思的实施例,乘法器221可以基于重编码表计算用于随机数RN的多个重编码值,并且可以基于控制信号表通过使用与多个重编码值中的每一个重编码值相对应的多个控制信号将模M与第一单元随机数和第二单元随机数相乘。参考图7至图10对此进行详细描述。
图5示出了第一单元模UM1和第二单元模UM2都具有10比特的实施例,但是本发明构思不限于此。第一单元模UM1的比特数和第二单元模UM2的比特数可以大于或小于10比特,这取决于第一单元随机数URN1和第二单元随机数URN2与模M相乘的结果。
参考图4和图6,加法器212可以从乘法器221接收第一单元模UM1和第二单元模UM2,从内部存储器300接收分割数据SD,从随机操作数寄存器216接收第一向上舍入值Cr1。加法器212可以将第一单元模块UM1、第二单元模块UM2、分割数据SD与第一向上舍入值Cr1按数位数相加。在一个示例中,第二单元模UM2是通过将第二单元随机数URN2与模M相乘而获得的值,第二单元随机数URN2的数位的位置比第一单元随机数URN1的数位的位置高两位。因此,为了获得所需的总数位数(total number of digits),可以通过将第二单元随机数URN2偏移两位来执行相加。
作为相加的结果,加法器212可以生成12位的数据。所生成的数据中的第一位o0至第八位o7(即,8比特并且对应于分割数据SD)可以作为计算完成的随机操作数RO而被存储在随机操作数寄存器216中。在对下一个分割数据SD的加法运算中,第九位o8至第十二位o11可以用作第二向上舍入值Cr2。
图7是示出了根据示例实施例的重编码器的示图。
参考图4和图7,重编码器可以包括用于存储重编码器输入与重编码值之间的转换信息的重编码表。转换信息可以包括分别与多个重编码器输入的模式相对应的多个重编码值。重编码器输入Reco_In可以包括单元随机数的比特bi和参考比特bref。重编码器输入Reco_In可以根据比特(bi和bref)具有与各种模式中的一种模式相对应的形式。例如,重编码器输入Reco_In可以对应于第一模式Pat(1)至第八模式Pat(8)中的任何一种模式。在一个示例中,单元随机数包括2比特,并且参考比特bref是1比特。
根据存储在重编码表中的转换信息,可以将重编码器输入Reco_In映射或转换为与其对应的重编码值。在示例中,与具有第一模式Pat(1)的重编码器输入Reco_In相对应的第一重编码值Val(1)被存储在转换信息中。在该示例中,当单元随机数的比特bi和参考比特bref具有第一模式Pat(1)时,重编码器可以输出第一重编码值Val(1)。
附加地或作为另一种选择,可以基于上面的转换运算生成重编码值,并且可以以控制信号sel[0:k]的形式输出重编码值。在一个示例中,当随机数为两比特时,控制信号sel[0:k]可以包括四比特。
根据本发明构思的实施例,当应用上述布斯重编码方法时,重编码输出可以采用来自集合{-2,-1,0,1,2}中的值。因此,对应于具有任何一种模式的重编码器输入的重编码值可以与对应于具有另一模式的重编码器输入的重编码值相同。也即是,可以将多种重编码器输入模式映射到相同的重编码值。
另外,基于控制信号sel[0:k],局部乘法器215可以生成局部乘法运算中随机数RN与{-2,-1,0,1,2}(例如,局部乘法系数)中的任何一个值相乘的结果。因此,在一个局部乘法运算中,局部乘法器215可以接收模M和控制信号sel[0:k]作为输入并通过局部乘法运算过程生成{-2M,-M,0,M,2M}中的任何一个值。
图8示出了根据示例实施例的重编码表。
参考图8,当随机数RN是8比特值“01101001”时,可以如公式5所示转换随机数RN,使得系数具有{-2,-1,0,1,2}中的值。
[公式5]
RN=01101001(2)
=0·27+1·26+1·25+0·24+1·23+0·22+0·21+1·20
=2·26-1·24-2·22+1·20 (1)
=1·26+2·24+2·22+1·20 (2)
也即是,随机数RN可以转换为(1)2·26-1·24-2·22+1·20以及(2)1·26+2·24+2·22+1·20。上述两个转换值可以具有与原始随机数RN相同的值105。
根据上面的转换示例,单元随机数URN的两个比特可以被转换为值{-2,-1,0,1,2}中的任何一个值。因此,8位随机数RN可以被分成四个单元随机数,每个单元随机数具有两个比特。例如,两个最低有效位可以被分为第一单元随机数,接下来的两个低位可以被分为第二单元随机数,再接下来的两个低位可以被分为第三单元随机数,两个最高有效位可以被分为第四单元随机数。
另外,当假设首先从随机数RN的低位执行重编码操作时,执行当前重编码操作的单元随机数的高位可以用作下一个重编码操作中的参考比特。例如,当对第二单元随机数执行重编码操作时,第一单元随机数的两个比特中的高位可以对应于参考比特Ref bit。
在对包括两个最低有效位的第一单元随机数执行重编码操作的情况下,可以将对应于“0”的比特定义为参考比特Ref bit。因此,假设执行当前重编码操作的两个比特是b2i+1和b2i,则当前重编码操作中的参考比特Ref比特可以对应于b2i-1,并且下一个重编码操作中的参考比特(Next Ref bit)可以对应于b2i+1。
在随机数RN是“01101001(2)”的示例中,第一单元随机数可以是“01”(来自第一位和第二位),并且参考比特可以是“0”。如图8的重编码表中所示,包括第一单元随机数的比特和参考比特Ref的重编码器输入可以对应于“010”,并且与该重编码器输入对应的重编码值Recoding Value可以为“1”。
包括接下来的两个低位的第二单元随机数可以是“10”(来自第三位和第四位),并且参考比特Ref bit可以是来自前一个第一单元随机数的高位“0”。因此,包括第二单元随机数的比特和参考比特Ref bit的重编码器输入可以对应于“100”,并且与该重编码器输入对应的重编码值可以为“-2”。
包括接下来的两个低位的第三单元随机数也可以是“10”(来自第五位和第六位),并且参考比特Ref比特可以是来自前一个第二单元随机数的高位“1”。因此,包括第三单元随机数的比特和参考比特Ref bit的重编码器输入可以对应于“101”,并且与该重编码器输入对应的重编码值可以为“-1”。
包括接下来的两个低位的第四单元随机数可以是“01”(来自第七位和第八位),并且参考比特Ref bit可以是来自前一个第三单元随机数的高位“1”。因此,包括第四单元随机数的比特和参考比特Ref bit的重编码器输入可以对应于“011”,并且与该重编码器输入对应的重编码值可以为“-2”。
换句话说,重编码器可以接收“01101001(2)”作为随机数RN并生成“2”、“-1”、“-2”和“1”作为重编码值。
在一些示例中,重编码表是预先生成并且存储在安全处理器中的,但是实施例不限于此。在一个示例中,可以通过计算特定公式获得重编码表中示出的与重编码器输入相对应的重编码值,并且可以在安全处理器中提供用于计算特定公式的配置,以通过运算过程生成重编码值。
图9示出了根据示例实施例的控制信号表。
参考图8和图9,当图9的控制信号表中所示的重编码值对应于“-2”时,第一控制信号sel0至第四控制信号sel3可以具有值“1010”,当重编码值对应于“-1”时,与其对应的第一控制信号sel0至第四控制信号sel3可以具有值“1001”。另外,当重编码值对应于“0”时,第一控制信号sel0至第四控制信号se13可以具有值“0000”。当重编码值对应于“1”时,第一控制信号sel0至第四控制信号sel3可以具有值“0101”。当重编码值对应于“2”时,第一控制信号sel0至第四控制信号sel3可以具有值“0110”。上述第一控制信号sel0至第四控制信号sel3可以用作用于在下面描述的局部乘法运算中选择与模相乘的系数的信号。
根据本发明构思的实施例,重编码器可以向局部乘法器提供与参考图8描述的重编码值(例如,“2”,“-1”,“-2”和“1”)对应的第一控制信号sel0至第四控制信号sel3。在示例中,重编码器可以基于“1”(即,对应于第一单元随机数的重编码值)将“0101”作为第一控制信号sel0至第四控制信号sel3输出到局部乘法器。重编码器可以基于“-2”(即,对应于第二单元随机数的重编码值)将“1010”作为第一控制信号sel0至第四控制信号sel3输出到局部乘法器。
图10是示出了根据示例实施例的局部乘法器的电路图。
参考图10,可以向局部乘法器225提供比特的模M(M[0]至M[n-1])和根据上述随机数的重编码结果的第一控制信号sel0至第四控制信号sel3。尽管在图10中示出了构成一个局部乘法器225的逻辑元件,但是可以一起执行两个以上的局部乘法。因此,安全处理器10可以包括两个以上的局部乘法器225。局部乘法器225可以生成作为n比特的模M(M[0]至M[n-1])与2比特的单元随机数相乘的结果的(n+1)比特的单元模UMi[n:0]和1比特的符号数据UMi_neg。
对于模M,(n+1)比特的单元模UMi[n:0]与1比特的符号数据UMi_neg的局部乘法结果值可以是{-2M,-M,0,M,2M}中的任何一个。1比特的符号数据UMi_neg可以对应于第一控制信号sel0。
可以使用多个逻辑元件来实现局部乘法器225。在图10中,示出了局部乘法器225包括多个反相器410、多个AND门和多个OR门的示例。例如,除了n比特的模M(M[0]至M[n-1])之外,还可以在n比特的模M(M[0]至M[n-1])的最低有效位(即,M[0])的右侧进一步输入零值。另外,可以进一步在n比特的模M(M[0]至M[n-1])的最高有效位(即,M[n-1])的左侧输入零值。
局部乘法器225可以包括与n比特的模M(M[0]至M[n-1])和上述的两个零值对应的多个(例如,n+2)个反相器225_1。另外,局部乘法器225的第一级还可以包括第一AND门块225_2和第一OR门块225_3。第一AND门块225_2可以包括多个AND门(AND1_11、AND1_12至AND1_(n+2)1、AND1(n+2)2)。作为示例,可以对与n比特的模M(M[0]至M[n-1])的每个比特以及两个零值中的每一个相对应地布置两个AND门。以n比特的模M(M[0]至M[n-1])的最低有效位M[0]为例,第一AND门AND1_21可以接收第二选择信号sel1和最低有效位M[0]作为输入,第二AND门AND1_22可以接收第一选择信号sel0和最低有效位M[0]的反相值作为输入。
此外,第一OR门块225_3可以包括第一OR门OR1_1至第(n+2)OR门OR1_(n+2)。以n比特的模M(M[0]至M[n-1])的最低有效位M[0]为例,第一AND门AND1_21的输出和第二AND门AND1_22的输出可以被提供为第二OR门OR1_2的输入。
局部乘法器225的第二级还可以包括第二AND门块225_4和第二OR门块225_5。作为示例,第二AND门块225_4可以包括多个AND门(AND2_11、AND2_12至AND2_n1、AND2_n2)。以n比特的模M(M[0]至M[n-1])的两个最低有效位M[0]和M[1]为例,第一AND门AND2_21可以接收第四选择信号sel3和第一OR门块225_3的第三OR门OR1_3的输出,第二AND门AND2_22可以接收第三选择信号sel2和第一OR门块225_3的第二OR门OR1_2的输出。
第二OR门块225_5可以包括第一OR门OR2_1至第n OR门OR2_n。以n比特的模M(M[0]至M[n-1])的最低有效位M[0]为例,可以将第一AND门AND2_21的输出和第二AND门AND2_22的输出提供为第二OR门OR2_2的输入。对包括在局部乘法器225中的其他逻辑元件的详细连接关系可以被实现为如附图中所示的那样,省略其详细描述。
在图10所示的逻辑元件中,上述重编码结果可以通过第一控制信号sel0至第四控制信号sel3反映在局部乘法运算中。例如,第一控制信号sel0和第二控制信号sel1可以确定正/负号,第三控制信号sel2和第四控制信号sel3可以确定局部乘法的系数对应于“1”或“2”。
根据本发明构思的实施例的局部乘法器可以生成单元模(UMi[n:[0]和符号数据UMi_neg,对应于通过基于第一控制信号sel0至第四控制信号sel3将单元随机数与模M相乘而获得的值,并且可以将所生成的单元模(UMi[n:0]和UMi_neg输出到加法器(例如,图3的加法器212)。
图11是示出了根据示例实施例的安全处理器10a。安全处理器10a可以类似于参考图2描述的安全处理器10,但是可以包括多个随机操作数生成器。省略了先前参考图2给出的描述。
参考图11,安全处理器10a可以包括随机数生成器100a和取模计算器200a。取模计算器200a可以包括第一随机操作数生成器210a、第二随机操作数生成器230a和输出数据生成器220a。
第一随机操作数生成器210a可以从随机数生成器100a接收第一随机数RN1,从存储器(例如,图1中的20)接收第一输入数据ID1。第一随机操作数生成器210a可以基于第一随机数RN1和第一输入数据ID1生成第一随机操作数RO1。在一个示例中,第一随机操作数生成器210a可以通过如下方式生成第一随机操作数RO1:将模M与第一随机数RN1相乘,然后与第一输入数据ID1相加(其中RO1=ID1+RN1*M)。
第二随机操作数生成器230a可以从随机数生成器100a接收第二随机数RN2,从存储器(例如,图1中的20)接收第二输入数据ID2。第二随机操作数生成器230a可以基于第二随机数RN2和第二输入数据ID2生成第二随机操作数RO2。在一个示例中,第二随机操作数生成器230a可以通过如下方式生成第二随机操作数RO2:将模M与第二随机数RN2相乘,然后与第二输入数据ID2相加(其中RO2=ID2+RN2*M)。
输出数据生成器220a可以通过如下方式生成输出数据OD:接收第一随机操作数RO1和第二随机操作数RO2,对第一随机操作数RO1和第二随机操作数RO2执行算术运算(例如,加法、减法、乘法和除法),以及对算术运算的结果执行取余运算,在该取余运算中模M用作被除数。
根据取余运算(mod)的性质,诸如A、B、r和模M的任意数以及任意算术运算△(例如,加法、减法、乘法和除法中的任何一个)可以满足下面的公式6。
[公式6]
(A△B)mod M={(A+rM)△(B+rM)}mod M
基于上面的公式6建立用于第一输入数据ID1、第二输入数据ID2、第一随机操作数RO1和第二随机操作数RO2的公式7。
[公式7]
(ID1△ID2)mod M={(ID1+RN1*M)△(ID2+RN2*M)}mod M
=(RO1△RO2)mod M
即,根据本发明构思的实施例的安全处理器10a可以对基于第一输入数据ID1和第一随机数RN1计算出的第一随机操作数RO1执行取余运算,对基于第二输入数据ID2和第二随机数RN2计算出的第二随机操作数RO2执行取余运算。与第一输入数据ID1的情况类似,安全处理器10a可以通过使用利用第二随机数RN2生成的第二随机操作数RO2来对第二输入数据ID2执行取余运算。因此,可以提高安全处理器10a的安全性(例如,通过减小安全处理器10a对基于功率分析的SCA的脆弱性)。
图12是示出了根据示例实施例的安全处理器10b的框图。安全处理器10b可以类似于参考图2描述的安全处理器10,但是可以针对每个运算生成多个随机数和多个随机操作数。省略了先前参考图2给出的描述。
参考图12,安全处理器10b可以包括随机数生成器100b和取模计算器200b。取模计算器200b可以包括随机操作数生成器210b和输出数据生成器220b。随机数生成器100b可以向随机操作数生成器210b输出第一随机数RN1。随机操作数生成器210b可以使用第一随机数RN1生成第一随机操作数ROa,输出数据生成器220b可以在对至少一些第二输入数据ID2的运算中使用第一随机操作数ROa。
随机数生成器100b可以在对第二输入数据ID2进行运算时向随机操作数生成器210b输出与第一随机数RN1不同的第二随机数RN2。例如,随机数生成器100b可以在对第二输入数据ID2进行运算时将输出数据信号从第一随机数RN1更新为第二随机数RN2。随机操作数生成器210b可以使用第二随机数RN2生成第二随机操作数ROb,输出数据生成器220b可以在对至少一些第二输出数据ID2的运算中使用第二随机操作数ROb。
根据本发明构思的实施例,通过在对输入数据的运算期间更新从随机数生成器100b输出的随机数,可以进一步提高第一随机操作数ROa和第二随机操作数ROb的随机性,并且可以有效地保护输入数据ID1免受SCA。
图13是示出了根据示例实施例的安全处理器10b的操作的示图。
参考图12和图13,第二输入数据ID2可以包括第一子输入数据SID1和第二子输入数据SID2。随机数生成器100b可以生成第一随机数RN1,并且随机操作数生成器210b可以使用第一随机数RN1计算第一随机操作数ROa。输出数据生成器220b可以在对第二输入数据ID2中的第一子输入数据SID1的运算中使用基于第一随机数RN1生成的第一随机操作数ROa。例如,输出数据生成器220b可以通过将第一子输入数据SID1与第一随机操作数ROa相乘来生成第一子输出数据SOD1。
接下来,随机数生成器100b可以生成第二随机数RN2,并且随机操作数生成器210b可以使用第二随机数RN2计算第二随机操作数ROb。输出数据生成器220b可以在对第二输入数据ID2中的第二子输入数据SID2的运算中使用基于第二随机数RN2生成的第二随机操作数ROb。在一个示例中,输出数据生成器220b可以通过将第二子输入数据SID2与第二随机操作数Rob相乘来生成第二子输出数据SOD2。
输出数据生成器220b可以生成余数值作为输出数据OD,该余数值是通过将所生成的第一子输出数据SOD1和第二子输出数据SOD2按数位数相加并且通过将相加的结果除以模M而获得的。在一个示例中,输出数据生成器220b可以将第一子输出数据SOD1与通过将第二子输出数据SOD2的最低有效位和第二子输入数据SID2的最低有效位进行匹配而获得的结果相加。
图14是示出了根据示例实施例的安全处理器10c的视图。除了安全处理器10c可以包括随机操作数生成器内的随机数寄存器以外,安全处理器10c可以类似于参考图2描述的安全处理器10。省略了先前参考图2给出的描述。
参考图14,安全处理器10c可以包括随机数生成器100c和取模计算器200c。取模计算器200c可以包括随机操作数生成器210c和输出数据生成器220c。随机操作数生成器220c可以包括用于存储随机数的随机数寄存器223c。
随机操作数生成器210c可以向随机数生成器100c输出随机数请求信号RSig_RN。随机数生成器100c可以将响应于随机数请求信号RSig_RN而被更新的更新后的随机数RN_upt存储在随机数寄存器223c中。
在一个实施例中,当发生特定事件时,随机操作数生成器210c可以向随机数生成器100c输出随机数请求信号RSig_RN。在一个实施例中,特定事件可以是完成了对输入数据的重编码。在另一个实施例中,特定事件可以是已经完成了对特定数目的比特的重编码。
在另一实施例中,随机操作数生成器210c可以在特定事件的时间点已经过去时向随机数生成器100c输出随机数请求信号RSig_RN。
图15是示出了根据示例实施例的应用处理器1000的框图。
参考图15,应用处理器1000可以被实现为单片***(SoC)。应用处理器1000可以包括中央处理单元(CPU)1010、安全处理器1020、调制解调器1030、显示控制器1040、只读存储器(ROM)1050、存储控制器1060和RAM 1070。除了所示组件之外,应用处理器1000还可以包括诸如电源管理单元、图形处理单元(GPU)和时钟单元的其他组件。
CPU 1010可以处理或执行存储在ROM 1050和/或RAM 1070中的程序或数据。ROM1050可以存储程序和/或数据。另外,RAM 1070可以临时存储程序、数据和指令。存储控制器1060可以执行与外部存储设备的接口连接,并且可以通过根据数据访问请求控制外部存储设备来读取或写入数据。另外,显示控制器1040可以通过驱动显示设备来控制屏幕的显示操作。
根据本发明构思的实施例,安全处理器1020可以执行如本文所述的安全性操作。在一个实施例中,安全处理器1020可以包括取模计算器1021,并且可以使用随机数执行取余运算。尽管未在图15中示出,但是安全处理器1020还可以包括随机数生成器等。
当在应用处理器1000中提供调制解调器1030时,应用处理器1000可以被称为调制解调器应用处理器(ModAP)。可以通过调制解调器1030向外部***发送/从外部***接收需要进行安全性计算的信息。此时,安全处理器1020可以执行根据上述实施例的安全性计算。
如上所述,已经在附图和说明书中公开了实施例。虽然本文已经引用特定术语描述了实施例,但是应当理解的是,这些术语仅用于描述本发明构思的技术思想,而不限制如权利要求限定的本发明构思的范围。因此,本领域普通技术人员将理解的是,在不脱离本发明构思的范围的情况下,各种修改和等同实施例都是可能的。因此,本发明构思的真正的保护范围应由所附权利要求的技术构思确定。
Claims (25)
1.一种安全处理器,包括:
随机数生成器,所述随机数生成器被配置为生成第一随机数;以及
取模计算器,所述取模计算器被配置为基于第一输入数据和所述第一随机数生成第一随机操作数,并且通过对所述第一随机操作数进行取余运算来生成输出数据,
其中,对于所述第一输入数据的任何值而言,对所述第一输入数据进行所述取余运算的结果值都与对所述第一随机操作数进行所述取余运算的结果值相同。
2.根据权利要求1所述的安全处理器,其中,所述取模计算器包括:
第一随机操作数生成器,所述第一随机操作数生成器被配置为生成所述第一随机操作数;
输出数据生成器,所述输出数据生成器被配置为通过在对第二输入数据和所述第一随机操作数执行算术运算之后执行所述取余运算来生成所述输出数据。
3.根据权利要求2所述的安全处理器,其中,所述第一随机操作数生成器包括:
乘法器,所述乘法器被配置为将模与所述第一随机数相乘,所述模是所述取余运算的被除数;
加法器,所述加法器被配置为通过将所述第一输入数据与所述乘法器的乘法结果相加来生成所述第一随机操作数。
4.根据权利要求3所述的安全处理器,其中,所述乘法器包括:
重编码器,所述重编码器被配置为生成分别与构成所述第一随机数的多个单元随机数相对应的多个控制信号;
单元模生成器,所述单元模生成器被配置为生成与通过基于所述多个控制信号将所述模与所述多个单元随机数相乘而获得的值相对应的多个单元模,
其中,所述加法器被配置为通过将所述多个单元模与所述第一输入数据按数位数相加来生成所述第一随机操作数。
5.根据权利要求4所述的安全处理器,其中,所述重编码器被配置为将所述多个单元随机数中的每一个单元随机数转换为多个重编码值,并且基于所述多个重编码值生成所述多个控制信号。
6.根据权利要求5所述的安全处理器,其中,所述重编码器包括:
重编码表,所述重编码表存储用于基于布斯重编码将所述多个单元随机数转换为所述多个重编码值的转换信息;以及
控制信号表,所述控制信号表存储关于所述多个控制信号分别与所述多个重编码值的对应的对应信息,
其中,所述重编码器被配置为基于所述重编码表将所述多个单元随机数转换为所述多个重编码值,并且基于所述控制信号表向所述单元模生成器输出用于所述多个重编码值中的每一个重编码值的所述多个控制信号,并且
其中,所述单元模生成器被配置为基于所述多个控制信号生成所述多个单元模。
7.根据权利要求4所述的安全处理器,还包括存储器,所述存储器存储包括所述第一输入数据的原始数据,
其中,所述取模计算器被配置为顺序地加载通过将所述原始数据以m比特为单位进行分割而获得的多条分割数据,
其中,m是自然数。
8.根据权利要求7所述的安全处理器,其中,所述加法器被配置为在对所述多条分割数据中的第一分割数据执行第一运算之前对所述多条分割数据中的第二分割数据执行第二运算,
其中,所述第一随机操作数生成器还包括第一寄存器,所述第一寄存器用于存储在所述第二运算中超出m比特的向上舍入值,并且
其中,所述加法器被配置为通过将从所述第一寄存器加载的向上舍入值、所述多个单元模和所述第一分割数据按数位数相加来生成所述第一随机操作数。
9.根据权利要求2所述的安全处理器,其中,
所述随机数生成器被配置为还生成第二随机数,并且
其中,所述取模计算器还包括第二随机操作数生成器,所述第二随机操作数生成器被配置为基于所述第二输入数据和所述第二随机数生成第二随机操作数,并且
其中,所述输出数据生成器被配置为通过在对所述第一随机操作数和所述第二随机操作数执行所述算术运算之后执行所述取余运算来生成所述输出数据。
10.根据权利要求2所述的安全处理器,其中,所述随机数生成器还被配置为生成与所述第一随机数不同的第三随机数,并且
所述第一随机操作数生成器还被配置为在对所述第二输入数据的运算过程中,基于所述第一输入数据和所述第三随机数生成第三随机操作数。
11.根据权利要求10所述的安全处理器,其中,
所述第二输入数据包括第一子输入数据和第二子输入数据,并且
其中,所述输出数据生成器被配置为:
通过在对所述第一随机操作数和所述第一子输入数据执行所述算术运算之后执行所述取余运算来生成第一子输出数据,
通过在对所述第三随机操作数和所述第二子输入数据执行所述算术运算之后执行所述取余运算来生成第二子输出数据,以及
通过在将所述第一子输出数据和所述第二子输出数据相加之后执行所述取余运算来生成所述输出数据。
12.根据权利要求10所述的安全处理器,其中,所述第一随机操作数生成器还包括第二寄存器,所述第二寄存器存储从所述随机数生成器接收到的至少一个随机数,并且
其中,所述第一随机操作数生成器被配置为在向所述输出数据生成器输出所述第一随机操作数之后向所述随机数生成器输出随机数请求信号,并且
其中,所述随机数生成器被配置为响应于所述随机数请求信号向第一寄存器输出所述第三随机数。
13.一种安全处理器,所述安全处理器包括:
随机数生成器,所述随机数生成器被配置为生成第一随机数;
取模计算器,所述取模计算器被配置为:通过将模与所述第一随机数相乘,将所述相乘的结果与第一输入数据相加来生成第一随机操作数,然后执行将所述第一随机操作数除以所述模的取余运算,来生成输出数据。
14.根据权利要求13所述的安全处理器,其中,所述取模计算器被配置为对第二输入数据和所述第一随机操作数执行算术运算,以及输出余数作为所述输出数据,所述余数是通过将所述算术运算的结果除以所述模得到的。
15.根据权利要求14所述的安全处理器,其中,
所述随机数生成器还被配置为生成第二随机数,并且
所述取模计算器被配置为:将所述模与所述第二随机数相乘,通过将所述相乘的结果与所述第二输入数据相加来生成第二随机操作数,对所述第一随机操作数和所述第二随机操作数执行所述算术运算,以及生成余数作为所述输出数据,所述余数是将所述算术运算的结果除以所述模而生成的。
16.根据权利要求14所述的安全处理器,其中,
所述随机数生成器被配置为还生成与所述第一随机数不同的第三随机数,并且
所述取模计算器被配置为还通过在对所述第二输入数据的运算过程中将所述模与所述第三随机数相乘,然后将所述相乘的结果与所述第一输入数据相加来生成第三随机操作数。
17.根据权利要求16所述的安全处理器,其中,
所述第二输入数据包括第一子输入数据和第二子输入数据,并且
其中,所述取模计算器被配置为:对所述第一随机操作数和所述第一子输入数据执行第一算术运算,通过将所述第一算术运算的结果值除以所述模生成第一子输出数据,对所述第三随机操作数和所述第二子输入数据执行第二算术运算,通过将所述第二算术运算的结果值除以所述模生成第二子输出数据,以及基于所述第一子输出数据和所述第二子输出数据生成所述输出数据。
18.根据权利要求13所述的安全处理器,其中,所述取模计算器被配置为:
基于对所述第一随机数进行布斯重编码来生成与所述第一随机数对应的多个控制信号,以及
基于所述多个控制信号生成与将所述第一随机数乘以所述模的结果值相对应的多个单元模。
19.根据权利要求18所述的安全处理器,其中,所述取模计算器被配置为通过将所述多个单元模与所述第一输入数据按数位数相加来生成所述第一随机操作数。
20.一种安全处理器的操作方法,所述操作方法包括:
生成第一随机数;
基于模、所述第一随机数和第一输入数据生成第一随机操作数;以及
基于所述第一随机操作数生成输出数据,
其中,对于所述第一输入数据的任何值而言,所述第一随机操作数除以所述模的余数都与所述第一输入数据除以所述模的余数相同。
21.根据权利要求20所述的安全处理器的操作方法,其中,所述第一随机操作数的生成包括:
将所述模与所述第一随机数相乘;以及,
将所述相乘的结果值与所述第一输入数据相加,
其中,作为所述相加的结果而生成的数据是所述第一随机操作数。
22.根据权利要求20所述的安全处理器的操作方法,其中,所述输出数据的生成包括:
对第二输入数据和所述第一随机操作数执行算术运算;以及,
生成余数作为所述输出数据,所述余数是通过将执行所述算术运算的结果值除以所述模而得到的。
23.根据权利要求22所述的安全处理器的操作方法,所述方法还包括:
生成第二随机数;以及,
基于所述模、所述第二随机数和所述第二输入数据生成第二随机操作数,
其中,所述输出数据的生成包括:
对所述第一随机操作数和所述第二随机操作数执行所述算术运算;以及,
生成余数作为所述输出数据,所述余数是通过将执行所述算术运算的结果值除以所述模而得到的。
24.根据权利要求22所述的安全处理器的操作方法,所述方法还包括:
生成第三随机数;以及
在对所述第二输入数据的运算中,基于所述模、所述第三随机数和所述第一输入数据,生成第三随机操作数。
25.一种加密或解密数据的方法,所述方法包括:
生成随机数;
将所述随机数与模相乘;
通过将所述相乘的结果与输入数据相加来生成随机操作数;
通过使用所述模对所述随机操作数执行取余运算来生成输出数据;以及
基于所述输出数据执行密码操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190005855A KR102653018B1 (ko) | 2019-01-16 | 2019-01-16 | 랜덤 넘버를 이용하여 나머지 연산을 수행하는 보안 프로세서 및 이의 동작 방법 |
KR10-2019-0005855 | 2019-01-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111444518A true CN111444518A (zh) | 2020-07-24 |
Family
ID=71517668
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910970322.1A Pending CN111444518A (zh) | 2019-01-16 | 2019-10-12 | 安全处理器及其操作方法、加密或解密数据的方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11392725B2 (zh) |
KR (1) | KR102653018B1 (zh) |
CN (1) | CN111444518A (zh) |
TW (1) | TWI821501B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022087829A1 (zh) * | 2020-10-27 | 2022-05-05 | 京东方科技集团股份有限公司 | 数据处理电路、数据处理方法及电子设备 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020148771A1 (en) * | 2019-01-17 | 2020-07-23 | Fortifyiq Inc | Methods for protecting computer hardware from cyber threats |
US11449642B2 (en) * | 2020-09-04 | 2022-09-20 | Arm Limited | Attack protection by power signature blurring |
CN112653706B (zh) * | 2020-12-29 | 2022-11-04 | 杭州趣链科技有限公司 | 基于中国剩余定理的数据传输方法、装置和*** |
CN113839769B (zh) * | 2021-09-27 | 2023-08-22 | 刘昀宸 | 防止侧信道攻击的方法、算术逻辑单元以及处理器 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6571268B1 (en) * | 1998-10-06 | 2003-05-27 | Texas Instruments Incorporated | Multiplier accumulator circuits |
JP2007187908A (ja) * | 2006-01-13 | 2007-07-26 | Hitachi Ltd | サイドチャネル攻撃に耐性を有するモジュラーべき乗算計算装置及びモジュラーべき乗算計算方法 |
US20100146029A1 (en) * | 2008-12-09 | 2010-06-10 | Nec Electronics Corporation | Method and apparatus for modular operation |
US20110246789A1 (en) * | 2010-03-31 | 2011-10-06 | Inside Contactless | Integrated circuit protected against horizontal side channel analysis |
US20170192749A1 (en) * | 2016-01-04 | 2017-07-06 | International Business Machines Corporation | Reproducible stochastic rounding for out of order processors |
CN108108614A (zh) * | 2016-11-25 | 2018-06-01 | 三星电子株式会社 | 安全处理器以及安全处理器的操作方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1840732A1 (en) | 2006-03-31 | 2007-10-03 | Axalto SA | Protection against side channel attacks |
US20090016523A1 (en) | 2007-07-12 | 2009-01-15 | Atmel Corporation | Masking and Additive Decomposition Techniques for Cryptographic Field Operations |
US7865793B2 (en) | 2008-04-30 | 2011-01-04 | International Business Machines Corporation | Test case generation with backward propagation of predefined results and operand dependencies |
KR101592920B1 (ko) | 2009-06-10 | 2016-02-12 | 삼성전자주식회사 | 모듈러 연산 방법 및 이를 위한 장치 |
KR101344402B1 (ko) | 2010-08-12 | 2013-12-26 | 한국전자통신연구원 | Rsa 서명 방법 및 장치 |
KR101341810B1 (ko) | 2011-11-17 | 2013-12-17 | 고려대학교 산학협력단 | Crt-rsa를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보를 보호하는 방법 |
US9959429B2 (en) | 2013-03-15 | 2018-05-01 | Cryptography Research, Inc. | Asymmetrically masked multiplication |
KR101553148B1 (ko) | 2014-03-05 | 2015-09-14 | 울산대학교 산학협력단 | 비트 확장 방식을 이용한 암호화 장치 및 방법 |
US9626531B2 (en) * | 2014-11-18 | 2017-04-18 | Intel Corporation | Secure control of self-encrypting storage devices |
US10181944B2 (en) | 2015-06-16 | 2019-01-15 | The Athena Group, Inc. | Minimizing information leakage during modular exponentiation and elliptic curve point multiplication |
KR101891898B1 (ko) | 2016-12-21 | 2018-08-27 | (주)라닉스 | 수평 상관 전력 분석 공격에 안전한 rsa 암호화 방법 |
-
2019
- 2019-01-16 KR KR1020190005855A patent/KR102653018B1/ko active IP Right Grant
- 2019-08-09 US US16/536,796 patent/US11392725B2/en active Active
- 2019-10-12 CN CN201910970322.1A patent/CN111444518A/zh active Pending
-
2020
- 2020-01-13 TW TW109101100A patent/TWI821501B/zh active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6571268B1 (en) * | 1998-10-06 | 2003-05-27 | Texas Instruments Incorporated | Multiplier accumulator circuits |
JP2007187908A (ja) * | 2006-01-13 | 2007-07-26 | Hitachi Ltd | サイドチャネル攻撃に耐性を有するモジュラーべき乗算計算装置及びモジュラーべき乗算計算方法 |
US20100146029A1 (en) * | 2008-12-09 | 2010-06-10 | Nec Electronics Corporation | Method and apparatus for modular operation |
US20110246789A1 (en) * | 2010-03-31 | 2011-10-06 | Inside Contactless | Integrated circuit protected against horizontal side channel analysis |
US20170192749A1 (en) * | 2016-01-04 | 2017-07-06 | International Business Machines Corporation | Reproducible stochastic rounding for out of order processors |
CN108108614A (zh) * | 2016-11-25 | 2018-06-01 | 三星电子株式会社 | 安全处理器以及安全处理器的操作方法 |
Non-Patent Citations (2)
Title |
---|
任燕婷;乌力吉;李翔宇;王安;张向民;: "抗攻击低功耗RSA处理器设计与实现", 清华大学学报(自然科学版), no. 01, 15 January 2016 (2016-01-15) * |
李子臣;孙亚飞;杨亚涛;梁斓;汤永利;: "一种抗侧信道攻击的随机功耗方法", 计算机应用与软件, no. 03, 15 March 2018 (2018-03-15) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022087829A1 (zh) * | 2020-10-27 | 2022-05-05 | 京东方科技集团股份有限公司 | 数据处理电路、数据处理方法及电子设备 |
US11789897B2 (en) | 2020-10-27 | 2023-10-17 | BOE Technology Development Co., Ltd. | Data processing circuit, data processing method, and electronic device |
Also Published As
Publication number | Publication date |
---|---|
TW202044083A (zh) | 2020-12-01 |
KR102653018B1 (ko) | 2024-03-29 |
KR20200089145A (ko) | 2020-07-24 |
US11392725B2 (en) | 2022-07-19 |
TWI821501B (zh) | 2023-11-11 |
US20200226294A1 (en) | 2020-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI821501B (zh) | 安全處理器、所述安全處理器的操作方法、以及加密或解密資料的方法 | |
US11733966B2 (en) | Protection system and method | |
Fritzmann et al. | Efficient and flexible low-power NTT for lattice-based cryptography | |
US20210256165A1 (en) | Protecting parallel multiplication operations from external monitoring attacks | |
KR100891323B1 (ko) | 이진 필드 ecc에서 랜덤 포인트 표현을 이용하여 파워해독의 복잡도를 증가시키기 위한 암호화 방법 및 장치 | |
CN100527072C (zh) | 用于执行蒙哥马利型模乘法的装置及方法 | |
Xie et al. | Special session: The recent advance in hardware implementation of post-quantum cryptography | |
Ferozpuri et al. | High-speed FPGA implementation of the NIST round 1 rainbow signature scheme | |
KR102594656B1 (ko) | 보안 프로세서, 이를 포함하는 어플리케이션 프로세서 및 보안 프로세서의 동작 방법 | |
US20120057695A1 (en) | Circuits for modular arithmetic based on the complementation of continued fractions | |
KR20050072537A (ko) | 암호화 장치, 암호화 방법 및 그 기록매체 | |
EP0938790B1 (en) | A method and device for executing a decrypting mechanism through calculating a standardized modular exponentiation for thwarting timing attacks | |
CN113467750A (zh) | 用于基数为4的srt算法的大整数位宽除法电路及方法 | |
Langhammer et al. | Efficient FPGA modular multiplication implementation | |
Parihar et al. | Fast Montgomery modular multiplier for rivest–shamir–adleman cryptosystem | |
US7113593B2 (en) | Recursive cryptoaccelerator and recursive VHDL design of logic circuits | |
CN113467752B (zh) | 用于隐私计算的除法运算装置、数据处理***及方法 | |
KR102491902B1 (ko) | 완전동형암호 기법으로 암호화된 데이터의 연산을 위한 장치 및 방법 | |
Saldamli et al. | Uniform montgomery multiplier | |
US20240187206A1 (en) | Method and system for protecting cryptographic operations against side-channel attacks | |
US20230195943A1 (en) | Processor architecture and related techniques | |
Mathew et al. | Arithmetic operations on encrypted data using fully homomorphic encryption | |
Ho | Accelerating homomorphic encryption for privacy-preserving applications | |
Tan | High-Performance VLSI Architectures for Lattice-Based Cryptography | |
US7471789B2 (en) | Encryption circuit achieving higher operation speed |
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 |