CN105406957B - 保护密码设备对抗实现攻击 - Google Patents

保护密码设备对抗实现攻击 Download PDF

Info

Publication number
CN105406957B
CN105406957B CN201510497587.6A CN201510497587A CN105406957B CN 105406957 B CN105406957 B CN 105406957B CN 201510497587 A CN201510497587 A CN 201510497587A CN 105406957 B CN105406957 B CN 105406957B
Authority
CN
China
Prior art keywords
key
output
input vector
input
client
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
CN201510497587.6A
Other languages
English (en)
Other versions
CN105406957A (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.)
NXP BV
Original Assignee
NXP BV
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 to EP14184296.3A priority Critical patent/EP2996277B1/en
Priority to EP14184296.3 priority
Application filed by NXP BV filed Critical NXP BV
Publication of CN105406957A publication Critical patent/CN105406957A/zh
Application granted granted Critical
Publication of CN105406957B publication Critical patent/CN105406957B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/068Network architectures or network communication protocols for network security for supporting key management in a packet data network using time-dependent keys, e.g. periodically changing keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communication
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communication
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communication 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/80Wireless
    • H04L2209/805Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor

Abstract

描述了保护密码设备对抗实现攻击的方法。公开的方法包括以下步骤:从密码设备的存储器获得密钥(230);向加密模块(240)提供密钥和恒定输入(210);使用加密模块(240)导出加密数据比特的输出(250);向密钥更新模块(260)提供输出(250)、密钥(230)和输入向量(270);以及使用所述密钥更新模块(260)基于输入向量(270)的至少一部分(270a)修改密钥以导出已更新密钥(230a)。这防止使用已更新密钥或者通过使用边信道攻击来导出密钥的值,因为输入对于所有的密钥而言是恒定的。此外,通过改变输入向量,已更新密钥也发生了改变。

Description

