CN110287708B - 一次性可编程加密装置与其加密方法 - Google Patents
一次性可编程加密装置与其加密方法 Download PDFInfo
- Publication number
- CN110287708B CN110287708B CN201810224134.XA CN201810224134A CN110287708B CN 110287708 B CN110287708 B CN 110287708B CN 201810224134 A CN201810224134 A CN 201810224134A CN 110287708 B CN110287708 B CN 110287708B
- Authority
- CN
- China
- Prior art keywords
- data
- encryption
- circuit
- key
- sub
- 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
Links
Images
Classifications
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
Abstract
一种一次性可编程加密装置与其加密方法。一次性可编程加密装置包括处理器电路、加密引擎电路,以及存储器电路。处理器电路输出明文数据与写入地址。加密引擎电路包括密钥记录电路、填充电路、第一加密电路,以及第二加密电路。密钥记录电路输出原始密钥。填充电路接收写入地址,利用预设数据扩充写入地址而输出填充数据。第一加密电路接收原始密钥与填充数据,依据填充数据对原始密钥进行第一加密逻辑运算,以输出加密密钥。第二加密电路接收加密密钥与明文数据,依据加密密钥对明文数据进行第二加密逻辑运算,以输出密文数据。存储器电路接收密文数据,并依据写入地址储存密文数据。
Description
技术领域
本发明是有关于数据加密技术,且特别是有关于一种一次性可编程加密装置与其加密方法。
背景技术
加解密技术用来确保消息传输与数据保存的安全性(security)。在一般的加密技术中,机密数据会经由加密运算而成为密文数据,此种密文数据可进一步被传送或储存于存储器装置中。基此,知道加密运算之密钥与算法的硬件装置才有办法对密文数据进行解密。
加解密技术被广泛地应用在无线通讯系统以及数据储存系统里,但存在攻击者恶意对其进行破解的风险。旁路分析(side-channel analysis)就是利用硬件在加解密时,通道上所泄露的电气特性来尝试破解加密算法。进一步来说,硬件在加解密运算时的电力消耗、电磁波、电流状态等电气特性都有可能提供对破解加解密算法有帮助的信息。举例而言,当晶片执行加解密运算时,对于不同的明文数据与密钥,通道上所产生的旁路信息也会相对应的变化。因此,攻击者可尝试利用大量的输入数据驱动晶片执行加解密运算,并透过特殊的电子测量仪器(像是,微波仪器)来测量晶片周围的电磁辐射变化或测量功率针脚(power pin)上的电流变化。接着,攻击者可进一步对上述量测资讯进行数学统计分析,从而达到还原密钥或取得晶片里的机密数据的目的。因此,如何能有效地防御旁路分析的攻击,实为此技术领域者所关注的重点之一。
发明内容
有鉴于此,本发明提供一种一次性可编程加密装置与其加密方法,其可透过对原始密钥进行加密而有效防御旁路分析的攻击。
本发明的一实施例提供一种一次性可编程加密装置,其包括处理器电路、加密引擎电路,以及存储器电路。处理器电路输出明文数据与写入地址。加密引擎电路包括密钥记录电路、填充电路、第一加密电路,以及第二加密电路。密钥记录电路输出原始密钥。填充电路接收上述写入地址,利用预设数据扩充上述写入地址而输出填充数据。第一加密电路接收上述原始密钥与上述填充数据,依据上述填充数据对上述原始密钥进行第一加密逻辑运算,以输出加密密钥。此外,第二加密电路接收上述加密密钥与上述明文数据,依据上述加密密钥对上述明文数据进行第二加密逻辑运算,以输出密文数据。存储器电路接收上述密文数据,并依据上述写入地址储存上述密文数据。
从另一观点来看,本发明提出一种加密方法,所述方法包括下列步骤。由处理器电路输出明文数据与写入地址;由密钥记录电路输出原始密钥;由填充电路利用预设数据扩充上述写入地址而输出填充数据;由第一加密电路依据上述填充数据对上述原始密钥进行第一加密逻辑运算,以输出加密密钥;由第二加密电路依据上述加密密钥对上述明文数据进行第二加密逻辑运算,以输出密文数据;以及由存储器电路依据上述写入地址储存上述密文数据。
基于上述,在本发明的一实施例中,可依据写入地址产生的填充数据来进一步加密原始密钥,以产生加密密钥。据此,透过使用加密密钥来对明文数据进行加密,攻击者难以依据量测到的旁路信息来破解出原始密钥,从而有效提升加解密技术的安全性。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图式作详细说明如下。
附图说明
图1是根据本发明的一实施例所绘示的一次性可编程加密装置示意图。
图2是根据本发明的一实施例所绘示的一次性可编程加密装置的示意图。
图3是根据本发明的一实施例所绘示的一次性可编程加密装置的示意图。
图4是根据本发明的一实施例所绘示的加密方法的流程图。
图5是根据本发明的一实施例所绘示的一次性可编程加密装置的示意图。
附图标记说明
10、20:一次性可编程加密装置 112_1:第一子填充电路
120:处理器电路 112_2:第二子填充电路
110:加密引擎电路 112_3:第一切换电路
130:存储器电路 113_1:加密逻辑电路
111:密钥记录电路 113_2:第二切换电路
112:填充电路 113_3:组合电路
113:第一加密电路 P_d:明文数据
114:第二加密电路 ADDR:写入地址
140:地址判断电路 Org_k:原始密钥
150:锁定状态寄存器 PAD_d:填充数据
160:系统配置寄存器 L_b:锁定位元
115:选择器 E_ens:加密致能信号
Encr_k:加密密钥 Encr_d:密文数据
CNT:计数信号 L_k:低位元加密钥
PAD_d1:第一子填充数据 H_k:高位元加密钥
PAD_d2:第二子填充数据
S401~S406:步骤
具体实施方式
现将详细参考本示范性实施例,在附图中说明所述示范性实施例之实例。另外,凡可能之处,在图式及实施方式中使用相同标号的元件/构件代表相同或类似部分。
图1是根据本发明的一实施例所绘示的一次性可编程加密装置示意图。请参照图1,一次性可编程(One Time Programmable,OTP)加密装置10包括加密引擎电路110、处理器电路120,以及存储器电路130。
处理器电路120可以是通用处理器或安全处理器,可对存储器电路130进行存取,并产生未加密的明文数据(Plain data)P_d。处理器电路120输出明文数据P_d与写入地址ADDR至加密引擎电路110。加密引擎电路110可基于写入地址ADDR对明文数据P_d进行加密而产生密文数据Encr_d,致使存储器电路130依据处理器电路120决定的写入地址ADDR来储存密文数据Encr_d。亦即,明文数据P_d所携带的资讯是以经过加密的方式保存,从而达到保护明文数据P_d的目的。
存储器电路130例如是唯读存储器(Read only memory)或快闪式存储器(Flashmemory)等等。需特别说明的是,于一实施例中,存储器电路130可包括一次性可编程存储器(One Time Programmable Memory,OTP memory)。
更详细而言,在一实施例中,加密引擎电路110包括密钥记录电路111、填充电路112、第一加密电路113,以及第二加密电路114。密钥记录电路111为储存至少一把原始密钥Org_k的一种存储器电路,而原始密钥Org_k是一种不会更动的预设密钥。
填充电路112接收写入地址ADDR,并利用一笔预设数据扩充写入地址ADDR而输出填充数据PAD_d。举例而言,在一实施例中,位元长度为A1的写入地址ADDR可被扩充为位元长度为(A1+c)的填充数据PAD_d,其中c为预设数据的位元长度。填充电路112可将预设数据的各位元与写入地址ADDR的各位元进行混合以产生填充数据PAD_d。
于一实施例中,填充电路112可将预设数据设定为填充数据PAD_d的高位元部份,并将写入地址ADDR设定为填充数据PAD_d的低位元部份。举例而言,填充电路112例如为一个寄存器,此寄存器的高位元区块记录有预设数据的各个位元数据。透过将当前接收到的写入地址ADDR记录至此寄存器的低位元区块,填充电路112可据以输出填充数据PAD_d。或者,于一实施例中,填充电路112可将预设数据设定为填充数据PAD_d的低位元部份,并将写入地址ADDR设定为填充数据PAD_d的高位元部份。又或者,于一实施例中,填充电路112也可将预设数据的位元与写入地址ADDR的位元进行交叉排列而产生填充数据PAD_d。
密钥记录电路111输出原始密钥Org_k。第一加密电路113接收原始密钥Org_k与填充数据PAD_d,依据填充数据PAD_d对原始密钥Org_k进行第一加密逻辑运算,以输出加密密钥Encr_k。于一实施例中,第一加密电路113可由软件与硬件电路的组合实作而得,在此不加以限制。本发明对于第一加密电路113所进行的第一加密逻辑运算也不加以限制,可视实际应用而选择任何可加扰数据的逻辑运算,其例如是基于数据加解密算法(dataencryption standard,DES)、三重数据加解密算法(3-DES)、先进加解密算法(AdvancedEncryption Standard,AES)、或杂凑消息鉴别码算法(Hash message authenticationcode,HMAC)等等的数据加扰逻辑运算。
于一实施例中,填充数据PAD_d的位元长度与原始密钥Org_k的位元长度相同。举例而言,当原始密钥Org_k的位元长度为128bits,则填充电路112可将位元长度例如为12bits的写入地址ADDR扩充为位元长度为128bits的填充数据PAD_d。
第二加密电路114接收加密密钥Encr_k与明文数据P_d,并依据加密密钥Encr_k对明文数据P_d进行第二加密逻辑运算,以输出密文数据Encr_d。于是,存储器电路130可接收密文数据Encr_d,并依据写入地址ADDR来储存密文数据Encr_d。相似的,于一实施例中,第二加密电路114可由软件与硬件电路的组合实作而得,在此不加以限制。本发明对于第二加密电路114所进行的第二加密逻辑运算也不加以限制,可视实际应用而选择任何可加扰数据的逻辑运算,其例如是基于数据加解密算法(DES)、三重数据加解密算法(3-DES)、先进加解密算法(AES)或杂凑消息鉴别码算法(HMAC)等等的数据加扰逻辑运算,本发明对此并不限制。另外需要说明的是,第一加密电路113与第二加密电路114可使用相同或相异的加密算法(亦即使用相同的数据加扰逻辑运算)。
于图1的实施范例中,原始密钥Org_k不直接作为用以加密明文数据P_d的密钥,而是采用经过加密的加密密钥Encr_k来加密明文数据P_d。如此,纵使攻击者利用特殊电子仪器测量旁路信息,也难以透过旁路分析来推导出原始密钥Org_k,从而大幅降低原始密钥Org_k被破解成功的机率。
需特别说明的是,当存储器电路130为一次性可编程存储器,其仅允许一次性的编程写入,一旦数据写入之后就不能再抹除改写。因此,对于存储器电路130的写入操作是有管制的,以避免将数据重复写入相同的存储器地址。进一步而言,当外部装置想要将数据写入至存储器电路130时,写入地址需要被检查,以确认此存储器写入操作的合法性。因此,攻击者将难以针对单一写入地址输入大量资讯来进行攻击,以下将列举实施例以说明。
图2是根据本发明的一实施例所绘示的一次性可编程加密装置的示意图。请参照图2,一次性可编程(One Time Programmable,OTP)加密装置20包括处理器电路120、加密引擎电路110存储器电路130、地址判断电路140、锁定状态寄存器150,以及系统配置寄存器160。
处理器电路120输出明文数据P_d与写入地址ADDR至地址判断电路140。地址判断电路140依据写入地址ADDR对应的锁定位元L_b判断写入地址ADDR是否为合格存取地址。上述的合格存取地址代表一种允许写入操作的存储器地址,而所谓的写入地址ADDR为合格存取地址代表写入地址ADDR为允许写入操作的存储器位置。具体而言,锁定状态寄存器150记录存储器电路130的存储器地址所对应的锁定位元,而锁定位元用以表示存储器地址的锁定状态。当地址判断电路140收到写入地址ADDR时,地址判断电路140可依据写入地址ADDR查询写入地址ADDR的锁定位元L_b,使锁定状态寄存器150回复写入地址ADDR的锁定位元L_b给地址判断电路140。于是,地址判断电路140可依据写入地址ADDR的锁定位元L_b来判断写入地址ADDR是否为合格存取地址。例如,当写入地址ADDR的锁定位元L_b为‘0’,代表此写入地址ADDR是处于禁止写入的状态,因此被判定为非合格存取地址(亦即写入地址ADDR被判定为不为合格存取地址)。当写入地址ADDR的锁定位元L_b为‘1’,代表此写入地址ADDR是处于允许写入的状态,因此被判定为合格存取地址。
于是,若写入地址ADDR为合格存取地址,地址判断电路140致能输出写入地址ADDR与明文数据P_d。相反的,若写入地址ADDR为非合格存取地址,地址判断电路140禁能输出写入地址ADDR与明文数据P_d。换言之,若写入地址ADDR是处于允许写入的状态,加密引擎电路110将进一步进行明文数据P_d的加密。若写入地址ADDR是处于禁止写入的状态,处理器电路120所发出的写入请求将被忽略,而加密引擎电路110也不会进行明文数据P_d的加密。
假设写入地址ADDR为合格存取地址,填充电路112可接收写入地址ADDR并将写入地址ADDR扩充为位元数较长之填充数据PAD_d,与图1所示的范例相似,填充电路112利用预设数据扩充写入地址ADDR而输出填充数据PAD_d。第一加密电路113依据填充数据PAD_d对原始密钥Org_k进行第一加密逻辑运算,以输出加密密钥Encr_k。且第二加密电路114利用加密密钥Encr_k对明文数据P_d进行第二加密逻辑运算,以输出密文数据Encr_d。
由此可见,于一实施例中,当存储器电路130为OTP存储器,在处理器电路120将加密数据Encr_d写入至一特定写入地址(于此以“address_1”表示)之后,锁定状态器存器150中存储器地址“address_1”的锁定位元将被更改为禁止写入的位元状态。之后,针对此特定写入地址“address_1”的写入动作将被禁止。如此一来,攻击者将难以针对单一写入地址输入大量资讯来进行攻击。
值得一提的是,于一实施例中,存储器电路130的某些存储器位置的写入操作可不用进行数据加密。也就是说,针对特定的存储器位置,数据加密处理是可以被选择性地启用或禁用。一般而言,通过数据加密来保护的高机密性数据的储存位置是被规定的。这些高机密性数据通过数据加密处理后,将被保存至经过事先配置的存储器位置。
于是,于图2的实施范例中,加密引擎电路110更包括选择器115。选择器115接收加密致能信号E_ens、密文数据Encr_d与明文数据P_d。选择器115依据加密致能信号E_ens的输出准位选择输出密文数据Encr_d或明文数据P_d至存储器电路130。加密致能信号E_ens的输出准位将依据写入地址ADDR是否为经过事先配置的预定存储器位置而定,而所谓经过事先配置的预定存储器位置包括至少一安全数据地址。
详细而言,系统配置寄存器160记录有至少一安全数据地址,依据写入地址ADDR是否符合至少一安全数据地址而决定加密致能信号E_ens的输出准位,并据以输出加密致能信号E_ens。因此,若写入地址ADDR符合系统配置寄存器160所记录的至少一安全数据地址,存储器电路130可接收密文数据Encr_d,并依据写入地址ADDR储存密文数据Encr_d。相反的,若写入地址ADDR不符合系统配置寄存器160所记录的至少一安全数据地址,存储器电路130可接收明文数据P_d,并依据写入地址ADDR储存明文数据P_d。换言之,若写入地址ADDR符合安全数据地址,则加密引擎电路110可输出密文数据Encr_d;若写入地址ADDR不符合安全数据地址,则加密引擎电路110输出明文数据P_d。
以下将进一步列举其他范例说明加密引擎电路如何产生加密密钥。图3是根据本发明的一实施例所绘示的一次性可编程加密装置的示意图。于图3的范例中,写入地址可先被扩充为两笔子填充数据。接着,透过分别针对两笔子填充数据进行加密运算,可取得组成加密密钥的高位元加密密钥与低位元加密密钥,从而组合为完整的加密密钥。
详细而言,请参照图3,填充电路112可包括第一子填充电路112_1、第二子填充电路112_2,以及第一切换电路112_3。预设数据包括第一预设位元序列与第二预设位元序列。第一子填充电路112_1及第二子填充电路112_2分别接收写入地址ADDR,并分别利用第一预设位元序列以及第二预设位元序列扩充写入地址ADDR而输出填充数据中的第一子填充数据PAD_d1及第二子填充数据PAD_d2。第一子填充电路112_1与第二子填充电路112_2产生第一子填充数据PAD_d1与第二子填充数据PAD_d2的方式可参照图1范例中填充电路112产生填充数据PAD_d的说明,于此不再赘述。
第一切换电路112_3依据一计数信号CNT依序输出填充数据中的第一子填充数据PAD_d1与第二子填充数据PAD_d2至第一加密电路113。
用以加密原始密钥Org_k的第一加密电路113可包括加密逻辑电路113_1、第二切换电路113_2,以及组合电路113_3。响应于第一切换电路112_3依序输出第一子填充数据PAD_d1与第二子填充数据PAD_d2,加密逻辑电路113_1依序接收第一子填充数据PAD_d1与第二子填充数据PAD_d2。加密逻辑电路113_1依据原始密钥Org_k分别对第一子填充数据PAD_d1与第二子填充数据PAD_d2进行第一加密逻辑运算,以依序输出高位元加密密钥H_k与低位元加密密钥L_k。
举例而言,在一实施例中,当计数信号CNT为低准位时,第一切换电路112_3输出第一子填充数据PAD_d1,致使加密逻辑电路113_1接收第一子填充数据PAD_d1并对第一子填充数据PAD_d1进行第一加密逻辑运算,从而输出低位元加密钥L_k。当计数信号CNT为高准位时,第一切换电路112_3输出第二子填充数据PAD_d2,致使加密逻辑电路113_1接收第二子填充数据PAD_d2并对第二子填充数据PAD_d2进行第一加密逻辑运算,从而输出高位元加密密钥H_k。
对应的,响应于加密逻辑电路113_1依序输出高位元加密密钥H_k与低位元加密钥L_k,第二切换电路113_2可依序接收高位元加密密钥H_k与低位元加密密钥L_k。同样的,第二切换电路113_2可依据计数信号CNT而依序输出高位元加密密钥H_k与低位元加密密钥L_k至组合电路113_3。组合电路113_3将高位元加密密钥H_k与低位元加密密钥L_k组合为加密密钥Encr_k而输出至第二加密电路114。
于一实施例中,组合电路113_3可为记录加密密钥Encr_k的寄存器。第二切换电路113_2可将低位元加密钥L_k输出至组合电路113_3的低位元区块,并将高位元加密密L_k输出至组合电路113_3的高位元区块。藉此,组合电路113_3可将低位元加密密钥L_k与高位元加密密钥H_k组成的加密密钥Encr_k提供至第二加密电路114。
于一实施例中,第一子填充数据PAD_d1的位元长度与第二子填充数据PAD_d2的位元长度相同,且第一子填充数据PAD_d1的位元长度为原始密钥Org_k的位元长度的一半。举例而言,当原始密钥Org_k的位元长度为128bits,则第一子填充数据PAD_d1与第二子填充数据PAD_d2的位元长度为64bits。对应的,经加密处理的高位元加密密钥H_k与低位元加密密钥L_k的位元长度也同为64bits,从而组成位元长度为128bits的加密密钥Encr_k。然而,本发明并不限制于此,于其他实施例中,第一子填充数据PAD_d1的位元长度可相异于第二子填充数据PAD_d2的位元长度。
图4是根据本发明的一实施例所绘示的加密方法的流程图。本实施例的加密方法的相关实施细节以及相关装置特征可由上述关于图1至图3的各实施例的叙述当中,获得足够的教示、建议以及实施方式,在此不再加以赘述。
于步骤S401,由处理器电路输出明文数据与写入地址。于步骤S402,由密钥记录电路输出原始密钥。于步骤S403,由填充电路利用预设数据扩充写入地址而输出填充数据。于步骤S404,由第一加密电路依据填充数据对上述原始密钥进行第一加密逻辑运算,以输出加密密钥。于步骤S405,由第二加密电路依据加密密钥对明文数据进行第二加密逻辑运算,以输出密文数据。于步骤S406,由存储器电路依据写入地址储存密文数据。
然而,图3实施例是以将写入地址扩充为两笔子填充数据为例进行说明,但本发明并不限制于此。于一实施例中,加密密钥也可基于未被扩充的写入地址与一笔子填充数据而产生。图5是根据本发明的一实施例所绘示的一次性可编程加密装置的示意图。于图5的范例中,写入地址可先被扩充为一笔子填充数据。接着,透过分别针对子填充数据与写入地址进行加密运算,以取得组成加密密钥的高位元加密密钥与低位元加密密钥。
详细而言,请参照图5,填充电路112可包括第一子填充电路112_1以及第一切换电路112_3。第一子填充电路112_1及第一切换电路112_3分别接收写入地址ADDR。第一子填充电路112_1利用预设数据扩充写入地址ADDR而输出填充数据中的第一子填充数据PAD_d1。第一子填充电路112_1产生第一子填充数据PAD_d1的方式可参照图1范例中填充电路112产生填充数据PAD_d的说明,于此不再赘述。
第一切换电路112_3依据计数信号CNT依序输出填充数据中的第一子填充数据PAD_d1与写入地址ADDR至第一加密电路113。基此,第一加密电路113的加密逻辑电路113_1可依据原始密钥Org_k依序分别对第一子填充数据PAD_d1与未被扩充的写入地址ADDR进行第一加密逻辑运算,以依序输出高位元加密密钥H_k与低位元加密密钥L_k,从而使第一加密电路113可输出由高位元加密密钥H_k与低位元加密密钥L_k组合而成的加密密钥Encr_k至第二加密电路114。亦即,于图5所示的实施例中,加密密钥Encr_k可基于未被扩充的写入地址ADDR而产生。
综上所述,在本发明的一实施例中,原始密钥经由加密处理而产生另一把加密密钥,而明文数据是依据加密密钥进行加密,藉此使攻击者难以依据旁路通道分析来推导出原始密钥。此外,由于明文数据的写入地址是有管制的,因此攻击者也难以透过输入大量或单一写入地址来获取有用的旁路信息。另一方面,每次用以加密明文数据的加密密钥是依据对应的特定写入地址进行加密而个别产生,因此大幅提高破解加密密钥的难度。
虽然本发明已以实施例揭露如上,然其并非用以限定本发明,任何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视后附的权利要求所界定者为准。
Claims (20)
1.一种一次性可编程加密装置,其特征在于,包括:
一处理器电路,输出一明文数据与一写入地址;
一地址判断电路,接收该写入地址与该明文数据,依据该写入地址对应的锁定位元判断该写入地址是否为一合格存取地址,其中若该写入地址为该合格存取地址,该地址判断电路致能输出该写入地址与该明文数据;若该写入地址不为该合格存取地址,该地址判断电路禁能输出该写入地址与该明文数据;
一加密引擎电路,包括:
一密钥记录电路,输出一原始密钥;
一填充电路,接收该写入地址,利用一预设数据扩充该写入地址而输出一填充数据;
一第一加密电路,接收该原始密钥与该填充数据,依据该填充数据对该原始密钥进行第一加密逻辑运算,以输出一加密密钥;以及
一第二加密电路,接收该加密密钥与该明文数据,依据该加密密钥对该明文数据进行第二加密逻辑运算,以输出一密文数据;以及
一存储器电路,接收该密文数据,依据该写入地址储存该密文数据,其中该存储器电路包括一次性可编程存储器。
2.如权利要求1所述的一次性可编程加密装置,更包括:
一选择器,接收一加密致能信号、该密文数据与该明文数据,依据该加密致能信号的输出准位选择输出该密文数据或该明文数据至该存储器电路。
3.如权利要求2所述的一次性可编程加密装置,更包括:
一系统配置寄存器,记录有至少一安全数据地址,输出该加密致能信号,依据该写入地址是否符合该至少一安全数据地址而决定该加密致能信号的输出准位。
4.如权利要求1所述的一次性可编程加密装置,其中该预设数据包括一第一预设位元序列与第二预设位元序列,而该填充电路包括:
一第一子填充电路,接收该写入地址,利用该第一预设位元序列扩充该写入地址而输出该填充数据的一第一子填充数据;
一第二子填充电路,接收该写入地址,利用该第二预设位元序列扩充该写入地址而输出一第二子填充数据;以及
一第一切换电路,接收一计数信号,依据该计数信号依序输出该填充数据中的该第一子填充数据与该第二子填充数据至该第一加密电路。
5.一种一次性可编程加密装置,其特征在于,包括:
一处理器电路,输出一明文数据与一写入地址;
一加密引擎电路,包括:
一密钥记录电路,输出一原始密钥;
一填充电路,接收该写入地址,利用一预设数据扩充该写入地址而输出一填充数据;
一第一加密电路,接收该原始密钥与该填充数据,依据该填充数据对该原始密钥进行第一加密逻辑运算,以输出一加密密钥;以及
一第二加密电路,接收该加密密钥与该明文数据,依据该加密密钥对该明文数据进行第二加密逻辑运算,以输出一密文数据;以及
一存储器电路,接收该密文数据,依据该写入地址储存该密文数据,
其中该第一加密电路包括:
一加密逻辑电路,依序接收该填充数据的第一子填充数据与该填充数据的第二子填充数据,依据该原始密钥分别对该第一子填充数据与该第二子填充数据进行该第一加密逻辑运算,以依序输出一高位元加密密钥与一低位元加密密钥;
一第二切换电路,依序接收该高位元加密密钥与该低位元加密密钥,并依据计数信号而依序输出该高位元加密密钥与该低位元加密密钥;以及
一组合电路,将该高位元加密密钥与该低位元加密密钥组合为该加密密钥而输出。
6.如权利要求5所述的一次性可编程加密装置,其中该第一子填充数据的位元长度与该第二子填充数据的位元长度相同,且该第一子填充数据的位元长度为该原始密钥的位元长度的一半。
7.如权利要求5所述的一次性可编程加密装置,其中该第一子填充数据的位元长度与该第二子填充数据的位元长度相异。
8.如权利要求5所述的一次性可编程加密装置,其中该填充电路包括:
一第一子填充电路,接收该写入地址,利用该预设数据扩充该写入地址而输出该填充数据的一第一子填充数据;以及
一第一切换电路,接收一计数信号,依据该计数信号依序输出该第一子填充数据与该写入地址至该第一加密电路。
9.如权利要求5所述的一次性可编程加密装置,其中该填充数据的位元长度与该原始密钥的位元长度相同。
10.如权利要求5所述的一次性可编程加密装置,其中该第一加密逻辑运算相同于该第二加密逻辑运算。
11.如权利要求5所述的一次性可编程加密装置,其中该第一加密逻辑运算相异于该第二加密逻辑运算。
12.一种一次性可编程加密方法,其特征在于,包括:
由一处理器电路输出一明文数据与一写入地址;
由一密钥记录电路输出一原始密钥;
由一填充电路利用一预设数据扩充该写入地址而输出一填充数据;
由一第一加密电路依据该填充数据对该原始密钥进行第一加密逻辑运算,以输出一加密密钥;
由一第二加密电路依据该加密密钥对该明文数据进行第二加密逻辑运算,以输出一密文数据;以及
由一存储器电路依据该写入地址储存该密文数据,其中该存储器电路包括一次性可编程存储器,
所述方法更包括:
由一地址判断电路依据该写入地址对应的锁定位元判断该写入地址是否为一合格存取地址;
若该写入地址为该合格存取地址,由该地址判断电路致能输出该写入地址与该明文数据;以及
若该写入地址不为该合格存取地址,由该地址判断电路禁能输出该写入地址与该明文数据。
13.如权利要求12所述的一次性可编程加密方法,更包括:
由一选择器依据一加密致能信号的输出准位选择输出该密文数据或该明文数据至该存储器电路。
14.如权利要求12所述的一次性可编程加密方法,更包括:
由一系统配置寄存器依据该写入地址是否符合至少一安全数据地址而决定加密致能信号的输出准位,并输出该加密致能信号。
15.如权利要求12所述的一次性可编程加密方法,其中由该填充电路利用该预设数据扩充该写入地址而输出该填充数据的步骤包括:
由一第一子填充电路利用一第一预设位元序列扩充该写入地址而输出该填充数据的一第一子填充数据;
由一第二子填充电路利用一第二预设位元序列扩充该写入地址而输出一第二子填充数据;以及
由一第一切换电路依据一计数信号依序输出该填充数据中的该第一子填充数据与该第二子填充数据。
16.一种一次性可编程加密方法,其特征在于,包括:
由一处理器电路输出一明文数据与一写入地址;
由一密钥记录电路输出一原始密钥;
由一填充电路利用一预设数据扩充该写入地址而输出一填充数据;
由一第一加密电路依据该填充数据对该原始密钥进行第一加密逻辑运算,以输出一加密密钥;
由一第二加密电路依据该加密密钥对该明文数据进行第二加密逻辑运算,以输出一密文数据;以及
由一存储器电路依据该写入地址储存该密文数据,
其中由该第一加密电路依据该填充数据对该原始密钥进行该第一加密逻辑运算,以输出该加密密钥的步骤包括:
由一加密逻辑电路依据该原始密钥分别对该填充数据的第一子填充数据与该填充数据的第二子填充数据进行该第一加密逻辑运算,以依序输出一高位元加密密钥与一低位元加密密钥;
由一第二切换电路依据计数信号而依序输出将该高位元加密密钥与该低位元加密密钥;以及
由一组合电路将该高位元加密密钥与该低位元加密密钥组合为该加密密钥而输出。
17.如权利要求16所述的一次性可编程加密方法,其中该第一子填充数据的位元长度与该第二子填充数据的位元长度相同,且该第一子填充数据的位元长度为该原始密钥的位元长度的一半。
18.如权利要求16所述的一次性可编程加密方法,其中该第一子填充数据的位元长度与该第二子填充数据的位元长度相异。
19.如权利要求16所述的一次性可编程加密方法,其中由该填充电路利用该预设数据扩充该写入地址而输出该填充数据的步骤包括:
由一第一子填充电路利用该预设数据扩充该写入地址而输出该填充数据的一第一子填充数据;以及
由一第一切换电路依据一计数信号依序输出该填充数据中的该第一子填充数据与该写入地址至该第一加密电路。
20.如权利要求16所述的一次性可编程加密方法,其中该填充数据的位元长度与该原始密钥的位元长度相同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810224134.XA CN110287708B (zh) | 2018-03-19 | 2018-03-19 | 一次性可编程加密装置与其加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810224134.XA CN110287708B (zh) | 2018-03-19 | 2018-03-19 | 一次性可编程加密装置与其加密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110287708A CN110287708A (zh) | 2019-09-27 |
CN110287708B true CN110287708B (zh) | 2023-07-04 |
Family
ID=68000772
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810224134.XA Active CN110287708B (zh) | 2018-03-19 | 2018-03-19 | 一次性可编程加密装置与其加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110287708B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113408017B (zh) * | 2021-06-30 | 2022-10-14 | 湖南国科微电子股份有限公司 | 一种otp存储器内数据保护方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015031949A1 (en) * | 2013-09-09 | 2015-03-12 | Newsouth Innovations Pty Limited | Data encryption process |
CN106688027A (zh) * | 2014-09-15 | 2017-05-17 | Arm 有限公司 | 依赖puf和地址的数据加密 |
CN107667374A (zh) * | 2015-06-25 | 2018-02-06 | 英特尔公司 | 用于存储器保密性、完整性和重放保护的技术 |
CN108768620A (zh) * | 2018-03-26 | 2018-11-06 | 海光信息技术有限公司 | 一种数据处理方法及装置 |
CN109656840A (zh) * | 2018-12-21 | 2019-04-19 | 成都海光集成电路设计有限公司 | 一种数据加解密的装置、方法、存储介质、以及数据存储系统 |
-
2018
- 2018-03-19 CN CN201810224134.XA patent/CN110287708B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015031949A1 (en) * | 2013-09-09 | 2015-03-12 | Newsouth Innovations Pty Limited | Data encryption process |
CN106688027A (zh) * | 2014-09-15 | 2017-05-17 | Arm 有限公司 | 依赖puf和地址的数据加密 |
CN107667374A (zh) * | 2015-06-25 | 2018-02-06 | 英特尔公司 | 用于存储器保密性、完整性和重放保护的技术 |
CN108768620A (zh) * | 2018-03-26 | 2018-11-06 | 海光信息技术有限公司 | 一种数据处理方法及装置 |
CN109656840A (zh) * | 2018-12-21 | 2019-04-19 | 成都海光集成电路设计有限公司 | 一种数据加解密的装置、方法、存储介质、以及数据存储系统 |
Non-Patent Citations (1)
Title |
---|
张仕斌 等.认证理论与技术-Hash函数.《卓越工程师计划 应用密码学》.西安电子科技大学出版社,2017, * |
Also Published As
Publication number | Publication date |
---|---|
CN110287708A (zh) | 2019-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5984625B2 (ja) | 半導体装置及び暗号鍵書き込み方法 | |
KR102201062B1 (ko) | 물리적 복제방지 기능으로서 이용되는 메모리로부터 암호 키를 생성하기 위한 시스템 | |
KR100445406B1 (ko) | 데이터 암호화 장치 및 그 방법 | |
CN108449172B (zh) | 加密/解密方法和计算设备的集成电路 | |
JP5306465B2 (ja) | セキュアなメモリに応用するメッセージ認証コードの事前計算 | |
US20160006570A1 (en) | Generating a key derived from a cryptographic key using a physically unclonable function | |
US11308241B2 (en) | Security data generation based upon software unreadable registers | |
US11728967B2 (en) | Dynamic masking | |
US10146701B2 (en) | Address-dependent key generation with a substitution-permutation network | |
US11115181B2 (en) | Memory device, host device, and memory system | |
US20230386541A1 (en) | Puf applications in memories | |
US9602281B2 (en) | Parallelizable cipher construction | |
CN112887077B (zh) | 一种ssd主控芯片随机缓存保密方法和电路 | |
CN110287708B (zh) | 一次性可编程加密装置与其加密方法 | |
US9946662B2 (en) | Double-mix Feistel network for key generation or encryption | |
CN111771353A (zh) | 保护加密密钥数据 | |
CN213876729U (zh) | 一种ssd主控芯片随机缓存保密电路 | |
EP3832945B1 (en) | System and method for protecting memory encryption against template attacks | |
CN110516457B (zh) | 一种数据存储方法及读取方法、存储设备 | |
JP7012920B2 (ja) | 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム | |
KR101105384B1 (ko) | 키 암호화 및 셔플링이 적용된 부채널 공격에 안전한 키 관리방법 | |
US9069988B2 (en) | Detecting key corruption | |
EP4221072A1 (en) | System and method for flexible post-quantum trust provisioning and updating | |
CN114297626A (zh) | 一种用于工控系统的密钥生成及加密方法 | |
CN117648719A (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 |