CN107210004A - 随机数扩展装置、随机数扩展方法和随机数扩展程序 - Google Patents

随机数扩展装置、随机数扩展方法和随机数扩展程序 Download PDF

Info

Publication number
CN107210004A
CN107210004A CN201580072901.4A CN201580072901A CN107210004A CN 107210004 A CN107210004 A CN 107210004A CN 201580072901 A CN201580072901 A CN 201580072901A CN 107210004 A CN107210004 A CN 107210004A
Authority
CN
China
Prior art keywords
random number
bit
extension
matrix
multiplying
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
Application number
CN201580072901.4A
Other languages
English (en)
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of CN107210004A publication Critical patent/CN107210004A/zh
Pending legal-status Critical Current

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/004Countermeasures against attacks on cryptographic mechanisms for fault attacks
    • 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/58Random or pseudo-random number generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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
    • 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/10Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols with particular housing, physical features or manual controls
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)

Abstract

随机数扩展装置(100)具有扩展部(120),该扩展部(120)使用通过设加法为异或的乘法运算而得到的逻辑运算将随机数r(M)扩展成N比特的随机数s(N),该乘法运算是由纠错的(N、N‑M、D)线性码决定的M×N大小的检查矩阵和M×N大小的生成矩阵中的一个矩阵与设随机数r(M)为M分量的向量时的所述向量的乘法运算。随机数扩展装置(100)具有扩展部(120),因此,能够削减要使用的随机数的比特数,能够对抗多个激光照射攻击。

Description