保护密码设备对抗实现攻击
技术领域
本公开描述了用于保护密码设备的方法和集成电路,并且具体地,描述了用于保护密码设备对抗实现攻击的方法。
背景技术
智能设备,尤其是具有低功率要求的智能设备(通常被称作无源智能设备)被广泛用于认证和访问控制。这样的设备的示例包括作为射频识别(RFID)标签的子集的非接触智能卡。这样的无源智能设备通常使用专用集成电路(ASIC)。
考虑到无源智能设备在安全关键应用中的应用,使用密码术来认证正在使用的无源智能设备。相反地,由于对无源智能设备可以保存或允许访问的信息的渴求,它们也是恶意的试图使用的兴趣所在。
大量的时间和努力花费在了对安全集成电路(IC,例如智能卡)中的边信道对策的实现和分析。边信道攻击是以根据密码系统的物理信息获得的信息为基础的任何攻击。这样的攻击不同于软件强力攻击或者加密算法中的开发或弱点。边信道攻击通常检查系统的内部操作(例如系统汲取的功率、电磁(EM)辐射或其它‘边信道’)来确定模式和实现步骤。一种这样的已知边信道攻击是差分功耗分析(DPA)。这可以包括恶意用户研究设备使用期间功率使用的痕迹,并且利用统计分析来确定加密算法的特征。
随着当前可用的标准化算法和协议的使用(像是在银行业务或电子政务中使用的算法和协议),针对差分功耗分析(DPA)(以及差分故障攻击)的攻击情形是存在的,导致设备实现受这样的边信道攻击威胁的协议(例如,由于始终以相同的(主)密钥来加密变化的输入,系统的功率签名中的变化仅取决于或一般取决于加密算法的变化)。
对这种攻击的一种解决方案是使用密钥更新(re-keying)方法。在这样的方法中,会话密钥从主密钥导出,随后将该会话密钥用于实际操作。该会话密钥有规律地变化,以减少针对具体的(主)密钥可以从设备获取的功率痕迹的量。
该密钥更新的特殊实例已经应用在CIPURSE协议中。在该方法中,通过使用随机输入以及更容易进行保护以对抗实现攻击的函数(称作NLM(非线性映射)),使用主密钥导出中间会话密钥。然后,该中间会话密钥与主密钥一起使用,以得到所使用的会话密钥(参见参考US2010316217A1)。上述对这样的DPA攻击的解决方案依靠双方之间的随机数协定。这样的方法防止验证先前交易。具体地,在没有随机数的情况下不可能重复会话。
相对新的研究领域是泄露弹性密码术。在泄露弹性(LR)中寻求避免典型的DPA情形,在典型的DPA情形中,可以以针对每个执行的改变的输入,逐组块地(即以组块为单位,例如逐字节地)攻击分组密码的密钥。在LR方法中,多次执行分组密码,其中仅逐组块地(例如,每次1个比特)来使用完整的输入向量并且将其复制到分组密码的整个输入状态。在每个迭代中,下一个输入组块被用作输入(再次地,复制到整个状态)。这限制了数据复杂性,即可以用于攻击的痕迹的数量,并且在不同密钥组块的边信道信息之间创建依从性。然而,由于针对每个密钥有N>1个痕迹,对手仍然可以应用DPA攻击。
总的来说,在没有实现重大对策且不需要详细的边信道调查的低成本IC上执行对称密码安全服务时仍然存在问题。以下公开旨在处理这些问题。
发明内容
根据本发明的第一方案,提供了用于保护密码设备对抗边信道攻击的方法,该方法包括:
从密码设备的存储器获得密钥;
向加密模块提供密钥和恒定的数据比特输入;
使用加密模块导出加密数据比特的输出;
向密钥更新模块提供输出、密钥和输入向量;以及
使用所述密钥更新模块基于输入向量的至少一部分来修改密钥以导出更新的密钥。
以这种方式使用密钥减少或去除了下层加密模块中对攻击对策的需求,并且还防止了详细的边信道调查。因为使用了密钥更新技术,不能使用已更新密钥来通过边信道攻击来导出原始的主密钥。密钥更新模块所应用的变换需要知道原始主密钥,因为它们使用根据输入向量和密钥导出的加密模块输出。此外,因为向加密模块的(明文)输入是恒定的,仅可获得单个功率痕迹。这提供了对抗边信道攻击(例如DPA,其试图将统计分析应用到密码过程和算法的功率管理痕迹)的安全性。
在本公开的实施例中,方法还包括以下步骤:向加密模块提供已更新密钥和恒定输入;以及使用加密模块导出已更新输出。
这样的实施例通过提供已根据已更新密钥和所提供的输入向量导出的已更新输出来提高已更新密钥的安全性。因为已更新输出使用已更新密钥而不是原始的主密钥来进行加密,保护了原始的主密钥的安全性。
此外,该方法还可以包括以下步骤:向密钥更新模块提供已更新输出、已更新密钥和输入向量;以及使用所述密钥更新模块基于输入向量的至少第二部分来修改已更新密钥。通过进一步修改已更新密钥,该步骤从主密钥中发展出进一步更新的密钥。
输入向量可以包括两个或两个以上部分。因此,这样的方法步骤可以针对输入向量的每个部分进行重复。具体地,以下步骤可以迭代多次,其次数等于输入向量的部分的数量:向加密模块提供已更新密钥和恒定输入;以及使用加密模块导出已更新输出,并且向密钥更新模块提供已更新输出、已更新密钥和输入向量;以及使用密钥更新模块来更新已更新密钥。
换言之,可逐组块地(即以组块为单位,例如以字节或比特为单位)提供输入向量。例如,针对长度为128比特的输入向量,该输入向量可被看做包括64个部分或组块,每个部分长2比特。然后可以借助伪随机函数来导出伪随机输出。因此,密钥更新模块可被看做是担当伪随机函数步骤,基于输入向量的至少部分的值来处理输入向量和密钥以导出伪随机输出(例如已更新密钥)。在该考虑中,输入向量和密钥是伪随机函数的输入。
在实施例中,可以提供一个或多个附加输入向量。然后可以针对每个附加输入向量,使用伪随机函数来导出伪随机输出。然后可以将每个伪随机输出级联以形成更大的伪随机输出。
输入向量的部分可以包括至少比特串的值。此外或备选地,输入向量的部分可以是输入向量的至少1个比特的值。因此,密钥更新模块可以基于输入向量的比特值来导出已更新密钥。密钥更新模块可以进行动作,以应用所限定的密钥更新协议来根据输入向量的比特的值来修改密钥或已更新密钥。例如,针对比特0的0比特值可以指示密钥更新函数将密钥的所选择的比特向右循环1个比特位置。相反地,针对比特0的比特值1可以指示密钥更新函数将密钥的同一比特或其它比特向右循环2个比特位置。根据可用于更新函数的算法,可以有其它排列。
如上所述,基于输入向量的比特的值,密钥更新模块可以使用压缩、展开或排列操作中的一个或多个来变换或修改密钥或先前更新的密钥。
利用迭代增加了原始获得的密钥(称作主密钥)与已更新密钥之间依从性的复杂性,因此使得更难以导出密钥树中较高的密钥。这进而借助差分故障分析阻碍了密钥恢复,特别是针对原始获得的主密钥而言。此外,因为每个密钥只使用相同的输入(即,向每个加密模块提供的输入是恒定的),每个密钥迭代的功率痕迹是相同的,并且因此每个密钥的功率测量对于上述差分功耗分析攻击是有弹性的。
在一些示例中,密钥更新模块可以将输出的值或者已更新输出循环多个比特。例如,比特的数量可以取决于输入向量的至少一部分的值。
备选地或附加地,已更新密钥可以是密钥或先前已更新密钥的至少一部分与已更新输出的至少一部分的级联。如上所述,向密钥更新模块提供加密模块的输出以及密钥和输入向量。因此,为了生成长度足够的已更新密钥,先前的密钥可被压缩或分成单独的部分(例如左部分和右部分,这基于比特的数量),并且与输出或已更新输出相组合以生成已更新密钥。在处理输入的一部分并且因此对已更新密钥进行更新之前,如果输出长度/密钥长度比允许,还可以使用输出对密钥的完全替换。可以设想到的是,还可以使用用于生成已更新密钥的备选技术,例如使用盐(salt)来填充输出或已更新输出以及先前密钥中的一个或多个的一些或全部,以生成已更新密钥。
所描述的方案提供了不依赖于各方之间的密钥协定的泄露弹性类型方案。这允许再现和/或验证先前的交易或消息认证码。此外,不同于通过继续沿着输入向量的值发展或通过提供新的输入向量来针对每一个实例生成已更新密钥,当前的方法只使用一次临时的或已更新的密钥(本质上不存在会话密钥)。
在第二方案中,提供了在客户端设备与主机设备之间提供数据安全通信的方法,所述方法包括:
向客户端设备提供客户端微处理器和客户端存储器,其中,客户端设备包括存储在客户端存储器中的密钥;
向主机设备提供主机微处理器和主机存储器;
在主机设备与客户端设备之间建立安全连接;
从主机设备向客户端设备提供至少一个输入向量;
基于输入向量,使用第一方案的方法的至少一部分来导出至少一个已更新密钥和至少一个已更新输出;以及
通过使用所述已更新输出作为密钥流,使用所述已更新输出来加密客户端设备与主机设备之间的通信。
该方案可以有利于临近耦合设备和邻近集成电路芯片之间的通信协议。智能卡连同RFID设备是这种芯片的一个示例。这样的设备需要主机设备与客户端设备之间的认证。此外,这样的设备允许客户端设备基于主机设备提供的输入向量来向主机设备提供拥有密钥的证据。
在上述方案中,加密模块可以是根据任何加密算法的分组密码器。这样的加密算法包括PRESENT算法或者高级加密标准算法。使用还可在设备上提供备选功能的现有分组密码允许所描述的密码密钥生成的门等效(ge)元件封装(footprint)保持最小。这使得设备可低成本。
在另一个相关方案中,提供了对数据进行加密的方法,所述方法包括:
向密码设备提供微处理器和存储器,其中该设备包括存储在存储器中的密钥以及加密模块;
向设备提供输入向量;
基于输入向量和伪随机输出,使用第一方案的至少一部分方法来导出已更新密钥;
提供将要加密的数据;以及
使用已更新密钥对数据进行加密。
在另一个实施例中,加密模块可以用于认证协议,使得协议对于DPA攻击不脆弱。这提高了这样的认证协议的安全性。
另一个方案可以涉及用于密码设备的集成电路,该密码设备包括微处理器和存储器,其中该设备包括存储在存储器中的密钥、加密模块和密钥更新模块,从而集成电路被配置为执行任何前述方案的方法。
该方案提供了保护密码设备对抗实现攻击(例如边信道攻击)的安全性。
在另一方案中,提供了消息认证码生成方法,所述方法包括:
向密码设备提供根据上述集成电路方案的集成电路;
向该设备提供输入向量和恒定输入;
基于输入向量,使用第一方案的至少一部分方法来导出已更新密钥和已更新输出;以及
使用已更新输出作为消息认证码。
此外,输入向量可以与计数器级联,以产生若干输入并且由此产生更长的输出。
在实施例中,加密模块可以是解密模块或者是加密解密模块。
使用标准加密模块(例如对称分组密码器)以及如上所述的方法提供了加密密钥,该加密密钥使得在分组密码实现本身中,在没有任何特殊对策(除了以并行方式(parallelism)阻止简单功率分析以外)的情况下,不能发生如差分功耗分析和故障攻击等的实现攻击。通过重复地执行分组密码并同时使数据输入保持恒定(例如全部是0、全部是1),从原始密码密钥开始,基于输入向量来修改密钥。这允许在没有昂贵的对策并且不需要详细的边信道分析的情况下具有“通过设计得到的安全”方法。本公开可以在例如认证协议中替换标准分组密码。
可以提供计算机程序,当在计算机上运行该程序时,导致计算机配置包括本文公开的电路、控制器、传感器、滤波器或设备的任何装置,或者执行本文公开的任何方法。该计算机程序可以是软件实现,并且该计算机可以看做是任何合适的硬件,包括数字信号处理器、微控制器以及在只读存储器(ROM)、可擦可编程只读存储器(EPROM)或电可擦除可编程只读存储器(EEPROM)(作为非限制示例)中的实现。软件实现可以是汇编程序。
计算机程序可以在计算机可读介质上提供,该计算机可读介质可以是物理计算机可读介质,例如磁盘或存储设备,或者可以表现为瞬态信号。这样的瞬态信号可以是包括因特网下载的网络下载。
附图说明
现在将参照附图对本公开进行描述,其中类似的附图标记用来表示类似的元素:
图1是现有技术安全服务的框图;
图2是主机设计与客户端设备之间通信的框图;
图3是根据本发明的密码术基本要素;
图4是图3的密码术基本要素的流程图;并且
图5是图3的密码术基本要素的备选流程图。
应当注意的是,附图是概略图并且未按比例绘制。为了在附图中清楚和方便,这些附图的部分的相对尺寸和比例已经在尺寸上扩大或缩小地示出。一般使用相同的附图标记在修改实施例和不同实施例中表示对应或类似的特征。
具体实施方式
图1示出了具有输入IV(输入向量)20、密钥(K)30、分组密码器40和输出50的现有技术安全服务10。这样的现有技术安全服务的操作是:使用密钥30对输入向量20进行加密,以提供已加密的密文或输出50。分组密码器40提供如何使用密钥来对输入进行加密的指令。
攻击方法是检查分组密码器的内部代码,例如S-box。进行该活动的一种方法是使用边信道攻击。例如,通过分析电磁功率消耗和使用统计,可以确定S-box的结构。这样的攻击通常被称为差分功耗分析攻击。
例如图1中示出的安全服务可以用在用于读取并且与无源设备(例如射频识别(RFID)标签)通信的服务器或主机上,例如计算机或临近耦合设备。
图2示出了主机120和客户端无源设备140的示例。在示出的示例中,主机120可以是临近耦合设备(PCD),并且客户端设备140可以是临近集成电路芯片(PICC),例如适于用在根据本公开的密钥分布协议中的RFID标签或智能卡140。在该实施例中,主机120是计算机,其中包括处理器130、存储器132和卡接口134。智能卡140包括输入/输出接口142、处理器144和存储器146。主机120通过卡接口134和输入/输出接口142与智能卡140通信。处理器144可以是被配置为提供如下文更加详细描述的密码处理操作的微处理器或有限状态机。卡140的存储器146可以是电子静态或动态随机存取存储器(RAM)、磁性存储器或信息存储元件的其它合适的布局。卡接口134和输入/输出接口142可以与标准卡接口相一致,例如个人电脑存储卡接口适配器(PCMCIA)标准或非接触通信接口(如ISO 14443)。
在如图2中示出的本公开示例性实施例中,卡140用于生成密钥流。然后,在主机120上操作的处理向卡提供加密数据输入以用来解密。然后卡140使用密钥流执行解密。这允许卡140被实现为具有相对有限的计算功率和低输入/输出带宽的设备。在该示例中,假设卡140将作为无状态设备来操作,使得当前的输出仅取决于当前的输入,而不取决于任何先前的输入。针对给定的输入n,卡140将因此输出具有由输入n、存储在存储器146中的密钥K以及在卡140中产生或者通过主机120向卡140提供的随机或伪随机比特序列所确定的值的函数。该假设认识到很多当前可用的智能卡包括有限的存储、处理和输入/输出能力。
本公开使用单个常数(密钥),其与已知输入组合以生成伪随机输出。如指出的,为了防止使用边信道攻击(如差分功耗分析攻击)的攻击,一项技术是频繁地改变密钥,或者建立硬件来防止攻击。
图3描绘了保护密码处理对抗实现攻击(例如边信道攻击)的过程。通过与图1中示出的类似的方法,加密模块(例如分组密码器240)被配置为基于恒定的输入210和密钥230来产生输出250。在所示出的示例中,输入210长n个比特,密钥230长m个比特,以及对应的输出长n个比特。在示出的示例中,输入210具有0值(即全部n个比特的值是0)。应当设想到输入和输出可以是任意长度。通常,密钥长128个比特。
向密钥更新模块260馈送输出250连同密钥230的值。还向密钥更新模块260提供输入向量270。逐组块地(即以组块为单位,例如逐字节地)向密钥更新模块馈送输入向量。在图3中,输入向量270长k*j个比特,并且以j个比特的组块为单位向密钥更新模块260馈送。第一次迭代按比特[0…j-1]、第二[j…2j-1]比特、直至最后一个组块[(k-1)j…kj-1]来进行馈送。这将输入向量270分为多个部分2700、270a…270k。密钥更新模块260包含(在第一次迭代中)提供已更新密钥230a的密钥更新函数(参见图4)。还可向密钥更新模块260提供输入向量270的一部分2700(即逐比特地提供输入向量,每次单个比特)。由输入向量2700向密钥更新模块260提供的单个比特或组块的值来确定如何更新密钥230。基于输入向量2700(或270a…270k)提供的单个比特或组块的值、输出2500(或250a…250k)、密钥2300(或230a…230k)的值和密钥更新模块260中的密钥更新函数,密钥更新模块260提供已更新密钥230a(或230b…230k)。
针对输入向量270的每个部分或比特重复上述过程。因此,如图4所示,将已更新密钥230a连同输入210一起向分组密码器240提供(同样,在示出的实施例中,输入210具有0值)。假设密钥230a的值已经改变,输出值250a也与第一次迭代的输出250不同。同样,将输出250a和已更新密钥230a连同输入向量270a的下一个比特一起向密钥更新模块260提供。基于输入向量270a的下一个比特的值、已更新输出250a和已更新密钥230a,密钥更新模块260的密钥更新函数提供第二已更新密钥230b
针对输入向量270的所有比特迭代重复上述过程,直到提供(最后一次迭代)已更新密钥230k。然后,该已更新密钥230k可以与输入210k组合,并且向分组密码器240提供,以提供输出值250k。输出250k可以用作密钥流。输出250k还可以用于馈送密钥流生成函数。输出250k可以用作针对输入的消息认证码。输出250k还可以用于馈送消息认证码生成函数。
图4详细描述了密码术基本要素,且具体地,图3所示的密钥更新模块260中的密钥更新函数。在图4中,密钥230包括左半边2320和右半边2340。密钥230的每个半边包含密钥比特的一半,所以针对128个比特的密钥,左半边包含比特127:64,并且右半边包含比特63:0。将密钥230连同输入210一起向加密模块240(例如分组密码器)提供。输出2500是由加密模块240输出的的密文(C0)252。除了密钥、加密模块和输入以外,提供被逐比特地分析的输入向量2700,使得可确定输入向量2700的每个比特272的值274。取决于输入向量2700的每个比特272的值274,使用密文输出252与原始密钥230的级联来导出密钥230a。在示出的示例中,输入向量的两个值都规定输出252与原始密钥230的右手侧2340级联。丢弃原始密钥的左右侧2320。取决于所选择的输入向量2700的比特272的值274,可以对原始密钥的右手侧2340执行操作。例如,如图4所示,比特272的0值274导致密钥2340的右手侧以1比特的值进行第一循环(即输出252相对于密钥2340的右手侧的位置C0)。相反地,比特272的1值274导致密钥的不同循环(在示出的示例中是2比特的循环),以及密钥2340的右手侧相对于输出252的不同位置。在两种情况下,这形成了已更新密钥230a1或230a2。
可以看出,如果将128比特的原始密钥与64比特的输入一起使用,则输出的值可以长64比特。将该输出值与原始密钥的一半级联提供128比特的已更新密钥。级联的形式可以取决于输入向量270的比特272的值274。级联的形式还可以采取备选的形式,例如使用盐、常数、计数器、随机数或其它密码结构。
可以设想到的是,除了级联以外或作为级联的备选,还可以对密钥执行其它函数。例如,密钥的右手侧234可以循环若干个比特。图4中示出的示例使用原始密钥的简单压缩来提供已更新密钥。也可使用展开和其它排列。
还可以设想到的是,对密钥执行的函数可以取决于输入向量270的一个以上的比特。图5中示出了一个这样的示例。图5示出了图4中示出的基本要素的单个迭代的备选结构。在该变体中考虑输入向量270的两个比特的值。可以设想到的是,可以应用输入向量270的任何部分(即1或更多的比特)。
例如,输入向量提供备选树形路径270a1、270a2、270a3、270a4来更新密钥。选择路径270a1、270a2、270a3、270a4取决于输入向量的比特ab的值。在示出的示例中,针对比特ab的值00的是路径270a1,其导致密钥234a右手侧与输出252a的级联,并伴随密钥向右循环1比特。路径270a2(比特值01)导致密钥234a的右手侧与输出252a之间的备选级联,2比特的循环被应用到密钥。比特值10导致路径270a3以及密钥234a的右手侧与输出252a之间的级联并伴随3比特的循环,并且最后,值11导致路径270a4与路径270a3的备选级联并伴随4比特的循环.
取决于所确定的输入向量比特的值,基于原始密钥的值和输出导出已更新密钥230b。然后,可通过分析输入向量270b的下一个组块的比特cd的比特值来进一步修改已更新密钥,导致已更新密钥230b的左手侧232b和右手侧234b(图5中只示出了右手侧234b)与已更新输出值252b的级联(同样伴随根据比特cd的值而应用的循环)。针对第二次迭代,取决于输入向量270的比特cd的值,备选路径270b1、270b2、270b3、270b4是可能的。
输入向量270的该部分的大小可以允许密钥更大数量的可能变换或更新,该变换或更新取决于输入向量的该部分的值。例如,使用输入向量的8比特部分为密钥更新函数提供众多路径。将更大的比特值用于输入向量的该部分还允许更短的处理。
本公开减少对密钥随机性的需要。允许基于任何常数的加密。通过改变输入向量的值,最终的已更新密钥230k也发生变化。此外,对于每个密钥来说只存在一个输入,并因此只存在单个功率测量。因此,统计方式的边信道攻击(如差分功耗攻击)是低效的。
本公开描述了逐比特地处理输入。因此,针对任意长度输入的输出将会是n个比特的输出。一般而言,使用密钥来加密常数。在本示例中使用了0值,然而输入可以具有任意长度和任意值。在使用密钥对常数进行加密之后,对输入因子进行细分,并将其用于逐步地修改密钥。这针对密钥创建了树状的结构。这还创建了伪随机函数。
密钥更新模块260的密钥更新函数可以应用到任何加密协议。通过针对每个密钥只产生单个功率痕迹,防止了边信道攻击。此外,不存在从外部不能控制的随机性。可以对每个交易进行相同的重放。如果提供的输入向量270相同,则最终的已更新密钥230k也将会是相同的。
不同于其它加密密钥更新方法,不存在会话密钥。相反,针对输入向量的比特值的每个迭代,对先前的密钥进行重写。因此,不可能根据会话密钥来确定或重新创建先前的密钥,并且因此主密钥对于攻击而言并不脆弱。
本公开的另一个应用可以在认证中。参照图2,临近集成电路芯片能够在客户端存储器146中存储主密钥230。在客户端设备140与主机设备120之间的接触期间,标准认证协议可被用于确定主机和客户端两者之间是相互可信任的。客户端设备140可以应用上述的伪随机函数,该伪随机函数使用从主机设备120接收的输入向量以生成输出。在这个阶段,该输出可以被看做是消息认证码(MAC),并且然后可以通过I/O和卡接口134、142向主机设备传递。
通过阅读本公开,其它变化和修改对于本领域技术人员来说将会是显而易见的。这样的变化和修改可以包括等同物和其它特征,该等同物和其它特征在密码领域中是已知的,并且可以使用来替代或附加本文已经公开的特征。
虽然附带的权利要求针对特征的特定组合,但是应该理解的是,本发明的公开范围还包括这里明确或隐含公开的或由此归纳的任何新特征或特征的任何新组合,不管其是否涉及与任何权利要求中当前所要求保护的发明相同的发明或是否如本发明一样解决了部分或全部的相同技术问题。
分离的实施方式的上下文中描述的特征也可在单个实施方式中组合提供。反过来,为了简明而在单个实施方式的上下文中描述的各个特征也可被分别提供或以任何适当的子组合来提供。
申请人在这里注明,可在本申请或由此导出的任何进一步申请的答辩过程中对这种特征或特征的组合构成新的权利要求。
为了完整起见,还注明术语“包括”不排除其他元素或步骤,术语“一”不排除多个,单个处理器或其它单元可实现权利要求中所记载的若干装置的功能,而且权利要求中的参考符号不应被理解为限制权利要求的范围。

