本发明涉及一种更新非易失性存储器的加密金钥与产生加密金钥的新例项的装置与物联网装置及其方法,尤其涉及一种用于加密通信的加密金钥的更新方法。
背景技术:
n比特加密金钥的熵值h(n,p)=h(n,1-p)可以定量金钥的随机性,其中p是金钥中的任何一个比特是0或1的机率。具有较高熵值的金钥比具有较低熵值的金钥更安全。针对具有随机、独立及均匀分布(independentandidenticallydistributed;iid)的比特的金钥,h(n,p)=nh(p)比特,其中h(p)=-(plog2p (1-p)log2(1-p))。举例来说,针对无偏(unbiased)的iid比特(其中p=0.5),h(p)达到其最大值1,使得h(n,p)=n。
非易失性存储器(non-volatilememory;nvm)含有多个单比特的存储单元(single-bitmemorycells),每个存储单元可能处于编程状态或未编程状态。通常,未编程单元具有比特值"1",而经编程单元具有比特值"0"。在一次性可编程nvm(one-timeprogrammablenvm;otpnvm)中,编程操作无法撤销,意即,经编程单元无法在随后进行解编程(或“抹除”)。
技术实现要素:
本发明提供一种更新非易失性存储器的加密金钥与产生加密金钥的新例项的装置以及物联网装置及其方法,可更新非易失存储器中的加密金钥而无须解编程任何存储单元,进而安全地更新加密金钥,并提高加密通信的安全性。
本发明的实施例提供一种用于产生n比特加密金钥的新例项的装置,n比特加密金钥的当前例项存储于非易失性存储器中,非易失性存储器属于一物联网装置,非易失性存储器中的多个未编程单元具有特定比特值。所述装置包含网络接口及处理器。处理器被配置为:产生随机的n比特更新序列;基于随机n比特更新序列中的不同于特定比特值的比特的位置,对n比特加密金钥的当前例项中相应于所述位置且具有特定比特值的比特求反(negate),以产生n比特加密金钥的新例项,且使n比特加密金钥的当前例项中不同于特定比特值的任何比特维持不变;以及在产生n比特加密金钥的新例项之后,使用网络接口将n比特加密金钥的新例项传送至物联网装置以更新存储在非易失性存储器中的n比特加密金钥的当前例项。
本发明的实施例提供一种物联网装置,所述装置包含:非易失性存储器,包含多个存储单元,被配置为存储n比特加密金钥,多个存储单元中的未编程单元具有特定比特值;以及处理器。处理器被配置为:产生随机的n比特更新序列;基于所述随机n比特更新序列中的不同于所述特定比特值的比特的位置,对n比特加密金钥的当前例项中相应于所述位置且具有特定比特值的比特求反,以产生n比特加密金钥的新例项,且使n比特加密金钥的当前例项中不同于特定比特值的任何比特维持不变;以及在产生n比特加密金钥的新例项之后,使用非易失性存储器中的n比特加密金钥的新例项来替换n比特加密金钥的当前例项。
本发明的实施例提供一种用于产生n比特加密金钥的新例项的方法,n比特加密金钥的新例项存储于非易失性存储器,非易失性存储器中的多个未编程单元具有特定比特值。所述方法包含:产生随机的n比特更新序列;以及基于所述随机n比特更新序列中的不同于所述特定比特值的比特的位置,对n比特加密金钥的当前例项中相应于所述位置且具有特定比特值的比特求反,以产生n比特加密金钥的新例项,且使n比特加密金钥的当前例项中不具有特定比特值的任何比特维持不变。
本发明的实施例提供一种在非易失性存储器中促进n比特加密金钥的u次更新的方法,非易失性存储器中的多个未编程单元具有特定比特值,所述方法包含:针对u次更新,计算不同的对应u个机率{qi},i=1…u,使得针对u次更新中的第i次更新,基于n比特加密金钥的当前例项所产生的n比特加密金钥中的新例项的预期熵值不小于预设阈值e,其中e小于n,其条件是:(i)以特定比特值的机率为qi来产生n比特随机更新序列中的各比特,(ii)基于所述随机n比特更新序列中的不同于所述特定比特值的比特的位置,对n比特加密金钥的当前例项中相应于所述位置且具有特定比特值的比特求反,以产生n比特加密金钥的新例项,且使n比特加密金钥的当前例项中不同于特定比特值的任何比特维持不变,以及(iii)在计算u个机率之后,利用所述u个机率来执行u次更新。
基于上述,在本发明一些实施例中,所述更新非易失性存储器的加密金钥与产生新例项的装置及其方法可以改善非易失性存储器用于加密通信的安全性。处理器可以更新非易失存储器中的加密金钥而无须解编程任何存储单元,进而安全地更新加密金钥与产生新例项,并提高加密通信的安全性。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是根据本发明一实施例所示出的用于更新加密金钥的系统示意图。
图2是根据本发明一实施例所示出的产生加密金钥的新例项的示意图。
图3是根据本发明一实施例所示出的用于产生随机序列的技术的示意图。
图4是根据本发明一实施例所示出的用于计算比特产生机率的技术的示意图。
图5是根据本发明一实施例所示出的用于促进加密金钥的多个更新的方法的流程图。
附图标号说明:
20:系统38:存储器
22:装置40:伺服器
24:网际网络42:处理器
26a:第一isp44:网络接口
26b:第二isp46:步骤
30:处理器47:选择步骤
32:网络接口48:初始化步骤
34:处理器50:计算步骤
36:通信接口52:第一检查步骤
54:设定步骤60:第二检查步骤
56:递增步骤62:提供步骤
58:数据表更新步骤
具体实施方式
在本申请的上下文中(包含权利要求),“更新”加密金钥可指代(i)计算金钥的新例项,(ii)使用存储器中的金钥的新例项来替换金钥的当前例项,或(iii)上述两者。
本说明书大体上假定在非易失性存储器中,未编程单元具有比特值"1",而经编程单元具有比特值"0"。然而,如下文参考图2的说明,本文中所描述的技术还可使用于与上述协定相反的非易失性存储器中。
更新存储于非易失性存储器中的加密金钥可具有挑战性。举例来说,如上文现有技术中所描述,编程于otpnvm的数据不允许被抹除。此外,即使针对允许抹除的其它类型的非易失性存储器,更新操作也可能不安全,原因是攻击者可能在抹除金钥的当前值之后及写入金钥的新值之前终止所述操作,从而将金钥“冻结”在其已知的未编程状态。
为解决此问题,本发明的实施例通过仅改变金钥中的(未编程的)比特值"1"而不改变任何(经编程的)比特值"0"来更新金钥。具体地说,基于金钥的当前n比特例项ki(下文表示为“ki”),随机的n比特更新序列si(下文表示为“si”)被产生,且通过对ki与si执行按位与(bitwiseand)运算或任何等效运算来计算出金钥的新例项ki 1(下文表示为“ki 1”)。为确保金钥的新例项ki 1相对于当前例项ki具有充分的熵值(即,为确保知悉ki的攻击者难以猜测出ki 1),如果要对比特值"0"及比特值"1"都进行更新,那么金钥的长度n将比所需要的更长。
应注意,当使用替代描述协定时,ki及ki 1可被称为不同金钥,而非相同金钥的不同例项或值。因此,举例来说,ki 1可能为替换ki的新金钥。
通常,为允许尽可能多的更新,以偏置方式产生si,亦即si中的各比特的值等于"1"的机率qi(下文表示为“qi”)大于0.5。在一些情况下,针对金钥的最终更新,qi可精确地为0.5。具体地说,通过数值方式计算出用以给定所需熵值的qi的最大值,且随后使用此最大值来产生si。
在一些实施例中,考虑到当前金钥ki,在第i次更新之前即计算每个qi值。借助于上述介绍,应注意,给定ki的ki 1的熵值等于n1i*h(qi),其中n1i为ki中比特值"1"的数目,且h(qi)=-(qilog2qi (1-qi)log2(1-qi))。针对大于或等于特定阈值e(下文表示为“e”)的此熵值,h(qi)必须大于或等于e/n1i。因此,在第i次更新之前,可计算e/n1i的值。随后,如果e/n1i小于或等于一(即h(q)的最大可能值),则可以数值方式求解等式h(q)=e/n1i中的q。应注意,计算此解的精确度可取决于所使用的数值方法,且取决于实施所述方法的方式。此等式的解qi*或小于qi*的最接近合适值可随后作为qi的值。
在其它实施例中,在执行任何更新之前事先计算用于执行金钥的u次更新的qi值的集合{q1,q2,…qu}。针对此计算,预期值n1i,
通常,为促进产生si,qi以n/2m的形式表示,其中m为预设整数,且n为可变整数。为产生si,包括e比特的无偏的随机种子xi(下文表示为“xi”)被产生或获得。随后例如使用散列函数将xi扩展为分别对应于si的n比特的n个m比特序列。随后,将每个m比特序列的值与n进行比较。如果所述值小于n,那么si中的对应比特被设定为1;否则,所述比特被设定为0。
首先参考图1,图1是根据本发明的一些实施例的用于更新加密金钥的系统20的示意图。如图1所示的实施例中,n比特加密金钥“k”用于加密经由网际网络24的物联网(internetofthings;iot)装置22与网际网络服务提供方(internetserviceprovider;以下简称isp)之间的通信。
一般来说,如果装置22保持与相同isp在一起,且如果金钥的安全性未被破解,则不需要更新金钥。然而,在装置22切换到不同isp的情况下,如果金钥的安全性被破解,则可能需要更新金钥。
举例来说,图1描绘了装置22自第一网际网络服务提供方26a(以下简称第一isp26a)切换为由第二网际网络服务提供方26b(以下简称第二isp26b)服务的情形。在此情形下,第二isp26b从第一isp26a请求金钥ki的当前例项。回应于此请求,第一isp26a经由网际网络24将ki传送至第二isp26b。第一isp26a可进一步将i的值传送至第二isp26b,即,第一isp26a可指出已经执行的加密金钥的更新的数目。随后,第二isp26b产生金钥的新例项ki 1,并随后经由网际网络24将ki 1传送至装置22。网际网络24例如为经由路由器28所提供的装置22所属的wifi网络。通常,第二isp26b例如使用ki在将ki 1传送至装置22之前加密ki 1。随后,装置22及第二isp26b可使用用于加密及解密通信的ki 1开始彼此通信。
第二isp26b包括处理器30及网络接口32。网络接口32包括例如网络接口控制器(networkinterfacecontroller;nic)。处理器30被配置为经由网络接口32与第一isp26a及装置22(连同其它装置)进行通信交流。处理器30进一步被配置为更新用于加密与装置22之间的通信的加密金钥。举例来说,如前所述,处理器30可在开始与装置22通信时更新金钥。或者,处理器30可回应于处理器30(或外部网络安全系统)识别到金钥可能已被攻击者盗取来更新金钥。
类似地,装置22包括处理器34及通信接口36。处理器34被配置为经由通信接口36与第二isp26b(连同其它装置)进行通信交流。举例来说,通信接口36可包括wifi卡,处理器34可使用所述wifi卡经由路由器28来进行通信交流。
装置22进一步包括存储器38,处理器34将加密金钥存储于存储器38中。因此,举例来说,存储器38可初始地保持ki。在从第二isp26b接收ki 1之后,处理器34可用ki 1覆写ki。
通常,存储器38为非易失性的。例如,存储器38可为otpnvm、快闪存储器或电子抹除式可复写只读存储器(electricallyerasableprogrammableread-onlymemory;eeprom)。然而,如下文参考图2所进一步描述的,更新加密金钥不需要对存储器38中的任何存储单元解编程(即抹除)是有利的。
在一些实施例中,如下文参考图5所进一步描述的,第二isp26b使用由伺服器40所提供的数据表中的参数(具体地为比特产生机率qi)来产生ki 1。举例来说,伺服器40可使用网络接口44将数据表发布于网站。在产生ki 1之前,第二isp26b可从网站检索数据表并在数据表中查找产生ki 1所需的参数。或者,在产生ki 1之前的任何时间,伺服器40可将数据表(例如,经由网际网络24)传送至第二isp26b,且第二isp26b可随后将数据表存储于易失性或非易失性存储器(未示出)中。随后,在产生ki 1之前,第二isp26b可从存储器检索数据表,并随后查找相关参数。
在其它实施例中,装置22的处理器34产生ki 1,并随后将ki 1传送至第二isp26b。在此类实施例中,处理器34可从伺服器40接收前述数据表。作为替代,伺服器40或任何其它合适的第三方可产生ki 1,并可随后将ki 1传送至装置22及第二isp26b两者。
伺服器40包括处理器42及网络接口44。网络接口44例如包括nic。处理器42被配置为经由网络接口44与第二isp26b(和/或装置22)进行通信交流。
必须强调的是,前述的系统20的元件及配置仅用来进行示例性地说明。一般来说,可由属于任何合适系统的任何合适处理器来实践本文中所描述的各种技术。举例来说,本文中所描述的技术可用于更新存储于属于移动电话的嵌入式用户识别模块(embeddedsubscriberidentificationmodule;esim)或嵌入式安全元件(embeddedsecureelement;ese)中的加密金钥。举例来说,移动电话的服务提供者可产生ki 1并将ki 1传送至移动电话,且移动电话可随后将ki 1存储于其中的非易失性存储器。
一般来说,本文中所描述的各处理器可以单处理器来实施,或以合作连网的或群集的处理器的集合来实施。在一些实施例中,例如使用一个或多个特殊应用集成电路(application-specificintegratedcircuits;asics)或现场可编程门阵列(field-programmablegatearrays;fpgas)将本文中所描述的处理器中的至少一个功能单独地实施于硬件中。在其它实施例中,以软件来实施出本文中所描述的各处理器的至少部分功能。举例来说,本文中所描述的各处理器可为包括至少中央处理单元(centralprocessingunit;cpu)及随机存取存储器(randomaccessmemory;ram)的编程数字计算装置。程序码(包含软件程序)和/或数据被载入到ram中以供cpu执行及处理。举例来说,可经由网络以电子形式将程序码和/或数据下载到处理器。或者,程序码和/或数据可被提供至和/或存储于非暂态有形媒体上,诸如磁性存储器、光学存储器或电子存储器。此类程序码和/或数据在被提供至处理器时产生被配置为执行本文中所描述的任务的机器或专用电脑。
参考图2,图2是根据本发明的一些实施例的产生加密金钥的新例项的示意图。
图2涉及图1中所描绘的场景,其中基于给定金钥的当前例项ki,处理器30(或如上文所描述的任何其它处理器)产生n比特加密金钥的新例项ki 1。如上所述,产生ki 1以使得在非易失性存储器中使用ki 1替换ki并不需要解编程任何存储单元。尽管如此,如下文参考图4更详细地描述,ki 1的预期熵值相对于ki不小于预设阈值熵e。可例如由系统20的安全架构来定义小于加密金钥中的比特n的数目的阈值e。
具体来说,为了产生ki 1,处理器首先产生随机的n比特更新序列si。接着,处理器通过对ki中具有特定比特值(例如"1")且不同于si中的相应位置的比特值的特定比特求反(negate),而不对ki中不具有特定比特值的比特求反来产生ki 1。于图2中,以向上的箭头标记出基于ki与si所产生的ki 1中的两个经求反的比特。如图所示,比较ki 1与ki,除了在ki中比特值为"1"且在si中的相应位置的比特值为"0"的两个比特在ki 1中被反向,其余的值均相同。
通常,如图2所示,处理器通过对ki与si执行按位与运算来产生ki 1。因此,依据si中比特值为"0"的相对位置,通过将ki中比特值为"1"以"0"替换(即编程对应的存储单元),但比特值"0"保持不变可产生ki 1,使得金钥可在非易失性存储器中更新而无需解编程任何存储单元。
处理器产生si,其中所产生的si的各比特的值为"1"的机率qi通常大于0.5。如上文所述,在一些情况下,针对金钥的最终更新,qi可精确为0.5。在一些实施例中,可以数据表表示qi,所述数据表可由如图1所描述的伺服器40提供。此数据表可包含例如查找表,所述查找表包括多个i值、一个或多个n的值以及一或多个e的值,并可基于这些值而指定出对应的qi。在其它实施例中,处理器计算qi。下文参考图4描述关于计算qi的细节。
于未编程单元具有比特值"0",而经编程单元具有比特值"1"的替代实施例(简称反向nvm协定)中,处理器所产生的si中的各比特的值为"0"的机率为qi。处理器随后例如通过对ki与si执行按位或(bitwiseor)运算,来对在ki中比特值为"0"且在si中的相应位置的比特值为"1"的ki中的对应比特值"0"求反。
参考图3,图3是根据本发明的一些实施例的用于产生随机的n比特更新序列si的技术的示意图。此实施例假定qi等于n/2m,其中,m为预设整数,且n为可变整数(举例来说,m可为10,则qi=n/1024)。
为了产生si,处理器首先产生或从外部源获得具有e个比特的无偏的随机种子xi(即xi中的各比特的值为”1”的机率为0.5)。处理器进一步查找或计算qi=n/2m。随后,处理器将xi扩展至n个m比特序列{zij},j=1…n,其分别对应于si的比特。举例来说,处理器可运用n个不同的对应计数器c将散列函数f(x,c)应用于xi的扩展,以使得例如对应于si的第一比特的第一m比特序列zi1等于f(xi,1),对应于si的第二比特的第二m比特序列zi2等于f(xi,2),以此类推。合适的散列函数例子包含安全散列算法(securehashalgorithm;sha)函数,例如sha-2、sha-256、sha-512以及sha-3。
接着,针对si中的每个比特,处理器回应于对应m比特序列的值小于n的结果而将si中的对应比特设定为"1"。举例来说,如果zi1小于n,那么si中的第一比特被设定为"1";否则,第一比特被设定为"0"。
尽管图3中示出的特定技术如此,应注意,只要si中的各比特的值为"1"的出现机率为qi,则可使用任何其它合适技术来产生si(即使qi不是n/2m的形式)。
参考图4,图4是根据本发明的一些实施例的用于计算比特产生机率qi的技术的示意图。
在一些实施例中,产生ki 1的处理器在产生si之前计算出qi。通常在此类实施例中,处理器首先指出在ki中比特值为"1"的数目n1i。接着,处理器求解h(q)=-(qlog2q (1-q)log2(1-q))=e/n1i中的q,此解在图4中由以qi*表示(在大多数情况下,所述方程式有两个解;处理器选择两个解中的较大者)。处理器随后根据qi*得出qi。举例来说,处理器可将qi设定为qi*,或设定为小于或等于qi*的n/2m的最大值(换句话说,处理器找出在n/2m小于或等于qi*的条件下整数n的最大值)。
如上文所描述,给定ki的熵值ki 1等于n1i*h(qi)。因此,通过将qi设定为qi*,或设定为小于qi*的最接近合适值,处理器有效地选择qi的最大合适值,其提供至少为e的熵值。
另外,为求解qi*,处理器可定义q的多个值,且随后将qi设定为这些值中的最大值,其中h(q)不小于e/n1i。举例来说,处理器可产生该些值的阵列[2m-1/2m,(2m-1 1)/2m,…(2m-1)/2m],且随后将qi设定为这些值中的最大值,其中h(q)不小于e/n1i。
在e/n1i大于1的情况下,处理器不产生ki 1,这是因为不能获得所需熵值e。在此情况下,处理器可产生适当的错误消息,其指示例如需要替换或抹除装置22中的存储器38(图1)。
在一些实施例中,产生ki 1的处理器不使用n1i来计算qi。实际上,处理器基于在各更新处的n1i、n1i*的预期值,提前计算出对金钥进行多次更新所需的多个qi值所组成的序列。或者,伺服器40(图1)可产生数据表,其指出一或多对的n值及e值分别对应的多个qi值所组成的一或多个序列。随后,如上文参考图1所描述,伺服器40可将数据表提供给任何想要通过图2至图3所描述的方式来更新加密金钥的一方(例如第二isp26b)。
参考图5,图5是根据本发明的一些实施例的用于促进加密金钥的多个更新的方法46的流程图。具体地说,方法46用以产生及提供如前所述的数据表,且所述数据表指出一或多个不同的(n,e)对分别对应的一或多个{qi}序列。各(n,e)对由(i)n(加密金钥的比特数目)及(ii)e(熵阈值)组成。如上所述,方法46通常由伺服器40的处理器42执行。或者,方法46中的一部分(例如计算出单个(n,e)对所对应的{qi})可由被配置为更新金钥的处理器执行,所述处理器例如是第二isp26b的处理器30。
方法46开始于选择步骤47,在步骤47中处理器42选择一个(n,e)对。可例如通过安全专家将(n,e)对提供给处理器42。基于此选择的(n,e)对,处理器可在后续步骤中计算出对应金钥的u次更新的u个机率{qi},i=1…u。于本实施例中,根据上述所计算出的各qi值,将使得基于金钥的当前例项ki所产生的金钥的新例项ki 1的预期熵值不小于e。换句话说,根据如图4所描述的内容所计算出的qi,可在后续步骤中参照ki并使用等式(h(q)*n1i*)来计算出至少为e的ki 1的预期熵值,以用以取代无法预先得知的ki 1的实际熵值。
更具体地说,在选择步骤47之后的初始化步骤48中,处理器将q0设定为1,并将索引值i初始化为1。接着,在计算步骤50中,处理器计算
若在第一检查步骤52中判断出e/n1i*大于1,则跳至数据表更新步骤58,使得处理器并不对当前的索引值i计算qi。也就是,qi的计算至此结束。实际上,在数据表更新步骤58中,将至此已计算出的由多个qi所组成的序列{q1,q2,…qu},其中u(其为当前的索引值减1)为金钥的最大可允许更新数,添加至数据表中对应的(n,e)下方。
在数据表更新步骤58之后,处理器在第二检查步骤60处检查是否有未选择的(n,e)对。如果是,则处理器返回到选择步骤47,针对所选择的(n,e)对来计算对应的{qi},且随后将对应的{qi}加入于数据表中。否则,执行提供步骤62,处理器提供完成的数据表供用于更新加密金钥。举例来说,如上文参考图1所描述,处理器可将数据表上传至网站,或将数据表传送至另一装置。
如图2所描述,各qi值通常大于0.5(而在一些情况下,qu可精确为0.5)。如图4所示,由于e/n1i*随i的上升而增大,qi*的值随i增大而减小。举例来说,针对e=80及n=256的例子,方法46将产生由11个递减的qi*值所组成的序列:0.943、0.938、0.933、0.926、0.918、0.907、0.893、0.872、0.841、0.785以及0.623。即,在所需熵值不超过80比特的情况下,可使用本文中所描述的技术更新具有256个比特的金钥11次。
基于给定的数据表,产生金钥的新例项的处理器(例如第二isp26b的处理器30)基于给定的n、e以及i来查找适当的qi值(如上文参考图1所描述,第一isp26a可将i值提供给第二isp26b)。随后,如图2至图3所描述,处理器使用qi来产生更新序列si,并随后使用si自ki产生ki 1。
综上所述,在本发明一些实施例中,所述更新非易失性存储器的加密金钥与产生新例项的装置及其方法可以改善非易失性存储器用于加密通信的安全性。通过更新序列si求反n比特加密金钥的当前例项中的具有特定比特值的比特,而不求反n比特加密金钥的当前例项中不具有特定比特值的任何比特,处理器可以更新非易失存储器中的加密金钥而无须解编程任何存储单元,进而安全地更新加密金钥以及产生新例项,并提高加密通信的安全性。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中技术人员,在不脱离本发明的精神和范围内,当可作些许的更改与润饰,故本发明的保护范围当视权利要求所界定的为准。
1.一种用于产生n比特加密金钥的新例项的装置,所述n比特加密金钥的当前例项存储于非易失性存储器中,所述非易失性存储器属于物联网装置,所述非易失性存储器中的多个未编程单元具有特定比特值,所述装置包括:
网络接口;以及
处理器,被配置为:
产生随机的n比特更新序列;
基于所述随机n比特更新序列中的不同于所述特定比特值的比特的位置,对所述n比特加密金钥的所述当前例项中相应于所述位置且具有所述特定比特值的比特求反,以产生所述n比特加密金钥的所述新例项,且使所述n比特加密金钥的所述当前例项中不同于所述特定比特值的任何比特维持不变;以及
在产生所述n比特加密金钥的所述新例项之后,使用所述网络接口将所述n比特加密金钥的所述新例项传送至所述物联网装置以更新存储在所述非易失性存储器中的所述n比特加密金钥的所述当前例项。
2.根据权利要求1所述的装置,其中所述特定比特值为1,所述处理器被配置为通过对所述n比特加密金钥的所述当前例项与所述随机的n比特更新序列执行按位与运算,以产生所述n比特加密金钥的所述新例项。
3.根据权利要求1所述的装置,其中所述特定比特值为0,所述处理器被配置为通过对所述n比特加密金钥的所述当前例项与所述随机的n比特更新序列执行按位或运算,以产生所述n比特加密金钥的所述新例项。
4.根据权利要求1所述的装置,其中所述处理器被配置为以所述特定比特值大于0.5的机率产生所述随机的n比特更新序列中的各比特。
5.根据权利要求4所述的装置,其中所述机率等于n/2m,且m为预设整数m,n为可变整数,且所述处理器被配置为通过以下操作来产生所述随机的n比特更新序列:
将具有e比特的无偏的随机种子扩展至分别对应于所述随机的n比特更新序列的所述比特的n个m比特序列;以及
针对所述随机的n比特更新序列中的各比特,当对应的所述m比特序列的值小于n时,将所述比特设定为所述特定比特值。
6.根据权利要求1所述的装置,其中所述处理器进一步被配置为:在将所述n比特加密金钥的所述新例项传送至所述物联网装置之后,使用所述n比特加密金钥的所述新例项来加密及解密与所述物联网装置的通信。
7.根据权利要求1所述的装置,其中所述处理器进一步被配置为:在将所述n比特加密金钥的所述新例项传送至所述物联网装置之前,使用所述n比特加密金钥的所述当前例项来加密所述n比特加密金钥的所述新例项。
8.一种物联网装置,包括:
非易失性存储器,包括多个存储单元,被配置为存储n比特加密金钥,所述多个存储单元中的未编程单元具有特定比特值;以及
处理器,被配置为:
产生随机的n比特更新序列;
基于所述随机n比特更新序列中的不同于所述特定比特值的比特的位置,对所述n比特加密金钥的当前例项中相应于所述位置且具有所述特定比特值的比特求反,以产生所述n比特加密金钥的所述新例项,且使所述n比特加密金钥的所述当前例项中不同于所述特定比特值的任何比特维持不变;以及
在产生所述n比特加密金钥的所述新例项之后,使用所述非易失性存储器中的所述n比特加密金钥的所述新例项来替换所述n比特加密金钥的所述当前例项。
9.根据权利要求8所述的装置,其中所述处理器被配置为根据特定机率产生所述随机的n比特更新序列中的各比特具有所述特定比特值,且在产生所述随机的n比特更新序列之前计算所述特定机率,使得基于所述n比特加密金钥中所述当前例项所获得的所述n比特加密金钥中所述新例项的预期熵值不小于预设阈值e,其中e小于n。
10.根据权利要求9所述的装置,其中所述特定机率大于0.5。
11.一种用于产生n比特加密金钥的新例项的方法,所述n比特加密金钥的所述新例项存储于非易失性存储器,所述非易失性存储器中的多个未编程单元具有特定比特值,所述方法包括:
产生随机的n比特更新序列;以及
基于所述随机n比特更新序列中的不同于所述特定比特值的比特的位置,对所述n比特加密金钥的当前例项中相应于所述位置且具有所述特定比特值的比特求反,以产生所述n比特加密金钥的所述新例项,且使所述n比特加密金钥的所述当前例项中不具有所述特定比特值的任何比特维持不变。
12.根据权利要求11所述的方法,其中所述特定比特值为1,所述求反包括对所述n比特加密金钥的所述当前例项与所述随机的n比特更新序列执行按位与运算。
13.根据权利要求11所述的方法,其中所述特定比特值为0,所述求反包括对所述n比特加密金钥的所述当前例项与所述随机的n比特更新序列执行按位或运算。
14.根据权利要求11所述的方法,其中所述产生所述随机的n比特更新序列的步骤包括以所述特定比特值大于0.5的机率产生所述随机的n比特更新序列中的各比特。
15.根据权利要求14所述的方法,还包括:
在产生所述随机的n比特更新序列之前,指出所述n比特加密金钥的所述当前例项中所述特定比特值的数目n1;
求解-(qlog2q (1-q)log2(1-q))=e/n1中的q,e为预设熵阈值;以及
根据q推导所述机率。
16.根据权利要求15所述的方法,其中所述根据q推导所述机率的步骤包括通过将所述机率设定为q以根据q推导所述机率。
17.根据权利要求15所述的方法,其中所述根据q推导所述机率的步骤包括将所述机率设定为不大于q的n/2m的最大值,其中m为预设整数,且n为可变整数。
18.根据权利要求14所述的方法,还包括:
在产生所述随机的n比特更新序列之前:
指出所述n比特加密金钥的所述当前例项具有所述特定比特值的数目n1:以及
根据-(qlog2q (1-q)log2(1-q))不小于e/n1求解出q的多个预设值,并将所述机率设定为所述多个预设值的最大值,其中e为预设熵阈值。
19.根据权利要求14所述的方法,其中所述机率等于n/2m,且m为预设整数m,n为可变整数,其中所述产生所述随机的n比特更新序列的步骤包括:
将具有e比特的无偏的随机种子扩展至分别对应于所述随机的n比特更新序列的所述比特的n个m比特序列,以及
针对所述随机的n比特更新序列中的各比特,当对应的所述m比特序列的值小于n时,将所述比特设定为所述特定比特值。
20.根据权利要求11所述的方法,其中所述非易失性存储器属于物联网装置,其中所述方法还包括:
在产生所述n比特加密金钥的所述新例项之后,将所述n比特加密金钥的所述新例项传送至所述物联网装置以存储在所述非易失性存储器中;以及
在将所述n比特加密金钥的所述新例项传送至所述物联网装置之后,使用所述n比特加密金钥的所述新例项来加密及解密与所述物联网装置的通信。
21.根据权利要求11所述的方法,还包括使用所述非易失性存储器中的所述n比特加密金钥的所述新例项来替换所述n比特加密金钥的所述当前例项。
22.一种在非易失性存储器中促进n比特加密金钥的u次更新的方法,所述非易失性存储器中的多个未编程单元具有特定比特值,所述方法包括:
针对所述u次更新,计算不同的对应u个机率{qi},i=1…u,以使得针对所述u次更新中的第i次更新,基于所述n比特加密金钥的当前例项所产生的所述n比特加密金钥中的新例项的预期熵值不小于预设阈值e,其中e小于n,其条件是:
以所述特定比特值的机率为qi来产生n比特随机更新序列中的各比特;及
基于所述随机n比特更新序列中的不同于所述特定比特值的比特的位置,对所述n比特加密金钥的当前例项中相应于所述位置且具有所述特定比特值的比特求反,以产生所述n比特加密金钥的所述新例项,且使所述n比特加密金钥的所述当前例项中不同于所述特定比特值的任何比特维持不变;以及
在计算所述u个机率之后,利用所述u个机率来执行所述u次更新。
23.根据权利要求22所述的方法,其中针对所述u次更新中的所述第i次更新,计算所述u个机率包括:
求解
根据q推导qi。
技术总结