随机数扩展装置、随机数扩展方法和随机数扩展程序
技术领域
本发明涉及将M比特的随机数扩展成比M比特大的N比特的随机数的随机数扩展装置、随机数扩展方法和随机数扩展程序。
背景技术
作为信息安全的基础而广泛利用密码技术。为了安全地利用密码,被称作秘密密钥的信息需要对利用者以外保密。作为安全地存储秘密密钥的手段,一般采用利用计算机芯片的方法。在芯片内的非易失存储器中写入秘密密钥,从芯片外施加访问限制。通过访问限制,能够使得不会从芯片外读出秘密密钥。
对要从计算机芯片取出密钥的攻击进行了仔细研究。在攻击的一个分类中存在故障攻击。当对计算机赋予物理刺激时,有时引起计算错误。在对密码进行处理的计算机芯片中诱发计算错误,其结果是,有时只要观察如何引起计算错误,就能够提取秘密密钥。将这种攻击称作故障攻击。
作为引起计算错误的物理刺激,众所周知的一个方法是对计算机芯片照射激光。在非专利文献1中记载有以下内容:如果对适当部位照射激光,则能够将在计算机芯片内进行数据存储的存储器或寄存器的某个比特固定成逻辑值0或1。将这种错误称作置位/复位错误。
能够诱发置位/复位错误的攻击者只要观察在激光的照射前和照射后是否改写了密钥,就能够取得秘密数据。
如非专利文献2所示,针对故障攻击的现有的对策方法有很多。但是,该对策方法多数无效。
针对故障攻击的一个有效对策方法是专利文献1公开的利用传感器检测被照射激光的方法。但是,存在(1)可能漏看局部的照射、(2)由于使用特殊电路而使制造成本增大等课题。
进而,针对故障攻击的别的有效对策方法是使用随机数遮蔽的方法。随机数遮蔽是指以下技术。设存在N比特的秘密密钥k(N)。k(N)=k1,k2,…kN。在随机数遮蔽中,准备N比特的随机数r(N)。r(N)=r1,r2,…rN。通过取秘密密钥k(N)与随机数r(N)的异或,得到被遮蔽的数据。然后,将随机数r(N)和被遮蔽的数据保存在寄存器中。在使用秘密密钥k(N)时,通过计算随机数r(N)与被遮蔽的数据的异或,能够复原秘密密钥k(N)。由于没有存储秘密密钥k(N)本身,因此,无法利用照射激光的攻击求出秘密密钥k(N)。由此,成为针对基于激光照射的故障攻击的对策。
现有技术文献
专利文献
专利文献1:日本特开2004-206680号公报
非专利文献
非专利文献1:C.Roscian,A.Sarafianos,J.-M.Dutertre,and A.Tria,“FaultModel Analysis of Laser-Induced Faults in SRAM Memory Cells”,Fault Diagnosisand Tolerance in Cryptography(FDTC),2013 Workshop on,pp.89--98,Aug.2013.
非专利文献2:M.Joye and M.Tunstall(Eds.),“Fault Analysis inCryptography”,Springer,2012.
发明内容
发明要解决的课题
上述随机数遮蔽存在必要的寄存器数量翻倍这样的课题。因此,制造成本增大。
在随机数遮蔽中,用于减少寄存器数量的简易方法是仅使用1比特随机数的方法。设该随机数为r。对仅准备1比特随机数的随机数遮蔽进行说明。通过取秘密密钥k(N)的各比特与1比特随机数r的异或,得到被遮蔽的数据。将随机数r和被遮蔽的数据保存在寄存器中。在本方法中,具有追加的必要的寄存器只要1比特即可这样的优点。另一方面,存在同时对2个部位以上的部位照射激光的攻击可能成功这样的课题。
本发明的目的在于,提供能够削减要使用的随机数的比特数且能够对抗多个激光照射攻击的装置、方法和程序。
用于解决课题的手段
本发明的随机数扩展装置具有:接收部,其接收M比特的随机数r(M);扩展部,其使用通过设加法为异或的乘法运算而得到的逻辑运算将随机数r(M)扩展成N比特的随机数s(N),该乘法运算是由纠错的线性码决定的M×N大小的检查矩阵和M×N大小的生成矩阵中的一个矩阵与设随机数r(M)为M分量的向量时的所述向量的乘法运算;以及输出部,其输出比随机数s(N)的N比特中的M比特多的比特值作为随机数。
发明效果
本发明的随机数扩展装置具有扩展部,因此,能够削减要使用的随机数的比特数且能够对抗多个激光照射攻击。
附图说明
图1是实施方式1的图,是随机数扩展装置100的基本结构的框图。
图2是实施方式1的图,是随机数扩展装置100具有遮蔽部140和存储部150时的框图。
图3是实施方式1的图,示出扩展部120、遮蔽部140的动作概要。
图4是实施方式1的图,是随机数扩展装置100的动作的流程图。
图5是实施方式1的图,是示出利用线性码对随机数进行扩展的扩展部120的动作的图。
图6是实施方式1的图,是说明激光照射攻击成功的图。
图7是实施方式1的图,是示出扩展部120使用检查矩阵1202将随机数r(8)扩展成随机数s(15)的例子的图。
图8是实施方式1的图,是示出以硬件方式安装图7的检查矩阵1202的乘法运算时的图。
图9是实施方式1的图,是随机数扩展装置100具有解密部160时的框图。
图10是实施方式1的图,是示出图9的电路结构的图。
图11是实施方式1的图,是示出再次遮蔽中的扩展部120和遮蔽部140的动作的图。
图12是实施方式1的图,是示出进行再次遮蔽时的电路结构的图。
图13是实施方式1的图,是再次遮蔽的流程图。
图14是实施方式1的图,是说明扩展部120进行的缩减处理的图。
图15是实施方式1的图,是随机数扩展装置100具有检测比特串中包含的错误的错误检测部170时的框图。
图16是实施方式2的图,是示出利用计算机实现随机数扩展装置100时的硬件结构例的图。
图17是实施方式2的图,是将随机数扩展装置100安装于半导体装置的图。
具体实施方式
实施方式1
在以下的实施方式中,假设以下的(1)~(4)。
(1)在以下的说明中出现随机数。设随机数为r、s。
设随机数r是扩展前的随机数,随机数s是扩展后的随机数。
(2)在以下的说明中出现表示比特数的整数N、M、V,设N>V>M。
(3)r(M)表示M比特的随机数。rM表示r(M)的第M比特。如r<1>,(M)、r<2>,(M)那样,利用“<1>,<2>”区分随机数的差异。r<1>,(M)、r<2>,(M)等有时如r<1>、r<2>那样省略(M)。这些对于随机数s也是同样的。
(4)异或的运算简便地记作<+>。r<1>,(M)<+>r<2>,(M)表示r<1>,(M)与r<2>,(M)的比特彼此的异或。
***结构的说明***
参照图1~图16对实施方式1进行说明。
图1是随机数扩展装置100的基本结构的框图。
随机数扩展装置100具有接收部110、扩展部120、输出部130。
接收部110接收M比特的随机数r(M)
扩展部120使用通过设加法为异或的乘法运算而得到的逻辑运算将随机数r(M)扩展成N比特的随机数s(N),该乘法运算是由纠错的线性码决定的M×N大小的检查矩阵和M×N大小的生成矩阵中的一个矩阵与设随机数r(M)为M分量的向量时的所述向量的乘法运算。
即,扩展部120使用通过乘法运算而得到的逻辑运算将随机数r(M)扩展成N比特的随机数s(N),该乘法运算是由纠错的(N、N-M、D)线性码决定的M×N大小的检查矩阵和M×N大小的生成矩阵中的一个矩阵与设随机数r(M)为M分量的向量时的向量的乘法运算。即,扩展部120使用通过一个矩阵与M分量的向量的乘法运算而得到的逻辑运算对随机数进行扩展。
根据表示M比特的整数M、比M大的整数N、整数D,利用码长N、信息比特长N-M、表示不同码字彼此之间的海明距离的最小值的最小距离D表示纠错的(N、N-M、D)线性码。(N、N-M、D)线性码容后再述。
M×N大小的检查矩阵和M×N大小的生成矩阵中的一个矩阵与设随机数r(M)为M分量的向量时的向量的乘法运算是设加法为异或的乘法运算。下面,将该乘法运算称作异或乘法运算,但是,有时简称作乘法运算。并且,检查矩阵、生成矩阵容后再述。扩展部120生成通过检查矩阵和生成矩阵中的一个矩阵与随机数r(M)的异或乘法运算而得到的N个分量作为随机数s(N)
输出部130输出比随机数s(N)的N比特中的M比特多的比特值作为随机数。在由扩展部120将r(M)扩展成s(N)的情况下,输出部130输出s(N)。或者,在后述的缩减处理的情况下,输出部130输出从s(N)中去除至少1比特后的V比特的随机数s(V)。另外,各整数的大小是N>V>M。利用图14容后再述,但是,扩展部120通过从扩展后的随机数s(N)中除去至少1比特,生成由比整数N小且比整数M大的整数V表示的V比特的随机数s(V)。输出部130输出随机数s(V)
并且,如后述的再次遮蔽中说明的那样,接收部110接收取M比特的第一随机数r<1>,(M)与M比特的第二随机数r<2>,(M)的异或而得到的第三随机数r<3>,(M)作为随机数r(M)。扩展部120将第三随机数r<3>,(M)扩展成异或随机数,该异或随机数是作为与对第一随机数r<1>,(M)进行扩展后的随机数相当的N比特的随机数s<1>,(N)和与对第二随机数r<2>,(M)进行扩展后的随机数相当的N比特的随机数s<2>,(N)的异或而得到的。存储部150存储利用随机数s<1>,(N)遮蔽后的数据。后述的遮蔽部140进行利用随机数s<1>,(N)遮蔽后的数据即X<+>s<1>,(N)和由扩展部120扩展后的异或随机数即s<1>,(N)<+>s<2>,(N)的运算。通过该运算,遮蔽部140进行将利用随机数s<1>,(N)遮蔽后的数据转换成利用随机数s<2>,(N)遮蔽后的数据的再次遮蔽。
图2是随机数扩展装置100还具有遮蔽部140和存储部150时的框图。
遮蔽部140利用由输出部130输出的随机数对数据进行遮蔽。存储部150存储由遮蔽部140遮蔽后的数据。
***动作的说明***
图3示出扩展部120和遮蔽部140的动作概要。
图4是随机数扩展装置100的动作的流程图。
参照图2~图4对随机数扩展装置100的动作进行说明。设秘密密钥k(N)为k1~kN的N比特。
(1)接收部110执行步骤S11。在步骤S11中,接收部110接收M比特的随机数r(M)
(2)扩展部120执行步骤S12。在步骤S12中,扩展部120使用通过乘法运算而得到的逻辑运算将随机数r(M)扩展成N比特的随机数s(N),该乘法运算是由纠错的(N、N-M、D)线性码决定的M×N大小的检查矩阵和M×N大小的生成矩阵中的一个矩阵与设随机数r(M)为M分量的向量时的向量的乘法运算。这样,扩展部120使用扩展函数1201将随机数r(M)转换成随机数s(N)。扩展函数1201容后再述。
(3)输出部130执行步骤S13。在步骤S13中,输出部130输出个数比随机数s(N)的N比特中的M比特多的M+1个以上的比特值作为随机数。
(4)在输出部130输出随机数s(N)作为随机数的情况下,遮蔽部140通过求出秘密密钥k(N)与随机数s(N)的异或,生成对秘密密钥k(N)进行遮蔽后的数据604。随机数r(M)和数据604被保存在作为存储部150的存储器或寄存器中。通过以上的动作,能够使用期望比特数的随机数进行数据的遮蔽。
随机数扩展装置100的特征在于,在随机数的扩展中利用线性码的技术。
图5是示出利用线性码的技术对随机数进行扩展的扩展部120的动作的图。
扩展部120通过使用扩展函数1201,将随机数r(M)扩展成随机数s(N)。扩展部120在随机数的扩展中利用(N、N-M、D)线性码。N是码长,N-M是信息比特长,D是表示不同码字彼此之间的海明距离的最小值的最小距离。利用与检查矩阵1202的乘法运算来定义扩展函数1201。检查矩阵1202是由(N、N-M、D)线性码决定的M×N大小的矩阵。检查矩阵1202也是生成矩阵,因此,能够将检查矩阵1202改写成生成矩阵。检查矩阵1202或生成矩阵具有M×N的维度。具有M×N的维度意味着M行N列或N行M列。检查矩阵1202也是生成矩阵,因此,下面将扩展函数1201的定义中使用的矩阵设为检查矩阵1202。检查矩阵1202具有M×N的维度,因此,能够输出M比特的输入数据即r(M)作为N比特的输出数据s(N)。扩展部120的特征之一在于,利用纠错码不是为了检测比特的错误,而是为了将输入数据即随机数r(M)扩展成随机数s(N)
作为使用(N、N-M、D)线性码的检查矩阵1202对随机数进行扩展的效果,能够提高针对(D-1)个激光照射的安全。这基于以下理由。检查矩阵1202具有N个列。在检查矩阵1202为N行M列的情况下进行转置即可。根据(N、N-M、D)线性码的性质,检查矩阵1202的任意(D-1)个列都是线性独立的。对应于该线性独立,取出利用检查矩阵1202扩展后的N比特数据即随机数s(N)中的任何(D-1)比特,都是线性独立的。假设存在线性从属的A列,则其表示随机数不足。因此,通过进行A个激光照射,能够进行攻击。在使用(N、N-M、D)线性码的情况下,任何(D-1)都是线性独立的,因此,能够防止(D-1)个激光照射的上述攻击。
图6是示出同时对2个部位以上的部位照射激光的攻击成功的例子的表。使用图6,说明在不基于本实施方式的情况下同时对2个部位以上的部位照射激光的攻击成功的例子。
设希望保护的2比特的秘密密钥为k(2)。设秘密密钥k(2)的各比特为k0、k1。设1比特的随机数为r。攻击者已知激光照射后的秘密密钥k(2)的比特成为(0,0)。列501是秘密密钥k(2)为k0=k1的情况和k0≠k1的情况。列502是k0=k1的情况和k0≠k1的情况的具体比特。列503示出随机数r的值。列504示出被遮蔽的秘密密钥k(2)。列505示出激光照射后的值。列506示出有无错误。列507示出错误概率。攻击者的目的在于判定是否是k0=k1。判定是否是k0=k1具有与取得密钥的1比特相同的效果。使用1比特的随机数r对秘密密钥k(2)进行遮蔽。被遮蔽的值是列504。攻击者对保持被遮蔽的值的寄存器的2个部位照射激光。如列506所示,如果k0=k1,则存在无错的情况。另一方面,如果k0≠k1,则必定产生错误。由此,通过尝试是否存在无错的情况,攻击者能够判定是否是k0=k1。这意味着攻击成功。通过对图6所示的攻击应用本实施方式的方法,能够对抗(D-1)个激光照射。
图7示出扩展部120使用检查矩阵1202将随机数r(8)扩展成随机数s(15)的例子。
图7是使用“今井秀树,‘码理论’,电子信息通信学会,1990.”中公开的(15、7、5)线性码时的例子,N=15,M=8。因此,检查矩阵1202的大小为8×15。矩阵1202-1是检查矩阵1202的转置矩阵,大小为15行8列。通过将矩阵1202-1和随机数r(8)相乘,能够将随机数r(8)扩展成15比特的随机数s(15)。检查矩阵1202与设随机数r(8)为8分量的向量时的该向量的乘法运算是异或乘法运算。如果利用使用矩阵1202-1生成的随机数s(15)对寄存器的秘密密钥k(15)进行遮蔽,则能够确保4个同时激光照射的安全性。作为异或乘法运算的结果即值802的各比特的各分量是原来的随机数r(8)的各比特(r1,…,r8)的异或。即,随机数s(15)的s1等的各比特是r1等的异或。如图7所示,扩展部120生成通过M×N大小的矩阵1202-1与随机数r(M)的异或乘法运算而得到的N个分量作为随机数s(N)
另外,在图7中,为了简便而使用转置矩阵1202-1。只要以能够进行由(15、7、5)线性码决定的15×8大小的检查矩阵1202与随机数r(8)的异或乘法运算而得到随机数s(15)的方式进行计算即可。即,只要能够将由(N、N-M、D)线性码决定的M×N大小的检查矩阵1202和随机数r(M)相乘而得到随机数s(N)即可。具体而言,在设检查矩阵1202为H,矩阵H的转置矩阵为Ht的情况下,
(1)如果H为N行M列,则设随机数r(M)为M行1列来计算H×r(M)即可。或者,设随机数r(M)为1行M列来计算r(M)×Ht即可。
(2)如果H为M行N列,则设随机数r(M)为1行M列来计算r(M)×H即可。或者,设随机数r(M)为M行1列来计算Ht×r(M)即可。
图1、图2等所示的结构可以由硬件构成,也可以由软件构成,还可以由硬件和软件的组合构成。
图8示出以硬件方式安装图7所示的检查矩阵1202的乘法运算的情况。扩展部120具有执行逻辑运算的逻辑运算电路121。
在图8中,接收部110是输入级的各异或门的输入端子111,输出部130是输出级的各异或门的输出端子131。逻辑运算电路121具有多个异或电路121-1。图8的上面第一个电路121a是计算随机数s(15)的s1比特的电路。上面第二个电路121b是计算随机数s(15)的s2比特的电路。图8的下面第一个电路121d是计算随机数s(15)的s15比特的电路。从下往上第二个电路121c是计算随机数s(15)的s14比特的电路。计算s3比特~s13比特的电路省略。异或逻辑能够直接通过异或的逻辑门来实现。由此,通过使用异或的网络,能够安装小型、高速的电路。
随机数扩展装置100也可以具有对被遮蔽的数据进行解密的解密部。
图9是随机数扩展装置100具有解密部160时的框图。
图10示出图9的电路结构,但是,将随机数r(M)记作r。
图10的随机数扩展装置100具有存储随机数r(M)的寄存器1000、作为对随机数r(M)进行扩展的电路的扩展部120、作为遮蔽部140的异或门1003、作为去除遮蔽的解密部160的异或门1004、以及作为存储遮蔽后的数据的存储部150的寄存器1005。扩展函数1201使用检查矩阵1202。图10的扩展部120的具体结构是在该实施方式中图8所示的异或门的网络,但是,如上所述也可以由程序构成。如下所述进行N比特的秘密信息x的遮蔽。f示出扩展函数1201。首先,由扩展部120将寄存器1000中存储的随机数r(M)转换成N比特的随机数f(r)。另外,f(r)=s(N)。通过取f(r)=s(N)与N比特的秘密信息x的异或,得到被遮蔽的值x<+>f(r)。在寄存器1005中存储被遮蔽的值即x<+>f(r)。寄存器1005的输出与异或门1004连接。通过异或门1004成为x<+>f(r)<+>f(r)=x,遮蔽前的秘密信息X被复原。
参照图11、图12对再次遮蔽进行说明。
在随机数遮蔽中,有时希望更换遮蔽的值。通过更换遮蔽的值,安全性可能提高。将遮蔽值的更换称作再次遮蔽。根据随机数扩展装置100,能够高效地进行再次遮蔽。
图11示出再次遮蔽中的扩展部120和遮蔽部140的动作。使用图11对再次遮蔽进行说明。
设M比特的随机数为第一随机数r<1>、第二随机数r<2>。设对r<1>、r<2>进行扩展后的N比特的随机数为s<1>、s<2>。当前,假设希望将利用f(r<1>)遮蔽后的值x<+>f(r<1>)再次遮蔽成其他的被遮蔽的值x<+>f(r<2>)。随机数s<1>=f(r<1>),随机数s<2>=f(r<2>)。并且,x是秘密信息,r<1>是旧遮蔽用的随机数,r<2>是新遮蔽用的随机数。首先,异或门1100生成r<1><+>r<2>
接着,接收部110接收第三随机数r<3>,(M)即r<1><+>r<2>。扩展部120将r<1><+>r<2>扩展成随机数f(r<1><+>r<2>)。输出部130输出随机数f(r<1><+>r<2>)。利用与检查矩阵1202的乘法运算定义的扩展函数f是线性的,因此,f(r<1><+>r<2>)=f(r<1>)<+>f(r<2>)=s<1><+>s<2>成立。遮蔽部140取被遮蔽的值即x<+>f(r<1>)与扩展后的随机数即f(r<1>)<+>f(r<2>)的异或。由此,遮蔽部140得到x<+>f(r<1>)<+>f(r<1>)<+>f(r<2>)=x<+>f(r<2>)。由此,新的值即x<+>f(r<2>)成为再次遮蔽的结果。
以上的使用扩展函数f的再次遮蔽的方法具有2个重要优点。第1,仅准备一个扩展函数f即可。第2,实现再次遮蔽而不用返回到未被遮蔽的原来的值x,安全性可能提高。
图12示出进行再次遮蔽时的随机数扩展装置100的电路结构,对应于图9的框图。图12对图9所示的电路结构进行扩展,追加了再次遮蔽功能。
在图12中,针对图9追加了新随机数r<2>的寄存器1010、将随机数r<1>和r<2>相加的异或门1020、选择器1030。异或门1004在图10的解密部160的功能的基础上,还具有遮蔽部140的功能。通过使用图10的电路,能够实现再次遮蔽。
图13是示出图12的随机数扩展装置100的动作的流程图。
参照图13对动作进行说明。
在S21中,仅随机数r<1>被送到异或门1020。异或门1020的输出为随机数r<1>
在S22中,扩展部120生成s<1>=f(r<1>),从输出部130输出f(r<1>)。
在S23中,利用异或门1003取秘密信息x与f(r<1>)的异或。
在S24中,从选择器1030输出x<+>f(r<1>)。
在S25中,在寄存器1005中存储x<+>f(r<1>)。
接着,在S31中,随机数r<1>和随机数r<2>被送到异或门1020。异或门1020的输出为r<1><+>r<2>
在S32中,扩展部120通过扩展函数f将r<1><+>r<2>扩展成f(r<1><+>r<2>)=f(r<1>)<+>f(r<2>),输出部130输出f(r<1>)<+>f(r<2>)。
在S33中,利用异或门1004取从输出部130输出的f(r<1>)<+>f(r<2>)与从寄存器1005输出的x<+>f(r<1>)的异或。由此,从异或门1004输出x<+>f(r<1>)<+>f(r<1>)<+>f(r<2>)=x<+>f(r<2>)。
在S34中,从选择器1030输出x<+>f(r<2>),x<+>f(r<2>)被存储在寄存器1005中。由此,再次遮蔽完成。在对再次遮蔽后的x<+>f(r<2>)进行解密时,仅将随机数r<2>送到异或门1020,利用扩展部120将随机数r<2>扩展成f(r<2>),利用异或门1004取f(r<2>)与寄存器1005中存储的x<+>f(r<2>)的异或即可。
图14是说明扩展部120进行的缩减处理的图。
参照图14对缩减处理进行说明。
下面,N、V、M是正整数,N>V>M。在希望将随机数r(M)扩展成随机数s(V)的情况下,不一定存在(V、V-M、D)线性码。此时,能够进行缩减。使用图14对缩减处理进行说明。假设虽然希望将M比特的随机数r(M)扩展成V比特的随机数s(V),但是,无法生成合适的(V、V-M、D)线性码。但是,选择N>V的N,能够生成(N、N-M、D)码。该情况下,能够在扩展函数1201中使用(N、N-M、D)码的检查矩阵1202。扩展函数1201的输出为N比特。即,扩展部120将随机数r(M)扩展成随机数s(N)后,从随机数s(N)中舍去几个比特,由此生成V比特的随机数s(V)。能够使用这样生成的输出即随机数s(V)作为遮蔽随机数。
图15是随机数扩展装置100具有检测比特串中包含的错误的错误检测部170的框图。
扩展部120在将随机数r(M)扩展成随机数s(N)的情况下,利用错误检测部170的至少一部分。错误检测部可以是纠错码用的硬件即电路,也可以是纠错码用的程序的情况。通过利用错误检测部170的至少一部分,能够减小电路规模、程序大小。
***效果的说明***
根据本实施方式,通过对存储利用扩展后的随机数遮蔽后的数据的寄存器进行管理,由此,能够生成对激光照射具有耐性的寄存器文件。
并且,根据本实施方式,通过将利用扩展后的随机数遮蔽后的数据存储在易失性存储器中,由此,能够实现对激光照射具有耐性的易失性存储器。
实施方式2
图16是利用计算机实现随机数扩展装置100时的硬件结构例。参照图16进行说明。
作为计算机的随机数扩展装置100具有处理器901、辅助存储装置902、存储器903、通信装置904、输入接口905、显示器接口906这样的硬件。处理器901经由信号线910而与其他硬件连接,对这些其他硬件进行控制。输入接口905与输入装置907连接。显示器接口906与显示器908连接。
处理器901是进行处理的IC(Integrated Circuit)。处理器901例如是CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(GraphicsProcessing Unit)。辅助存储装置902例如是ROM(Read Only Memory)、闪存、HDD(HardDisk Drive)。存储器903例如是RAM(Random Access Memory)。通信装置904包含接收数据的接收机9041和发送数据的发送机9042。通信装置904例如是通信芯片或NIC(NetworkInterface Card)。输入接口905是连接输入装置907的缆线911的端口。输入接口905例如是USB(Universal Serial Bus)端子。显示器接口906是连接显示器908的缆线912的端口。显示器接口906例如是USB端子或HDMI(注册商标)(High Definition MultimediaInterface)端子。输入装置907例如是鼠标、键盘或触摸面板。显示器908例如是LCD(LiquidCrystal Display)。
在辅助存储装置902中存储有实现图9所示的接收部110、扩展部120、输出部130、遮蔽部140、存储部150、解密部160(下面将接收部110~解密部160统一记作“部”)的功能的程序。该程序被加载到存储器903中,读入到处理器901中,由处理器901来执行。进而,在辅助存储装置902中还存储有OS(Operating System)。而且,OS的至少一部分被加载到存储器903中,处理器901执行OS,并且执行实现“部”的功能的程序。
在图16中,图示出一个处理器901,但是,随机数扩展装置100也可以具有多个处理器901。而且,多个处理器901也可以协作执行实现“部”的功能的程序。并且,表示“部”的处理结果的信息、数据、信号值、变量值存储在存储器903、辅助存储装置902或处理器901内的寄存器或缓存中。
也可以利用“电路系统”来提供“部”。并且,也可以将“部”改写成“电路”或“步骤”或“顺序”或“处理”。“电路”和“电路系统”是如下概念:不仅包含处理器901,而且包含逻辑IC或GA(Gate Array)或ASIC(Application Specific Integrated Circuit)或FPGA(Field-Programmable Gate Array)这样的其他种类的处理电路。
图17是利用半导体装置200实现实施方式1中说明的随机数扩展装置100的图。
半导体装置200具有多个电路作为随机数扩展装置100。在半导体装置200的寄存器210中存储被遮蔽的秘密密钥和扩展前的随机数r(M)
标号说明
100:随机数扩展装置;110:接收部;120:扩展部;121:逻辑运算电路;121-1:异或电路;130:输出部;140:遮蔽部;150:存储部;160:解密部;170:错误检测部。