Claims (15)

1.一种用于保护密码设备对抗实现攻击的方法,其中所述方法使用具有单个功率痕迹的多个密钥来对抗实现攻击,所述方法包括:
a)从所述密码设备的存储器中获得密钥;
b)向加密模块提供所述密钥和恒定输入;
c)使用所述加密模块导出加密数据比特的输出;
d)向密钥更新模块提供所述输出、所述密钥和输入向量;
e)基于所述输入向量的至少一部分,使用所述密钥更新模块来修改所述密钥以导出已更新密钥;其中所述密钥更新模块针对多个密钥只产生单个功率痕迹。
2.根据权利要求1所述的方法,还包括以下步骤:
f)向所述加密模块提供所述已更新密钥和所述恒定输入;以及
g)使用所述加密模块导出已更新输出。
3.根据权利要求2所述的方法,还包括以下步骤:
h)向所述密钥更新模块提供所述已更新输出、所述已更新密钥和所述输入向量;以及
i)基于所述输入向量的至少第二部分,使用所述密钥更新模块修改所述已更新密钥。
4.根据权利要求3所述的方法,其中,所述输入向量包括两个或两个以上部分,以及针对所述输入向量的每个部分重复方法步骤f)到i),使得所述方法形成伪随机函数,以及所述方法还包括以下步骤:
借助所述伪随机函数导出伪随机输出。
5.根据权利要求4所述的方法,还包括以下步骤:
提供一个或多个附加输入向量;
使用所述伪随机函数导出针对每个附加输入向量的伪随机输出;以及
级联所述伪随机输出,以形成更大的伪随机输出。
6.根据前述权利要求中任一项所述的方法,其中,所述输入向量的所述部分是所述输入向量的至少一个比特的值。
7.根据权利要求1-5中任一项所述的方法,其中,所述密钥更新模块使用压缩、展开或排列操作中的一个或多个来修改所述密钥或先前更新的密钥。
8.根据权利要求7所述的方法,其中,根据向所述密钥更新模块提供的所述输入向量的至少一部分的值来选择用于修改所述密钥或所述已更新密钥的操作。
9.根据权利要求2-5中任一项所述的方法,其中,所述已更新密钥是所述密钥或先前更新的密钥的至少一部分与所述已更新输出的至少一部分的级联。
10.根据权利要求1-5中任一项所述的方法,其中,所述密钥更新模块将所述输出或所述已更新输出的与所述密钥或所述已更新密钥的部分相级联的部分循环多个比特。
11.根据权利要求10所述的方法,其中,所述比特的数量取决于所述输入向量的至少一部分的值。
12.一种在客户端设备与主机设备之间提供安全的数据通信的方法,所述方法包括:
向客户端设备提供客户端微处理器和客户端存储器,其中所述客户端设备包括存储在所述客户端存储器中的密钥;
向主机设备提供主机微处理器和主机存储器;
在所述主机设备与所述客户端设备之间建立安全连接;
从所述主机设备向所述客户端设备提供至少一个输入向量;
使用权利要求2到11中任一项的方法,基于所述输入向量导出至少一个已更新密钥和至少一个已更新输出;以及
通过使用所述已更新输出作为密钥流,使用所述已更新输出来加密所述客户端设备与所述主机设备之间的通信。
13.根据权利要求1-5中任一项所述的方法,其中,所述加密模块是根据加密算法的分组密码器,所述加密算法是PRESENT算法或高级加密标准算法。
14.一种用于密码设备的集成电路,所述集成电路包括微处理器和存储器,其中所述设备包括存储在所述存储器中的密钥、加密模块和密钥更新模块,从而所述集成电路被配置为执行前述权利要求中任一项的方法。
15.一种消息认证码生成方法,所述方法包括:
向密码设备提供根据权利要求14所述的集成电路;
向所述设备提供输入向量;
向所述设备提供恒定输入;
基于所述输入向量,使用权利要求2或其任一从属权利要求所述的方法,导出已更新密钥和已更新输出;以及
使用所述已更新输出作为消息认证码。
CN201510497587.6A 2014-09-10 2015-08-13 保护密码设备对抗实现攻击 Active CN105406957B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP14184296.3A EP2996277B1 (en) 2014-09-10 2014-09-10 Securing a crytographic device against implementation attacks
EP14184296.3 2014-09-10

