CN110018810B - 随机码产生器 - Google Patents

随机码产生器 Download PDF

Info

Publication number
CN110018810B
CN110018810B CN201811558790.XA CN201811558790A CN110018810B CN 110018810 B CN110018810 B CN 110018810B CN 201811558790 A CN201811558790 A CN 201811558790A CN 110018810 B CN110018810 B CN 110018810B
Authority
CN
China
Prior art keywords
address
random code
random
key
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811558790.XA
Other languages
English (en)
Other versions
CN110018810A (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.)
eMemory Technology Inc
Original Assignee
eMemory Technology Inc
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
Priority claimed from TW107141885A external-priority patent/TWI696111B/zh
Application filed by eMemory Technology Inc filed Critical eMemory Technology Inc
Publication of CN110018810A publication Critical patent/CN110018810A/zh
Application granted granted Critical
Publication of CN110018810B publication Critical patent/CN110018810B/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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • H04L9/3278Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response using physically unclonable functions [PUF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • 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
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

一种随机码产生器,包括:一地址Y译码器、一地址X译码器、一PUF乱度库、一处理电路与一密钥储存电路。该地址Y译码器包括多条Y控制线连接至该PUF乱度库,且该地址Y译码器根据一第一地址Y信号来选择性地动作该些Y控制线。该地址X译码器包括多条X控制线连接至该PUF乱度库,且该地址X译码器根据一第一地址X信号来选择性地动作该些X控制线。该PUF乱度库根据动作的Y控制线与X控线来产生一输出数据。于该随机码产生器的一正常运作时,该处理电路接收输出数据,然后根据密钥储存电路提供的至少一乱度密钥来处理输出资料并产生一随机码。

Description

随机码产生器
技术领域
本发明是一种随机码产生器,且特别是有关于一种由物理不可复制(physicallyunclonable function,简称PUF)记忆胞数组所组成的随机码产生器。
背景技术
物理不可复制技术(physically unclonable function,简称PUF技术)是一种创新的方式用来保护半导体芯片内部的数据,防止半导体芯片的内部数据被窃取。根据PUF技术,半导体芯片内的随机码产生器(random code generator)能够提供一随机码(randomcode)。此随机码可作为半导体芯片(semiconductor chip)上特有的身分码(ID code),用来保护内部的数据。
一般来说,PUF技术是利用半导体芯片的制造变异(manufacturing variation)来获得独特的随机码。此制造变异包括半导体的制程变异(process variation)。亦即,就算有精确的制程步骤可以制作出半导体芯片,但是其随机码几乎不可能被复制(duplicate)。因此,具有PUF技术的半导体芯片通常被运用于高安全防护的应用(applications withhigh security requirements)。
美国专利号US 9,613,714公开运用于一次编程(one time programmable,简称OTP)记忆胞与记忆胞数组的PUF技术以及相关的随机码产生方法。在该PUF技术中,利用制造OTP记忆胞时的制程变异,使得编程后的(programmed)OTP记忆胞产生无法预测的储存状态,并可以作为一位的随机码。再者,运用于PUF技术的OTP记忆胞又可称为PUF记忆胞(PUFcell),OTP记忆胞数组又可称为PUF记忆胞数组(PUF cell array)。
一般来说,当PUF记忆胞数组(programmed PUF cell array)经过编程动作后,其记录的内容已经决定了。因此,编程后的PUF记忆胞数组又可称为PUF乱度库(PUF entropypool)。
然而,在此领域的技术人员可利用各种方法来来直接读取编程后的PUF记忆胞数组(PUF乱度库)中所记录的内容并且获得随机码。一但随机码的内容被取得之后即可得知半导体芯片上特有的身分码(ID code),而半导体芯片内的机密数据即可能被窃取。
发明内容
本发明的主要目的在于提出一种随机码产生器,包括:一地址Y译码器,具有多条Y控制线,且该地址Y译码器根据一第一地址Y信号来选择性地动作该些Y控制线;一地址X译码器,具有多条X控制线,且该地址X译码器根据一第一地址X信号来选择性地动作该些X控制线;一PUF乱度库,连接至该些Y控制线与该些X控制线,其中该PUF乱度库根据动作的Y控制线与X控线来产生一输出数据;一处理电路,连接至该PUF乱度库以接收一输出数据;以及一密钥储存电路,连接至该PUF乱度库以接收多个乱度密钥。于该随机码产生器的一正常运作时,该密钥储存电路提供至少一乱度密钥至该处理电路,使得该处理电路根据该至少一乱度密钥来处理该输出数据并产生一随机码。
为了对本发明的上述及其他方面有更佳的了解,下文特举实施例,并配合所附图式详细说明如下:
附图说明
图1为本发明随机码产生器的第一实施例。
图2A~2E为处理电路的各种示例
图3A~3C为顺序逻辑电路的其他示例。
图4A~4D为纠结逻辑电路的各种示例。
图5为加密逻辑电路的另一示例。
图6为本发明随机码产生器的第二实施例。
图7为本发明随机码产生器的第三实施例。
图8为本发明随机码产生器的第四实施例。
附图标记列表
100、600、700、800:随机码产生器
105、605、705、805:地址Y译码器
106、606、706、806:地址X译码器
110:PUF乱度库
120:处理电路
130、630:密钥储存电路
220、320、330、340:顺序逻辑电路
221、232、234、254、256、322、324、332:缓存器
230、430、440、450、460:纠结逻辑电路
250、550:加密逻辑电路
252:数据加密标准电路
262、272:第一逻辑电路
264、274:第二逻辑电路
276:第三逻辑电路
334、336、342、344、346:缓存器
348:对照表
432、442、452、462:哈希电路
552:进阶加密标准电路
807:地址Y产生器
808:地址X产生器
8000~8255、9000~9255:互斥或门
具体实施方式
请参照图1,其所绘示为本发明随机码产生器的第一实施例。随机码产生器100包括PUF乱度库(PUF entropy pool)110、地址Y译码器(address Y decoder)105、地址X译码器(address X decoder)106、密钥储存电路(entropy key storage circuit)130以及处理电路(processing circuit)120。其中,PUF乱度库110为具有m×n个PUF记忆胞C(0,0)~C(m-1,n-1)的PUF记忆胞数组。亦即,PUF乱度库110具有K个乱度的密度,且K=m×n(PUFentropy pool has a density of K entropy and K=m×n)。基本上,密钥储存电路130有很多种实施方式。举例来说,密钥储存电路130由多个缓存器(register)所组成。当然,密钥储存电路130也可以整合于处理电路120中。
假设PUF乱度库110中包括256×256个PUF记忆胞,亦即m=n=256。地址Y译码器105具有256条Y控制线Y0~Y255连接至PUF乱度库110,地址Y译码器105根据地址Y信号Addr_Y(address Y signal)来动作256条Y控制线Y0~Y255其中之一。再者,地址X译码器106具有256条X控制线X~X255连接至PUF乱度库110,地址X译码器106根据地址X信号Addr_X(address X signal)来动作256条X控制线X0~X255其中之一。
再者,地址Y信号Addr_Y与地址X信号Addr_X皆为8位(bits),且地址Y信号Addr_Y与地址X信号Addr_X可选定PUF乱度库110中的任一PUF记忆胞。举例来说,当地址Y信号Addr_Y为“00000000”且地址X信号Addr_X为“00000000”时,Y控制线Y0与X控制线X0动作。因此,PUF乱度库110中的PUF记忆胞C(0,0)会被选定,使得PUF乱度库110输出PUF记忆胞C(0,0)的储存内容作为输出数据Do。
再者,假设需要PUF乱度库110输出第0行的256位的数据时,则可固定地址Y信号Addr_Y为“00000000”,并且地址X信号Addr_X由“00000000”依序递增至“11111111”。此时,Y控制线Y0动作且256条的X控制线X0~X255依序动作。因此,PUF乱度库110中第0行的PUF记忆胞C(0,0)至PUF记忆胞C(0,255)的储存内容会成为输出数据Do。
同理,假设需要PUF乱度库110输出第1行的前128位的数据时,则可固定地址Y信号Addr_Y为“00000001”,并且地址X信号Addr_X由“00000000”依序递增至“01111111”。此时,Y控制线Y1动作且128条的X控制线X0~X127依序动作。因此,PUF乱度库110中第1行的PUF记忆胞C(1,0)至PUF记忆胞C(1,127)的储存内容会成为输出数据Do。
由以上的说明可知,利用地址Y信号Addr_Y与地址X信号Addr_X即可控制PUF乱度库110产生最少1位的输出数据Do,最多256×256位的输出数据Do。以下以输出数据Do为256位为例来进行说明,但本发明不限定于此。
根据本发明的实施例,于随机码产生器100正常运作(normal operation)之前的初始化运作(initialization)时,PUF乱度库110可提供多个乱度密钥(entropy key)Key_1~Key_x至密钥储存电路130。举例来说,于随机码产生器100的初始化(initialize)运作时,利用地址Y信号Addr_Y与地址X信号Addr_X来控制PUF乱度库110输出一行256个位的数据至密钥储存电路130作为第一乱度密钥Key_1。因此,利用控制PUF乱度库110输出x行的数据成为x笔乱度密钥Key1~Key_x。
再者,当随机码产生器100正常运作时,密钥储存电路130可提供至少一乱度密钥至处理电路120。也就是说,当随机码产生器100正常运作时,PUF乱度库110产生的输出数据Do会输入处理电路120。再者,密钥储存电路130提供至少一乱度密钥至处理电路120,使得处理电路120根据至少一乱度密钥来处理输出数据Do并产生随机码Code_r。以下以图2A~2E来详细说明处理电路120的各种示例。
如图2A所示,处理电路120中包括顺序逻辑电路(sequence logic circuit)220。顺序逻辑电路220可基于对非称性交换(asymmetric swapping)来进行顺序调整程序。顺序逻辑电路220包括一缓存器221,例如左至右方向位移(L→R)的循环移位寄存器(circularshift register)。
如图2A所示,缓存器221接收并储存输出数据Do,亦即位b255~位b0中的内容为p255~p0。另外,缓存器221接收的第一乱度密钥Key_1。当顺序逻辑电路220进行顺序调整程序时,缓存器221根据第一乱度密钥Key_1的数值来进行右移动作(shifted right),亦即由左至右方向位移(L→R)。而顺序调整程序后,缓存器221即可产生随机码Code_r。
假设第一乱度密钥Key_1的数值为“10”,则缓存器221右移10个位。因此,顺序逻辑电路220进行顺序调整程序后,输出数据Do的位b9的内容p9成为随机码Code_r的最高位(MSB),输出数据位b10的内容p10成为随机码Code_r的最低位(LSB)。
明显地,顺序逻辑电路220进行顺序调整程序后,输出数据Do已经异于随机码Code_r。
如图2B所示,处理电路120中包括纠结逻辑电路(entanglement logic circuit)230。其中,纠结逻辑电路230包括二个缓存器232、234与多个互斥或门(XOR gate)9000~9255。纠结逻辑电路230将输出数据Do与第一乱度密钥Key_1进行互斥或运算(XORoperation)后,即产随机码Code_r。
举例来说,缓存器232接收的输出数据Do,亦即p255~p0;缓存器234接收的第一乱度密钥Key_1,亦即k255~k0。如图2B所示,输出数据Do的位b0的内容p0与第一乱度密钥的位b0的内容k0利用互斥或门9000进行互斥或运算后,产生随机码Code_r的位b0的内容c0。利用相同的运作方式,也可以产生随机码Code_r的其他位c255~c1。
明显地,纠结逻辑电路230产生的随机码Code_r已经异于输出数据Do。
如图2C所示,处理电路120中包括加密逻辑电路(encryption logic circuit)250。加密逻辑电路250包括二个缓存器252、254与一数据加密标准电路(data encryptionstandard circuit,简称DES电路)252。
缓存器254储存输出数据Do,且缓存器256储存接收第一乱度密钥Key_1,数据加密标准电路252接收输出数据Do与第一乱度密钥Key_1。再者,根据DES标准,数据加密标准电路252利用输出数据Do与第一乱度密钥Key_1来进行加密程序,并产生随机码Code_r。
明显地,加密逻辑电路250产生的随机码Code_r已经异于输出数据Do。
再者,上述的顺序逻辑电路220、纠结逻辑电路230与加密逻辑电路250也可以任选其二,并组成处理电路120。
如图2D所示,处理电路120中包括第一逻辑电路262与第二逻辑电路264。第一逻辑电路262接收输出数据Do以及第一乱度密钥Key_1,并产生第一处理数据Dp1。再者,第二逻辑电路264接收第一处理数据Dp1以及第二乱度密钥Key_2,并产生随机码Code_r。
举例来说,当第一逻辑电路262与第二逻辑电路264为加密逻辑电路250与纠结逻辑电路230时,加密逻辑电路250产生的第一处理数据Dp1即为加密数据(encrypted data),而纠结逻辑电路230产生随机码Code_r。
同理,第一逻辑电路262与第二逻辑电路264可为纠结逻辑电路230与加密逻辑电路250。再者,第一逻辑电路262与第二逻辑电路264也可为顺序逻辑电路220与纠结逻辑电路230,或者纠结逻辑电路230与顺序逻辑电路220。另外,第一逻辑电路262与第二逻辑电路264可为顺序逻辑电路220与加密逻辑电路250,或者加密逻辑电路250与顺序逻辑电路220。
再者,组合上述的顺序逻辑电路220、纠结逻辑电路230与加密逻辑电路250可以成为处理电路120。
如图2E所示,处理电路120中包括第一逻辑电路272、第二逻辑电路274与第三逻辑电路276。第一逻辑电路272接收输出数据Do以及第一乱度密钥Key_1,并产生第一处理数据Dp1。再者,第二逻辑电路264接收第一处理数据Dp1以及第二乱度密钥Key_2,并产生第二处理数据Dp2。再者,第三逻辑电路264接收第二处理数据Dp2以及第三乱度密钥Key_2,并产生随机码Code_r。
相同地,图2E中并不限定于顺序逻辑电路220、纠结逻辑电路230与加密逻辑电路250的组合顺序。举例来说,当第一逻辑电路272、第二逻辑电路274与第三逻辑电路376为顺序逻辑电路220、纠结逻辑电路230与加密逻辑电路250时,顺序逻辑电路220产生的第一处理数据Dp1即为顺序调整数据(sequence adjusted data),纠结逻辑电路230产生的第二处理数据即为纠结数据(entangled data),且加密逻辑电路250产生随机码Code_r。
由以上的说明可知,当随机码产生器100正常运作时,利用地址Y信号Addr_Y与地址X信号Addr_X来控制PUF乱度库110产生输出数据Do。再者,PUF乱度库110产生的输出数据Do会输入处理电路120。而处理电路120会根据密钥储存电路130所提供的乱度密钥来将输出资料Do处理成为随机码Code_r,并使得输出数据Do异于随机码Code_r。
另外,由图2A的说明可知,顺序逻辑电路220可以改变输出数据Do中每个位的排列次序。再者,本发明并不限定于图2A中顺序逻辑电路220的架构,以下另外提出其他架构的顺序逻辑电路。
请参照图3A,其所绘示为顺序逻辑电路的另一示例。顺序逻辑电路220基于对称性交换(symmetric swapping)来进行顺序调整程序。顺序逻辑电路320包括二个缓存器322、324。缓存器322接收256位的输出数据Do,且输出数据Do被区分为四个部分P1~P4。举例来说,缓存器322中位b255~b192中的内容为输出数据Do的第一部分P1、位b191~128中的内容为输出数据Do的第二部分P2、位b127~b64中的内容为输出数据Do的第三部分P3、位b63~b0中的内容为输出数据Do的第四部分P4。
再者,顺序逻辑电路320可进行顺序调整程序。如图3A所示,第一部分P1与第二部分P2对调,且第三部分P3与第四部分P4对调后,产生随机码Code_r并储存于缓存器324。因此,于顺序调整程序程序后,缓存器324中位b255~b192中的内容为输出数据Do的第二部分P2、位b191~128中的内容为输出数据Do的第一部分P1、位b127~b64中的内容为输出数据Do的第四部分P4、位b63~b0中的内容为输出数据Do的第三部分P3。
当然,上述的顺序调整程序仅是一个示例。在此领域的技术人员也可以基于对称性交换(symmetric swapping)来设计其他顺序调整程序。举例来说,于进行顺序调整程序时,将输出数据Do的第四部分P4与第一部分P1对调,且第三部分P3与第二部分P2对调。之后,产生随机码Code_r。
请参照图3B,其所绘示为顺序逻辑电路的再一示例。顺序逻辑电路220基于非对称性交换来进行顺序调整程序。顺序逻辑电路330包括三个缓存器332、334、336与多个互斥或门8000~8255。缓存器332接收输出数据Do,位b255~位b0中的内容为p255~p0。再者,缓存器334接收第一乱度密钥Key_1。
如图3B所示,由第一乱度密钥Key_1中取出一字节(byte),并与缓存器332的位b255~b0进行互斥或运算并形成新的位。
举例来说,假设由第一乱度密钥Key_1中取出的一字节(byte)为“10101010”时,位b255(“11111111”)与第一乱度密钥Key_1(“10101010”)进行互斥或运算后为位b85(“01010101”),所以缓存器336中位b58的内容储存p255。位b254(“11111110”)与第一乱度密钥Key_1(“10101010”)进行互斥或运算后为位b84(“01010100”),所以缓存器336中位b54的内容储存p254。位b1(“00000001”)与第一乱度密钥Key_1(“10101010”)进行互斥或运算后为位b171(“10101011”),所以缓存器336中位b171的内容储存p1。位b0(“00000000”)与第一乱度密钥Key_1(“10101010”)进行互斥或运算后为位b170(“10101010”),所以缓存器336中位b170的内容储存p0。其余依此类推,不再赘述。
因此,于进行顺序调整程序后,缓存器336中的内容即为随机码Code_r。
请参照图3C,其所绘示为顺序逻辑电路的又一示例。顺序逻辑电路340同时基于对称性交换或者非对称性交换来进行顺序调整程序。顺序逻辑电路340包括三个缓存器342、344、346以及一对照表(look up table)348。其中,缓存器342接收输出数据Do,缓存器344接收第一乱度密钥Key_1,缓存器346产生随机码Code_r。再者,对照表348中记录顺序逻辑电路340所使用的操作模式(operation mode)。
举例来说,根据对照表348的内容,当第一乱度密钥Key_1的数值为奇数时,顺序逻辑电路340基于对称性交换进行图3A所示的顺序调整程序来产生随机码Code_r。另外,当第一乱度密钥Key_1的数值为偶数时,顺序逻辑电路340基于非对称性交换进行图2A或图3B所示的顺序调整程序来产生随机码Code_r。
当然,照表348的内容并不限定于仅有二种操作模式。在此领域的技术人员可以设计更多的操作模式,运用于顺序逻辑电路340。
另外,本发明并不限定于图2B中纠结逻辑电路230的架构,以下另外提出其他架构的纠结逻辑电路。
请参照图4A,其所绘示为纠结逻辑电路的另一示例。纠结逻辑电路430中包括哈希电路432,且哈希电路432可进行一哈希函数(Hash Function,H(X))的运算。其中,哈希函数可将任意长度(arbitrary size)的数据映像至固定长度(fixed size)的哈希值(Hashvalue)。举例来说,哈希函数可为SHA-256哈希函数。也就是说,将任意长度的数据提供至SHA-256哈希函数后,SHA-256哈希函数即可产生256位哈希值,而265位的哈希值即可作为随机码Code_r。
如图4A所示,哈希电路432可接收输出数据Do,并对输出数据Do进行一哈希函数运算后,产生256位哈希值即作为随机码Code_r。亦即,随机码Code_r=H(Do)。
请参照图4B,其所绘示为纠结逻辑电路的另一示例。纠结逻辑电路440的哈希电路442先接收输出数据Do与第一乱度密钥Key_1,并分别对输出数据Do与第一乱度密钥Key_1进行哈希函数运算后,产生256位的第一哈希值H(Do)与256位的第二哈希值H(Key_1)。
接着,将第一哈希值H(Do)与第二哈希值H(Key_1)组成512位的合成数据(mergeddata)H(Do)+H(Key_1)。而哈希电路442再次接收512位的合成数据H(Do)+H(Key_1),并对合成数据H(Do)+H(Key_1)进行哈希函数运算后,产生256位第三哈希值H(H(Do)+H(Key_1))即作为随机码Code_r。亦即,随机码Code_r=H(H(Do)+H(Key_1))。
当然,图4B的纠结逻辑电路440也可以利用输出资料Do与更多的乱度密钥来进行哈希函数运算。举例来说,哈希电路442先各别对输出数据Do、第一乱度密钥Key_1、第二乱度密钥Key_2与第三乱度密钥Key_3进行哈希函数运算后,组成共1024位的合成数据。之后,将1024位的合成数据再次进行哈希函数运算后,产生256位的哈希值并作为随机码Code_r。
请参照图4C,其所绘示为纠结逻辑电路的再一示例。纠结逻辑电路450接收输出数据Do与第一乱度密钥Key_1,并将输出数据Do与第一乱度密钥Key_1进行互斥或运算后,产生256位的运算数据
Figure BDA0001912710780000091
接着,哈希电路452接收256位的运算数据
Figure BDA0001912710780000092
并进行哈希函数运算后,产生256位的哈希值
Figure BDA0001912710780000093
并作为随机码Code_r。亦即,随机码
Figure BDA0001912710780000094
当然,图4C的纠结逻辑电路450也可以利用输出资料Do与更多的乱度密钥来进行哈希函数运算。举例来说,纠结逻辑电路450接收输出数据Do、第一乱度密钥Key_1、第二乱度密钥Key_2、第三乱度密钥Key_3与第四乱度密钥Key_4,并对输出数据Do、第一乱度密钥Key_1、第二乱度密钥Key_2、第三乱度密钥Key_3与第四乱度密钥Key_4进行互斥或算后,产生256位的运算数据。之后,将256位的运算数据进行哈希函数运算后,产生256位的哈希值并作为随机码Code_r。
请参照图4D,其所绘示为纠结逻辑电路的又一示例。纠结逻辑电路460的哈希电路462先接收输出数据Do与第一乱度密钥Key_1,并分别对输出数据Do与第一乱度密钥Key_1进行哈希函数运算后,产生256位的第一哈希值H(Do)与256位的第二哈希值H(Key_1)。
接着,纠结逻辑电路460对第一哈希值H(Do)与第二哈希值H(Key_1)进行互斥或运算后,产生256位的随机码Code_r。
当然,图4D的纠结逻辑电路460也可以利用输出资料Do与更多的乱度密钥来进行哈希函数运算。举例来说,哈希电路462先各别对输出数据Do、第一乱度密钥Key_1、第二乱度密钥Key_2与第三乱度密钥Key_3进行哈希函数运算后,产生四笔256位的哈希值。之后,将四笔256位的哈希值进行互斥或运算后,产生256位的随机码Code_r。
另外,本发明并不限定于图2C中加密逻辑电路250的架构,以下另外提出其他架构的加密逻辑电路。
请参照图5,其所绘示为加密逻辑电路的另一示例。加密逻辑电路550包括二个缓存器554、556与一进阶加密标准电路(advanced encryption standard circuit,简称AES电路)552。缓存器554接收输出数据Do,且缓存器556接收第一乱度密钥Key_1。当加密逻辑电路550进行加密程序时,进阶加密标准电路552接收输出数据Do与第一乱度密钥Key_1后,产生随机码Code_r。
由以上的说明可知,第一实施例的随机码产生器100中,地址Y译码器105根据地址Y信号Addr_Y来动作Y控制线Y0~Y255,且地址X译码器106根据地址X信号Addr_X来动作X控制线X0~X255。
本发明更可对地址Y信号Addr_Y与地址X信号Addr_X进行打乱动作(scrambleaction),并以打乱的地址Y信号Addr_Y以及打乱的地址X信号Addr_X来动作Y控制线Y0~Y255与X控制线X0~X255。
请参照图6,其所绘示为本发明随机码产生器的第二实施例。随机码产生器600包括PUF乱度库110、地址Y译码器605、地址X译码器606、密钥储存电路630以及处理电路120。相较于第一实施例的随机码产生器100,第二实施例的随机码产生器600的差异在于地址Y译码器605、地址X译码器606与密钥储存电路630。以下仅说明地址Y译码器605、地址X译码器606与密钥储存电路630之间的运作关系,其他部分则不再赘述。
根据本发明的第二实施例,密钥储存电路630除了提供多个乱度密钥至处理电路120之外,更提供乱度密钥至地址Y译码器605与地址X译码器606。举例来说,密钥储存电路630提供第一乱度密钥Key_1至地址Y译码器605,并提供第二乱度密钥Key_2地址X译码器606。
再者,地址Y译码器605先对接收的地址Y信号Addr_Y与第一乱度密钥Key_1进行打乱动作后产生打乱的地址Y信号(scrambled address Y signal),而地址Y译码器605根据打乱的地址Y信号来动作Y控制线Y0~Y255。同理,地址X译码器606先对接收的地址X信号Addr_X与第二乱度密钥Key_2进行打乱动作后产生打乱的地址X信号(scrambled addressX signal),而地址X译码器606根据打乱的地址X信号来动作X控制线X0~X255。其中,打乱动作是将地址信号与乱度密钥进行互斥或运算(XOR operation)。
举例来说,假设第一乱度密钥Key_1为“11001100”,第二乱度密钥Key_2为“00111100”。当地址Y译码器605接收的地址Y信号Addr_Y为“01010101”时,则打乱的地址Y信号即为“10011001”,亦即(“11001100”⊕“01010101”=“10011001”),因此地址Y译码器605动作Y控制线Y153。
同理,当地址X译码器606接收的地址X信号Addr_X为“01010101”时,则打乱的地址X信号即为“01101001”,亦即(“00111100”⊕“01010101”=“01101001”),因此地址X译码器606动作X控制线X105。
由以上的说明可知,第二实施例的随机码产生器600中,利用密钥储存电路630所提供的乱度密钥来对地址Y信号Addr_Y与地址X信号Addr_X进行打乱动作。然而本发明定不限定于此。
请参照图7,其所绘示为本发明随机码产生器的第三实施例。随机码产生器700包括PUF乱度库110、地址Y译码器705、地址X译码器706、密钥储存电路130以及处理电路120。相较于第一实施例的随机码产生器100,第三实施例的随机码产生器700的差异在于地址Y译码器705与地址X译码器706。以下仅说明地址Y译码器705与地址X译码器706的运作关系,其他部分则不再赘述。
根据本发明的第三实施例,随机码产生器700的地址Y译码器705接收地址Y信号Addr_Y与第一挑战信号(challenging signal)Dc1,地址X译码器706接收地址X信号Addr_X与第二挑战信号Dc2。其中,第一挑战信号Dc1与第二挑战信号Dc2由随机码产生器700外部所输入。
再者,地址Y译码器705对地址Y信号Addr_Y与第一挑战信号Dc1进行打乱动作后产生打乱的地址Y信号,使得地址Y译码器705根据打乱的地址Y信号来动作Y控制线Y0~Y255。同理,地址X译码器706对地址X信号Addr_X与第二挑战信号Dc2进行打乱动作后产生打乱的地址X信号,使得地址X译码器706根据打乱的地址X信号来动作X控制线X0~X255。相同地,打乱动作是将地址信号与挑战信号进行互斥或运算,其详细动作不再赘述。
再者,本发明的随机码产生器更可以连续地产生随机码流(random codestream)。请参照图8,其所绘示为本发明随机码产生器的第四实施例。随机码产生器800包括PUF乱度库110、地址Y译码器805、地址Y产生器807、地址X译码器806、地址X产生器808、密钥储存电路130以及处理电路120。
相较于第一实施例的随机码产生器100,第四实施例的随机码产生器800的差异在于地址Y译码器805、地址Y产生器807、地址X译码器806、地址X产生器808。以下仅说明地址Y译码器805、地址Y产生器807、地址X译码器806、地址X产生器808的运作关系,其他部分则不再赘述。
根据本发明的第四实施例,地址Y产生器807接收频率信号CLK1,并产生地址Y信号Addr_Y至地址Y译码器805。地址X产生器808接收频率信号CLK2,并产生地址X信号Addr_X至地址X译码器806。因此,地址Y产生器807可根据频率信号CLK1持续地产生地址Y信号Addr_Y;而地址X产生器808可根据频率信号CLK2持续地产生地址X信号Addr_X。
其中,地址Y产生器807与地址X产生器806可由线性反馈移位寄存器(linearfeedback shift register,简称LFSR),使得地址Y产生器807产生随机的地址Y信号Addr_Y,且地址X产生器808产生随机的地址X信号Addr_X。因此,随着频率信号CLK1与频率信号CLK2的变化,处理电路120即可产生随机码流(random code stream)。
当然,除了利用线性反馈移位寄存器来实现之外,地址Y产生器807与地址X产生器806也可由确定性随机数发生器(deterministic random bit generator,简称DRBG)来实现,亦可使地址Y产生器807产生随机的地址Y信号Addr_Y,且地址X产生器808产生随机的地址X信号Addr_X。
由以上的说明可知,本发明提出一种随机码产生器。由PUF乱度库110所产生的输出数据Do会经由处理电路120进一步处理成为随机码Code_r。由于PUF乱度库110所产生的输出数据Do不会被作为随机码,因此随机码不容易被破解并使得半导体芯片具有较佳的数据安全防护能力(data security)。
综上所述,虽然本发明已以实施例公开如上,然其并非用以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明之精神和范围内,当可作各种之更动与润饰。因此,本发明所要求的保护范围当以权利要求限定为准。

Claims (20)

1.一种随机码产生器,包括:
一地址Y译码器,具有多条Y控制线,且该地址Y译码器根据一第一地址Y信号来选择性地动作该些Y控制线;
一地址X译码器,具有多条X控制线,且该地址X译码器根据一第一地址X信号来选择性地动作该些X控制线;
一PUF乱度库,连接至该些Y控制线与该些X控制线,其中该PUF乱度库根据动作的Y控制线与X控线来产生一输出数据;
一处理电路,连接至该PUF乱度库以接收该输出数据;以及
一密钥储存电路,连接至该PUF乱度库以接收多个乱度密钥;
其中,于该随机码产生器的一正常运作时,该密钥储存电路提供至少一乱度密钥至该处理电路,使得该处理电路根据该至少一乱度密钥来处理该输出数据并产生一随机码;
其中,该地址Y译码器接收一第二地址Y信号并进行一打乱动作后产生该第一地址Y信号;以及,该地址X译码器接收一第二地址X信号并进行该打乱动作后产生该第一地址X信号。
2.如权利要求1所述的随机码产生器,其中于该随机码产生器的一初始化运作时,该PUF乱度库提供该些乱度密钥至该密钥储存电路。
3.如权利要求1所述的随机码产生器,其中该处理电路包括一顺序逻辑电路,接收该输出数据与一第一乱度密钥并产生一顺序调整数据。
4.如权利要求3所述的随机码产生器,其中该处理电路包括一纠结逻辑电路,接收该顺序调整数据与一第二乱度密钥并产生一纠结数据。
5.如权利要求4所述的随机码产生器,其中该处理电路包括一加密逻辑电路,接收该纠结数据与一第三乱度密钥并产生一加密数据,且该加密数据为该随机码。
6.如权利要求3所述的随机码产生器,其中该处理电路包括一加密逻辑电路,接收该顺序调整数据与一第二乱度密钥并产生一加密数据。
7.如权利要求6所述的随机码产生器,其中该处理电路包括一纠结逻辑电路,接收该加密数据与一第三乱度密钥并产生一纠结数据,且该纠结数据为该随机码。
8.如权利要求1所述的随机码产生器,其中该处理电路包括一纠结逻辑电路,接收该输出数据与一第一乱度密钥并产生一纠结数据。
9.如权利要求8所述的随机码产生器,其中该处理电路包括一顺序逻辑电路,接收该纠结数据与一第二乱度密钥并产生一顺序调整数据。
10.如权利要求9所述的随机码产生器,其中该处理电路包括一加密逻辑电路,接收该顺序调整数据与一第三乱度密钥并产生一加密数据,且该加密数据为该随机码。
11.如权利要求8所述的随机码产生器,其中该处理电路包括一加密逻辑电路,接收该纠结数据与一第二乱度密钥并产生一加密数据。
12.如权利要求11所述的随机码产生器,其中该处理电路包括一顺序调整电路,接收该加密数据与一第三乱度密钥并产生一顺序调整数据,且该顺序调整数据为该随机码。
13.如权利要求1所述的随机码产生器,其中该处理电路包括一加密逻辑电路,接收该输出数据与一第一乱度密钥并产生一加密数据。
14.如权利要求13所述的随机码产生器,其中该处理电路包括一顺序逻辑电路,接收该加密数据与一第二乱度密钥并产生一顺序调整数据。
15.如权利要求14所述的随机码产生器,其中该处理电路包括一纠结逻辑电路,接收该顺序调整数据与一第三乱度密钥并产生一纠结数据,且该纠结数据为该随机码。
16.如权利要求13所述的随机码产生器,其中该处理电路包括一纠结逻辑电路,接收该加密数据与一第二乱度密钥并产生一纠结数据。
17.如权利要求16所述的随机码产生器,其中该处理电路包括一顺序调整电路,接收该纠结数据与一第三乱度密钥并产生一顺序调整数据,且该顺序调整数据为该随机码。
18.如权利要求1所述的随机码产生器,其中该地址Y译码器与该地址X译码器连接至该密钥储存电路;该地址Y译码器接收该第二地址Y信号与一第一乱度密钥并进行该打乱动作后产生该第一地址Y信号;以及,该地址X译码器接收该第二地址X信号与一第二乱度密钥并进行该打乱动作后产生该第一地址X信号。
19.如权利要求1所述的随机码产生器,其中该地址Y译码器接收该第二地址Y信号与一第一挑战信号并进行该打乱动作后产生该第一地址Y信号;以及,该地址X译码器接收该第二地址X信号与一第二挑战信号并进行该打乱动作后产生该第一地址X信号。
20.一种随机码产生器,包括:
一地址Y译码器,具有多条Y控制线,且该地址Y译码器根据一第一地址Y信号来选择性地动作该些Y控制线;
一地址X译码器,具有多条X控制线,且该地址X译码器根据一第一地址X信号来选择性地动作该些X控制线;
一PUF乱度库,连接至该些Y控制线与该些X控制线,其中该PUF乱度库根据动作的Y控制线与X控线来产生一输出数据;
一处理电路,连接至该PUF乱度库以接收该输出数据;以及
一密钥储存电路,连接至该PUF乱度库以接收多个乱度密钥;
其中,于该随机码产生器的一正常运作时,该密钥储存电路提供至少一乱度密钥至该处理电路,使得该处理电路根据该至少一乱度密钥来处理该输出数据并产生一随机码;
其中,该地址Y译码器连接至一地址Y产生器以接收该第一地址Y信号;该地址X译码器连接至一地址X产生器以接收该第一地址X信号;且该地址Y产生器与该地址X产生器为一确定性随机数发生器或者一线性反馈移位寄存器。
CN201811558790.XA 2018-01-10 2018-12-19 随机码产生器 Active CN110018810B (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201862615463P 2018-01-10 2018-01-10
US62/615,463 2018-01-10
US201862659150P 2018-04-18 2018-04-18
US62/659,150 2018-04-18
TW107141885 2018-11-23
TW107141885A TWI696111B (zh) 2018-01-10 2018-11-23 隨機碼產生器

Publications (2)

Publication Number Publication Date
CN110018810A CN110018810A (zh) 2019-07-16
CN110018810B true CN110018810B (zh) 2021-05-18

Family

ID=65013525

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811558790.XA Active CN110018810B (zh) 2018-01-10 2018-12-19 随机码产生器

Country Status (4)

Country Link
US (1) US11070383B2 (zh)
EP (1) EP3512157B1 (zh)
JP (1) JP6714735B2 (zh)
CN (1) CN110018810B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11265151B2 (en) 2018-03-09 2022-03-01 Arizona Board Of Regents On Behalf Of Northern Arizona University Key exchange schemes with addressable elements
US11294640B2 (en) * 2019-03-13 2022-04-05 Ememory Technology Inc. Random number generator
US11381394B2 (en) * 2019-07-25 2022-07-05 PUFsecurity Corporation High speed encryption key generating engine
CN111490874B (zh) * 2020-04-16 2022-09-06 广东纬德信息科技股份有限公司 一种配网安全防护方法、系统、装置及存储介质
KR20210129370A (ko) 2020-04-20 2021-10-28 삼성전자주식회사 메모리 모듈 및 적층형 메모리 장치
US11211110B1 (en) * 2020-08-27 2021-12-28 Micron Technology, Inc. Apparatuses, systems, and methods for address scrambling in a volatile memory device
US20210119812A1 (en) * 2020-12-23 2021-04-22 Intel Corporation Time-based multi-dimensional key recreation mechanism using puf technologies

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5943283A (en) * 1997-12-05 1999-08-24 Invox Technology Address scrambling in a semiconductor memory
EP1359550A1 (fr) * 2001-11-30 2003-11-05 STMicroelectronics S.A. Régéneration d'une quantité secrète à partir d'un identifiant d'un circuit intégré
JP2011257911A (ja) 2010-06-08 2011-12-22 Sec Corp ファイルセキュリティ維持方法及びファイルセキュリティ維持装置
JP5710460B2 (ja) 2011-12-16 2015-04-30 株式会社東芝 暗号化鍵生成装置およびプログラム
CN102710251A (zh) * 2012-05-28 2012-10-03 宁波大学 一种puf电路单元
KR102083271B1 (ko) * 2012-07-31 2020-03-02 삼성전자주식회사 플래시 메모리의 물리적 특성을 이용하여 난수를 생성하는 플래시 메모리 시스템 및 그것의 난수 생성 방법
US20140042627A1 (en) * 2012-08-09 2014-02-13 International Business Machines Corporation Electronic structure containing a via array as a physical unclonable function
KR102201062B1 (ko) * 2012-10-04 2021-01-11 인트린직 아이디 비브이 물리적 복제방지 기능으로서 이용되는 메모리로부터 암호 키를 생성하기 위한 시스템
US9792089B2 (en) * 2013-09-10 2017-10-17 Verayo, Inc. Random number generator using an incrementing function
KR102198499B1 (ko) * 2013-12-31 2021-01-05 주식회사 아이씨티케이 홀딩스 디지털 값 처리 장치 및 방법
EP3114690B1 (en) * 2014-03-07 2020-02-12 Intel Corporation Physically unclonable function circuit using resistive memory device
US9202554B2 (en) * 2014-03-13 2015-12-01 International Business Machines Corporation Methods and circuits for generating physically unclonable function
US9485094B1 (en) * 2014-04-21 2016-11-01 Maxim Integrated Products, Inc. Systems and methods for stable physically unclonable functions
KR102201642B1 (ko) * 2014-11-28 2021-01-13 삼성전자주식회사 Puf 회로 및 그것의 키 등록 방법
JP6587188B2 (ja) 2015-06-18 2019-10-09 パナソニックIpマネジメント株式会社 乱数処理装置、集積回路カード、および乱数処理方法
JP2017118229A (ja) * 2015-12-22 2017-06-29 ソニー株式会社 情報処理装置、情報処理方法、プログラム
US9613714B1 (en) 2016-01-19 2017-04-04 Ememory Technology Inc. One time programming memory cell and memory array for physically unclonable function technology and associated random code generating method
US10146464B2 (en) * 2016-06-30 2018-12-04 Nxp B.V. Method for performing multiple enrollments of a physically uncloneable function
US10911229B2 (en) * 2016-08-04 2021-02-02 Macronix International Co., Ltd. Unchangeable physical unclonable function in non-volatile memory
US10547460B2 (en) * 2016-11-18 2020-01-28 Qualcomm Incorporated Message-based key generation using physical unclonable function (PUF)
US11050575B2 (en) * 2018-01-10 2021-06-29 Ememory Technology Inc. Entanglement and recall system using physically unclonable function technology

Also Published As

Publication number Publication date
EP3512157B1 (en) 2021-11-03
CN110018810A (zh) 2019-07-16
US20190215168A1 (en) 2019-07-11
EP3512157A1 (en) 2019-07-17
US11070383B2 (en) 2021-07-20
JP2019121403A (ja) 2019-07-22
JP6714735B2 (ja) 2020-06-24

Similar Documents

Publication Publication Date Title
CN110018810B (zh) 随机码产生器
US8799679B2 (en) Message authentication code pre-computation with applications to secure memory
US9465961B2 (en) Methods and circuits for securing proprietary memory transactions
EP3709157B1 (en) Random number generator
JP4758904B2 (ja) 機密情報処理方法
US11258579B2 (en) Method and circuit for implementing a substitution table
KR100849956B1 (ko) 반도체 장치 및 그것의 스크램블된 데이터 전송 방법
US11763867B2 (en) PUF applications in memories
JP2010252305A (ja) 半導体集積回路及びその制御方法
CN213876729U (zh) 一种ssd主控芯片随机缓存保密电路
US11050575B2 (en) Entanglement and recall system using physically unclonable function technology
US8707057B2 (en) Data processing apparatus and data processing method
CN110020556B (zh) 使用物理不可复制技术的纠缠与取回系统
CN116628776A (zh) 存储器装置以及存储器芯片的存储器阵列信息的读取方法
TWI696111B (zh) 隨機碼產生器
CN110287708B (zh) 一次性可编程加密装置与其加密方法
JP4922123B2 (ja) メモリシステム及びデータ保護方法
US11121884B2 (en) Electronic system capable of self-certification
US20230281305A1 (en) Method for protecting against side-channel attacks
TW202333077A (zh) 記憶體裝置以及記憶體晶片的記憶體陣列資訊的讀取方法
Labbe et al. Efficient hardware implementation of a CRYPTO-MEMORY based on AES algorithm and SRAM architecture
JPH04184476A (ja) 情報暗号化/復号化装置
CN115618372A (zh) 实现芯片中数据的保护方法、装置和芯片

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