Claims (10)

1.一种随机数扩展装置,该随机数扩展装置具有:
接收部,其接收M比特的随机数r(M)
扩展部,其使用通过设加法为异或的乘法运算而得到的逻辑运算将随机数r(M)扩展成N比特的随机数s(N),该乘法运算是由纠错的线性码决定的M×N大小的检查矩阵和M×N大小的生成矩阵中的一个矩阵与设随机数r(M)为M分量的向量时的所述向量的乘法运算;以及
输出部,其输出比随机数s(N)的N比特中的M比特多的比特值作为随机数。
2.根据权利要求1所述的随机数扩展装置,其中,
所述扩展部生成通过一个矩阵与随机数r(M)的所述乘法运算而得到的N个分量作为随机数s(N)
3.根据权利要求1或2所述的随机数扩展装置,其中,
所述扩展部通过从随机数s(N)中除去至少1比特,生成由比整数N小且比整数M大的整数V表示的V比特的随机数s(V)
所述输出部输出随机数s(V)
4.根据权利要求1~3中的任意一项所述的随机数扩展装置,其中,
所述扩展部具有执行所述逻辑运算的逻辑运算电路。
5.根据权利要求4所述的随机数扩展装置,其中,
所述逻辑运算电路具有多个异或电路。
6.根据权利要求1~5中的任意一项所述的随机数扩展装置,其中,
所述随机数扩展装置还具有:
遮蔽部,其利用由所述输出部输出的随机数对数据进行遮蔽;以及
存储部,其存储由所述遮蔽部遮蔽后的数据。
7.根据权利要求6所述的随机数扩展装置,其中,
所述接收部接收取M比特的第一随机数r<1>,(M)与M比特的第二随机数r<2>,(M)的异或而得到的第三随机数r<3>,(M)作为随机数r(M)
所述扩展部将第三随机数r<3>,(M)扩展成异或随机数,该异或随机数是作为与对第一随机数r<1>,(M)进行扩展后的随机数相当的N比特的随机数s<1>,(N)和与对第二随机数r<2>,(M)进行扩展后的随机数相当的N比特的随机数s<2>,(N)的异或而得到的,
所述存储部存储利用随机数s<1>,(N)遮蔽后的数据,
所述遮蔽部通过利用随机数s<1>,(N)遮蔽后的数据和由所述扩展部扩展后的异或随机数的运算,进行将利用随机数s<1>,(N)遮蔽后的数据转换成利用随机数s<2>,(N)遮蔽后的数据的再次遮蔽。
8.根据权利要求1~7中的任意一项所述的随机数扩展装置,其中,
所述随机数扩展装置还具有检测比特串中包含的错误的错误检测部,
所述扩展部在将随机数r(M)扩展成随机数s(N)的情况下,利用所述错误检测部的至少一部分。
9.一种随机数扩展方法,其中,
接收M比特的随机数r(M)
由逻辑运算电路使用通过设加法为异或的乘法运算而得到的逻辑运算将随机数r(M)扩展成N比特的随机数s(N),该乘法运算是由纠错的线性码决定的M×N大小的检查矩阵和M×N大小的生成矩阵中的一个矩阵与设随机数r(M)为M分量的向量时的所述向量的乘法运算;以及
输出比随机数s(N)的N比特中的M比特多的比特值。
10.一种随机数扩展程序,该随机数扩展程序用于使计算机执行以下处理:
接收M比特的随机数r(M)
使用通过设加法为异或的乘法运算而得到的逻辑运算将随机数r(M)扩展成N比特的随机数s(N),该乘法运算是由纠错的线性码决定的M×N大小的检查矩阵和M×N大小的生成矩阵中的一个矩阵与设随机数r(M)为M分量的向量时的所述向量的乘法运算;以及
输出比随机数s(N)的N比特中的M比特多的比特值。
CN201580072901.4A 2015-01-15 2015-01-15 随机数扩展装置、随机数扩展方法和随机数扩展程序 Pending CN107210004A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/050979 WO2016113886A1 (ja) 2015-01-15 2015-01-15 乱数拡大装置、乱数拡大方法及び乱数拡大プログラム