Publications (2)

Publication Number Publication Date
CN105406957A CN105406957A (zh) 2016-03-16
CN105406957B true CN105406957B (zh) 2019-01-29

Family

ID=51494207

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510497587.6A Active CN105406957B (zh) 2014-09-10 2015-08-13 保护密码设备对抗实现攻击

Country Status (3)

Country Link
US (1) US9961057B2 (zh)
EP (1) EP2996277B1 (zh)
CN (1) CN105406957B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3089398B1 (en) 2015-04-30 2017-10-11 Nxp B.V. Securing a cryptographic device
US10615959B2 (en) * 2015-07-22 2020-04-07 Megachips Corporation Memory device, host device, and memory system
US10826694B2 (en) 2018-04-23 2020-11-03 International Business Machines Corporation Method for leakage-resilient distributed function evaluation with CPU-enclaves
DE102018130177A1 (de) * 2018-11-28 2020-05-28 Infineon Technologies Ag Ausführen von kryptographischen Operationen in einer Steuereinheit eines Fahrzeugs

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101779412A (zh) * 2007-06-05 2010-07-14 奥利多公司 用于数据加密的伪随机生成的密码学方法和设备、及消息的密码学散列

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AT360866T (de) * 1998-07-02 2007-05-15 Cryptography Res Inc Leckresistente aktualisierung eines indexierten kryptographischen schlüssels
WO2000077974A1 (en) * 1999-06-11 2000-12-21 Liberate Technologies Hierarchical open security information delegation and acquisition
TW545023B (en) * 1999-12-10 2003-08-01 Koninkl Philips Electronics Nv Synchronization of session keys
KR20050087271A (ko) * 2004-02-26 2005-08-31 삼성전자주식회사 가변 키 길이를 가지는 초기 라운드 키에 대응하는 암호라운드 키와 복호 라운드 키를 선택적으로 발생하는 키스케쥴 장치
JP2008252299A (ja) * 2007-03-29 2008-10-16 Hitachi Ltd 暗号処理システム及び暗号処理方法
DE102009024604B4 (de) 2009-06-10 2011-05-05 Infineon Technologies Ag Erzeugung eines Session-Schlüssels zur Authentisierung und sicheren Datenübertragung
DE102009046436A1 (de) * 2009-11-05 2011-05-12 Robert Bosch Gmbh Kryptographisches Hardwaremodul bzw. Verfahren zur Aktualisierung eines kryptographischen Schlüssels
GB2491896A (en) * 2011-06-17 2012-12-19 Univ Bruxelles Secret key generation
KR101874119B1 (ko) * 2012-02-07 2018-07-03 삼성전자주식회사 서버 및 클라이언트 간의 인증 방법, 기계로 읽을 수 있는 저장 매체, 클라이언트 및 서버
US9959429B2 (en) * 2013-03-15 2018-05-01 Cryptography Research, Inc. Asymmetrically masked multiplication
US9294266B2 (en) * 2013-06-27 2016-03-22 Qualcomm Incorporated Method and apparatus to encrypt plaintext data
US9860216B2 (en) * 2013-09-16 2018-01-02 Axis Ab Anonymous decisions in an access control system
US9407437B1 (en) * 2014-03-25 2016-08-02 Amazon Technologies, Inc. Secure initialization vector generation
KR102208072B1 (ko) * 2014-09-01 2021-01-27 삼성전자주식회사 데이터 처리 시스템
TWI581599B (zh) * 2015-04-30 2017-05-01 鴻海精密工業股份有限公司 金鑰生成系統、資料簽章與加密系統和方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101779412A (zh) * 2007-06-05 2010-07-14 奥利多公司 用于数据加密的伪随机生成的密码学方法和设备、及消息的密码学散列