Publications (1)

Publication Number Publication Date
CN107210004A true CN107210004A (zh) 2017-09-26

Family

ID=56405447

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580072901.4A Pending CN107210004A (zh) 2015-01-15 2015-01-15 随机数扩展装置、随机数扩展方法和随机数扩展程序

Country Status (6)

Country Link
US (1) US20180018147A1 (zh)
EP (1) EP3246899A1 (zh)
JP (1) JP6058245B2 (zh)
CN (1) CN107210004A (zh)
TW (1) TWI567637B (zh)
WO (1) WO2016113886A1 (zh)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3069993B1 (fr) 2017-08-07 2020-09-18 Maxim Integrated Products Dispositifs et procedes de masquage d'operations de chiffrement rsa
US11032257B1 (en) 2017-12-08 2021-06-08 Rankin Labs, Llc Method for covertly delivering a packet of data over a network
US11861025B1 (en) 2018-01-08 2024-01-02 Rankin Labs, Llc System and method for receiving and processing a signal within a TCP/IP protocol stack
US10725743B2 (en) 2018-01-22 2020-07-28 John Rankin System and method for generating random numbers
US10574439B2 (en) 2018-01-31 2020-02-25 John Rankin System and method for secure communication using random blocks or random numbers
WO2019168978A1 (en) * 2018-02-28 2019-09-06 John Rankin System and method for expanding a set of random values
US11289070B2 (en) 2018-03-23 2022-03-29 Rankin Labs, Llc System and method for identifying a speaker's community of origin from a sound sample
WO2020014354A1 (en) 2018-07-10 2020-01-16 John Rankin System and method for indexing sound fragments containing speech
WO2020033540A1 (en) 2018-08-10 2020-02-13 John Rankin System and method for covertly transmitting a payload of data
US11689543B2 (en) 2018-08-10 2023-06-27 Rankin Labs, Llc System and method for detecting transmission of a covert payload of data
WO2020041390A1 (en) 2018-08-21 2020-02-27 John Rankin System and method for scattering network traffic across a number of disparate hosts
US11989320B2 (en) 2018-12-19 2024-05-21 Rankin Labs, Llc Hidden electronic file system within non-hidden electronic file system
US10903977B2 (en) 2018-12-19 2021-01-26 Rankin Labs, Llc Hidden electronic file systems
US11526357B2 (en) 2019-01-21 2022-12-13 Rankin Labs, Llc Systems and methods for controlling machine operations within a multi-dimensional memory space
US11108671B2 (en) 2019-01-21 2021-08-31 Rankin Labs, Llc Systems and methods for processing network traffic using dynamic memory
US10901739B2 (en) 2019-01-21 2021-01-26 Rankin Labs, Llc Systems and methods for controlling machine operations using stack entries comprising instruction configuration parameters
US11487674B2 (en) 2019-04-17 2022-11-01 Rankin Labs, Llc Virtual memory pool within a network which is accessible from multiple platforms
US10908133B2 (en) 2019-04-17 2021-02-02 Rankin Labs, Llc System and method for detecting hidden chemicals within objects in a non-invasive manner
US11729184B2 (en) 2019-05-28 2023-08-15 Rankin Labs, Llc Detecting covertly stored payloads of data within a network
US11055166B2 (en) 2019-05-28 2021-07-06 Rankin Labs, Llc Covertly storing a payload of data within a network
US11372773B2 (en) 2019-05-28 2022-06-28 Rankin Labs, Llc Supporting a virtual memory area at a remote computing machine
WO2021025728A1 (en) 2019-08-07 2021-02-11 John Rankin System and method for indirect advertising
WO2021025729A1 (en) 2019-08-07 2021-02-11 John Rankin Determining proximity and attraction of objects within a coordinate system
US11507699B2 (en) * 2019-09-27 2022-11-22 Intel Corporation Processor with private pipeline
US11699037B2 (en) 2020-03-09 2023-07-11 Rankin Labs, Llc Systems and methods for morpheme reflective engagement response for revision and transmission of a recording to a target individual

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030194086A1 (en) * 1999-01-11 2003-10-16 Lambert Robert J. Method for strengthening the implementation of ECDSA against power analysis
CN1870076A (zh) * 2005-05-27 2006-11-29 佛山市顺德区顺达电脑厂有限公司 文件保密方法
JP2010002959A (ja) * 2008-06-18 2010-01-07 Nec Electronics Corp 擬似乱数生成装置
CN101674180A (zh) * 2008-09-10 2010-03-17 中国人民解放军信息工程大学 一种伪随机序列产生方法及加密方法
CN103119594A (zh) * 2010-12-08 2013-05-22 株式会社日立制作所 可检索密码处理系统
WO2013121736A1 (ja) * 2012-02-15 2013-08-22 日本電気株式会社 乱数発生装置、乱数発生方法、オブジェクト配置装置、並びにコンピュータ・プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7243117B2 (en) * 2001-02-07 2007-07-10 Fdk Corporation Random number generator and probability generator
EP1450250B1 (en) * 2003-02-11 2006-08-23 IP-First LLC Random number generator with selectable dual random bit string engines
TWI387921B (zh) * 2009-04-16 2013-03-01 Univ Nat Changhua Education 利用中央極限定理之常態分佈亂數產生器及其亂數產生方法
FR2967322B1 (fr) * 2010-11-08 2012-12-28 Morpho Protection contre les ecoutes passives

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030194086A1 (en) * 1999-01-11 2003-10-16 Lambert Robert J. Method for strengthening the implementation of ECDSA against power analysis
CN1870076A (zh) * 2005-05-27 2006-11-29 佛山市顺德区顺达电脑厂有限公司 文件保密方法
JP2010002959A (ja) * 2008-06-18 2010-01-07 Nec Electronics Corp 擬似乱数生成装置
CN101674180A (zh) * 2008-09-10 2010-03-17 中国人民解放军信息工程大学 一种伪随机序列产生方法及加密方法
CN103119594A (zh) * 2010-12-08 2013-05-22 株式会社日立制作所 可检索密码处理系统
WO2013121736A1 (ja) * 2012-02-15 2013-08-22 日本電気株式会社 乱数発生装置、乱数発生方法、オブジェクト配置装置、並びにコンピュータ・プログラム

Also Published As

Publication number Publication date
WO2016113886A1 (ja) 2016-07-21
US20180018147A1 (en) 2018-01-18
JP6058245B2 (ja) 2017-01-11
JPWO2016113886A1 (ja) 2017-04-27
EP3246899A1 (en) 2017-11-22
TWI567637B (zh) 2017-01-21
TW201626211A (zh) 2016-07-16

Similar Documents

Publication Publication Date Title
CN107210004A (zh) 随机数扩展装置、随机数扩展方法和随机数扩展程序
Hu et al. An overview of hardware security and trust: Threats, countermeasures, and design tools
Guin et al. Robust design-for-security architecture for enabling trust in IC manufacturing and test
Chakraborty et al. SURF: Joint structural functional attack on logic locking
Koteshwara et al. Key-based dynamic functional obfuscation of integrated circuits using sequentially triggered mode-based design
Zhao et al. Memory trojan attack on neural network accelerators
US10990580B2 (en) System, method and computer-accessible medium for stripped-functionality logic locking
Knechtel et al. Protect your chip design intellectual property: An overview
EP3147830B1 (en) Protecting an integrated circuit
US20160224407A1 (en) System, method and computer-accessible medium for fault analysis driven selection of logic gates to be camouflaged
US10642947B2 (en) System, method and computer-accessible medium providing secure integrated circuit camouflaging for minterm protection
Chakraborty et al. SAIL: Analyzing structural artifacts of logic locking using machine learning
Roshanisefat et al. Benchmarking the capabilities and limitations of SAT solvers in defeating obfuscation schemes
Rathor et al. A novel low complexity logic encryption technique for design-for-trust
Saha et al. ORACALL: An oracle-based attack on cellular automata guided logic locking
Karmakar et al. Hardware IP protection using logic encryption and watermarking
Hassan et al. SATConda: SAT to SAT-hard clause translator
Das et al. Randomized reversible gate-based obfuscation for secured compilation of quantum circuit
Rathor et al. GateLock: Input-Dependent Key-based locked Gates for SAT resistant logic locking
CN106789061A (zh) 磁浮工程检测车数据传输方法、装置以及磁浮工程检测车
Zashcholkin et al. Co-Embedding Additional Security Data and Obfuscating Low-Level FPGA Program Code
US10055194B2 (en) Operation based on two operands
Bao Hardware attacks and mitigation techniques
US20230394122A1 (en) Multi-layered framework for security of integrated circuits
US20220197982A1 (en) Hardware-Based Obfuscation of Digital Data

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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20170926