Also Published As

Publication number Publication date
US9961057B2 (en) 2018-05-01
EP2996277B1 (en) 2018-11-14
US20160072779A1 (en) 2016-03-10
EP2996277A1 (en) 2016-03-16
CN105406957A (zh) 2016-03-16

Similar Documents

Publication Publication Date Title
CN104468089B (zh) 数据保护装置及其方法
CN105406957B (zh) 保护密码设备对抗实现攻击
CN102725737B (zh) 可验证防泄漏的加密和解密
US20170373832A1 (en) Methods and devices against a side-channel analysis
US8332634B2 (en) Cryptographic systems for encrypting input data using an address associated with the input data, error detection circuits, and methods of operating the same
US20200195417A1 (en) Cryptography circuit particularly protected against information-leak observation attacks by the ciphering thereof
CN103988461A (zh) 用于对数据进行解密的设备和方法
CN102970132B (zh) 一种防止对分组算法进行功耗分析和电磁辐射分析的防护方法
CN105007256B (zh) 用于在非信任平台上执行安全功能的安全模块
CN108352981B (zh) 被布置用于计算目标块加密的密码设备
Garcia et al. Dismantling iclass and iclass elite
CN103404073B (zh) 针对无源监听的保护
Naija et al. Security enhancements of a mutual authentication protocol used in a HF full-fledged RFID tag
Garcia et al. Wirelessly lockpicking a smart card reader
CN106100823B (zh) 保护密码装置
Maleki et al. New clone-detection approach for rfid-based supply chains
Hell et al. An AEAD variant of the grain stream cipher
Ziener et al. Configuration tampering of BRAM-based AES implementations on FPGAs
Hettwer et al. Side-Channel Analysis of the Xilinx Zynq UltraScale+ Encryption Engine.
CN111066077A (zh) 加密装置、加密方法、解密装置以及解密方法
CN107766725B (zh) 抗模板攻击的数据传输方法及系统
KR20200022018A (ko) Sbox를 이용하는 암호화 프로세스를 고차 부채널 공격으로부터 보호하기 위한 방법
Mikami DESIGN METHODOLOGY OF SECURE RFID TAG IMPLEMENTATION
Redonet Klip A Built-In Self-Test as a Countermeasure for Fault Injection Attacks on Cryptographic Devices
CN109726565A (zh) 在抗泄漏原语中使用白盒

Legal Events

Date Code Title Description
PB01 Publication
C06 Publication
SE01 Entry into force of request for substantive examination
C10 Entry into substantive examination
GR01 Patent grant
GR01 Patent grant