加密装置及其操作方法与流程

文档序号:17490633发布日期:2019-04-23 20:27阅读:268来源:国知局
加密装置及其操作方法与流程

本申请主张在2017年10月16日在韩国知识产权局提出申请的韩国专利申请第10-2017-0134252号的优先权以及在2018年3月7日在韩国知识产权局提出申请的韩国专利申请第10-2018-0027082号的优先权,所述韩国专利申请中的每一者的公开内容全文并入本申请供参考。

根据本公开的设备、装置及方法涉及一种加密装置以及一种操作所述加密装置的方法,且更具体来说,涉及一种用于随机地执行虚拟操作的加密装置以及一种操作所述加密装置的方法。



背景技术:

智能卡及集成电路(integratedcircuit,ic)卡包括用户的安全信息。为防止因黑客攻击等泄露安全信息,需要用于对通过签名及授权传送的安全信息进行加密及传送的加密/解密装置。

实现加密/解密装置的重要因素之一是应用防止侧信道分析(sidechannelanalysis,sca)的方法。可使用随机地或统一地传播作为通过侧信道收集的信息的功率及电磁波的方法作为以上方法。



技术实现要素:

本发明的一方面提供一种加密装置及一种操作所述加密装置来随机地执行虚拟操作及真实操作的方法以及一种操作所述加密装置的方法,其提供相对于侧信道攻击的防卫功能。

根据示例性实施例的一方面,提供一种操作加密装置来执行真实操作及虚拟操作的方法,所述方法包括:执行虚拟操作;当接收到真实操作请求信号时,判断所执行的所述虚拟操作是否已完成;以及响应于所述虚拟操作已完成,响应于所述真实操作请求信号来执行真实操作。

根据示例性实施例的另一方面,提供一种操作用于执行虚拟操作及真实操作的加密装置的方法,所述虚拟操作及所述真实操作中的每一者包括多个回合操作,所述多个回合操作中的每一者包括多个子回合操作,所述多个子回合操作被分类成真实子回合操作及虚拟子回合操作,所述方法包括:将与所述多个子回合操作相关的计数值及随机值初始化,并开始形成包括多个子回合操作的回合,所述多个子回合操作包括一个真实子回合操作及多个虚拟子回合操作;通过对所述子回合操作进行计数来导出计数值;当所述计数值等于所述随机值时,执行所述一个真实子回合操作,且当所述计数值不同于所述随机值时,执行所述多个虚拟子回合操作中的一者;以及当所述计数值等于参考计数值时,完成所述回合。

根据示例性实施例的另一方面,提供一种用于执行虚拟操作及真实操作的加密装置,所述虚拟操作及所述真实操作各自包括多个回合操作,所述多个回合操作各自包括多个子回合操作,所述多个子回合操作被分类成真实子回合操作及虚拟子回合操作,所述加密装置包括:第一虚拟操作寄存器,被配置成存储第一虚设数据及第一虚设加密密钥,所述虚拟子回合操作是基于所述第一虚设数据及所述第一虚设加密密钥;第二虚拟操作寄存器,被配置成存储第二虚设数据及第二虚设加密密钥,所述虚拟子回合操作是基于所述第二虚设数据及所述第二虚设加密密钥;以及第一多路复用器,被配置成从所述第一虚拟操作寄存器接收第一输出及从所述第二虚拟操作寄存器接收第二输出,基于随机位来选择所述第一输出或所述第二输出中的一者,并输出所述第一输出或所述第二输出中被选择的所述一者。

附图说明

通过结合附图阅读以下详细说明,将更清楚地理解示例性实施例,在附图中:

图1是根据示例性实施例的装置的方块图。

图2是根据示例性实施例的加密装置的详细方块图。

图3是根据示例性实施例的操作加密装置的方法的流程图。

图4是根据示例性实施例的操作加密装置的方法的流程图。

图5是用于解释根据示例性实施例的加密装置的操作的时序图。

图6是示出根据示例性实施例的用于执行加密操作的加密装置的一部分的图。

图7是根据示例性实施例的加密装置的回合形成操作的流程图。

图8是示出根据示例性实施例的用于回合形成操作的加密装置的一部分的图。

图9是示出根据示例性实施例的在执行回合形成操作时可设定的选项的实例的表。

图10是根据示例性实施例的其中在形成回合时执行多个回合的实例的概念图。

图11是根据示例性实施例的操作加密装置的方法的流程图。

图12是用于解释根据示例性实施例的加密装置的操作的表。

图13是根据示例性实施例的用于执行加密操作的加密装置的一部分的图。

图14是示出根据示例性实施例随着加密装置的操作而变化的功率波形的曲线图。

图15是根据示例性实施例的存储卡的方块图。

[符号的说明]

1:装置;

10、1022:加密装置;

20:处理器;

30:接口;

40:存储器;

110:加密/解密控制器;

112:虚拟操作控制器;

114:虚拟操作寄存器;

120:密钥排程器;

130:数据功能模块;

210:减法器;

220、320、440:第一多路复用器;

230、330、450:第二多路复用器;

240:第三多路复用器;

250:延迟计数器;

260:比较器;

310:加法器;

340:计数器;

350:寄存器;

360:第一比较器;

370:第二比较器;

410:第一虚拟操作寄存器;

420:第二虚拟操作寄存器;

430:真实操作寄存器;

900:主机;

1000:存储卡;

1010:主机接口;

1020:存储器控制器;

1030:闪存存储器接口;

dt:数据;

i_v1、i_v2:初始值;

num_d:延迟数;

r_b:随机位;

r_num:随机值;

r_op:真实操作;

real_sub_round、rr:真实子回合操作;

s_r_op:真实操作请求信号;

s_v_op:虚拟操作请求信号;

s10、s20、s30、s40、s50、s110、s120、s130、s140、s150、s160、s170、s210、s220、s230、s240、s250、s260、s310、s320、s330:操作;

sub_real_on:真实子回合操作执行信号;

sub_round_cnt:计数值;

t1:第一时间点;

t1:表;

t2:第二时间点;

t3:第三时间点;

t4:第四时间点;

t5:第五时间点;

v_op:虚拟操作;

virtual_sub_round、vr:虚拟子回合操作。

具体实施方式

在下文中,将参照附图详细阐述一个或多个示例性实施例。

图1是根据示例性实施例的装置1的方块图。

参照图1,装置1可包括加密装置10、处理器20、接口(interface,i/f)30及存储器40。装置1可与外部装置之间收发数据dt。举例来说,装置1可与智能卡、存储卡或另一种装置收发数据dt。

处理器20可通过接口30来与位于装置1外部的一个或多个其他装置之间收发数据dt。处理器20可执行任务且可将任务结果存储在存储器40中。举例来说,处理器20可包括多个核心。

存储器40可存储用于处理器20的操作的各种类型的数据。存储器40可被实施为例如动态随机存取存储器(dynamicrandomaccessmemory,dram)、移动dram、静态随机存取存储器(staticram,sram)、相变随机存取存储器(phasechangeram,pram)、铁电随机存取存储器(ferroelectricram,fram)、电阻式随机存取存储器(resistiveram,rram或reram)和/或磁性随机存取存储器(magneticram,mram)。

加密装置10可对从装置1外部接收到的数据dt执行加密和/或解密。加密装置10可通过基于加密算法执行加密操作来维持数据dt的安全性。加密算法可为例如利用加密密钥产生加密数据的算法。加密算法可包括各种算法,例如,消息摘要算法(message-digestalgorithm)(md5)、安全散列算法(securehashalgorithm,sha)、李维斯特-萨莫尔-阿德曼算法(rivestshamiradleman,rsa)、高级加密标准(advancedencryptionstandard,aes)及数据加密标准(dataencryptionstandard,des)。

根据示例性实施例的加密装置10可执行加密操作的真实操作以及与真实操作不相关的虚拟操作。真实操作及虚拟操作可分别包括真实回合操作及虚拟回合操作。在本说明书中,真实操作及虚拟操作可为包括回合操作(真实回合操作或虚拟回合操作)的加密/解密操作。在示例性实施例中,一个虚拟回合操作及一个真实回合操作可各自包括子回合操作。举例来说,子回合操作可被分类成真实子回合操作及虚拟子回合操作。

在示例性实施例中,虚拟操作的一个回合及真实操作的一个回合可各自包括一个真实子回合操作以及第一数的多个虚拟子回合操作。也就是说,虚拟操作的一个回合可包括一个真实子回合操作以及第一数的多个虚拟子回合操作,且真实操作的一个回合可包括一个真实子回合操作以及第一数的多个虚拟子回合操作。举例来说,在一个回合中执行真实子回合操作及虚拟子回合操作的次序可随机地改变。在示例性实施例中,一个回合中所包括的真实子回合操作的数目与虚拟子回合操作的数目之和可为2的幂。换句话说,通过将‘1’加到第一数目获得的值可为2的幂。

图2是根据示例性实施例的加密装置的详细方块图。举例来说,图2可为图1所示加密装置10的详细方块图。

参照图2,加密装置10可包括加密/解密控制器110、密钥排程器120及数据功能模块130。加密/解密控制器110可控制加密装置10的总体操作。加密/解密控制器110可包括虚拟操作(virtualoperation,v-op)控制器112及虚拟操作(virtualoperation,v_op)寄存器114。

在示例性实施例中,当请求真实操作时,虚拟操作控制器112可基于延迟数num_d来控制在执行真实操作之前将执行的虚拟操作的数目,延迟数num_d指示从加密装置10外部接收的延迟的数目。举例来说,当在对数据功能模块130执行虚拟操作的同时请求真实操作时,虚拟操作控制器112可将数据功能模块130控制成使得虚拟操作被执行与延迟数num_d一样多次且接着执行真实操作。

举例来说,延迟数num_d可为从位于加密装置10外部的主机(图中未示出)接收到的值。作为另一个实例,虚拟操作控制器112可基于从位于加密装置10外部的随机数产生器接收到的随机值r_num对在执行真实操作之前将执行的虚拟操作的数目进行控制。

在示例性实施例中,虚拟操作寄存器114可各自存储用于虚拟子回合操作的一对数据与加密密钥。举例来说,每一个虚拟操作寄存器114可包括第一虚拟操作寄存器及第二虚拟操作寄存器,且第一虚拟操作寄存器及第二虚拟操作寄存器中的每一者可存储一对虚拟数据与虚拟加密密钥。

在示例性实施例中,基于随机值r_num中所包括的某些随机位,可选择第一虚拟操作寄存器及第二虚拟操作寄存器中的一者。一个虚拟子回合操作可基于存储在第一虚拟操作寄存器及第二虚拟操作寄存器中的所选择的一个虚拟操作寄存器中的虚设数据及虚设加密密钥来执行。也就是说,每当执行虚拟子回合操作时,均可选择第一虚拟操作寄存器及第二虚拟操作寄存器中的一者。然而,以上说明仅为实例,且虚拟操作寄存器114的数目并非仅限于此。

密钥排程器120可对每一个子回合操作的加密密钥进行处理。在示例性实施例中,密钥排程器120可接收存储在寄存器中的加密密钥且可基于针对每一个子回合操作设定的规则对所接收的加密密钥执行移位操作。规则可为预先设定的。存储加密密钥的寄存器可为虚拟操作寄存器114或真实操作寄存器(图中未示出)。在通过执行移位操作对加密密钥进行处理之后,密钥排程器120可将经处理的加密密钥提供到数据功能模块130。另外,密钥排程器120可将经处理的加密密钥更新到在处理所述加密密钥之前提供所述加密密钥的寄存器。

数据功能模块130可基于加密密钥对输入的数据dt执行加密操作。数据功能模块130可基于加密密钥通过执行例如排列以借此对数据dt的位的位置进行混合来执行加密操作。作为另外一种选择或另外地,数据功能模块130可基于加密密钥通过执行替换以借此以其他映射数据替换所述数据来执行加密操作。数据功能模块130可将被执行加密操作的数据dt更新到寄存器。根据数据dt以及加密密钥的类型而定,由数据功能模块130执行的操作可被确定为真实子回合操作及虚拟子回合操作中的一者。

在示例性实施例中,当数据功能模块130基于真实数据及真实加密密钥执行加密操作时,加密操作可被确定为真实子回合操作。作为另外一种选择,当数据功能模块130基于虚设数据及虚设加密密钥执行加密操作时,加密操作可被确定为虚拟子回合操作。然而,示例性实施例并非仅限于此。当数据功能模块130基于虚设数据及真实加密密钥、或基于真实数据及虚设加密密钥执行加密操作时,加密操作可被确定为虚设子回合操作。

在示例性实施例中,当在由数据功能模块130执行虚拟操作的同时由加密/解密控制器110接收到真实操作请求信号时,数据功能模块130可不停止且可继续执行处于在接收到真实操作请求信号时正在执行的进程中的虚拟操作,从而完成虚拟操作。换句话说,数据功能模块130可执行处于在接收到真实操作请求信号时正在执行的进程中的虚拟操作中所包括的所有回合操作,从而在执行由真实操作请求信号请求的真实操作之前完成回合操作。

图3是根据示例性实施例的操作加密装置的方法的流程图。举例来说,图3可为图2所示加密装置10的操作的流程图。在下文中,将参照图2阐述图3所示流程图。

参照图3,在操作s10中,加密装置10可开始执行虚拟操作。在示例性实施例中,一个单位的虚拟操作可包括多个回合操作。每一回合操作可为例如真实回合操作或虚拟回合操作。虚拟操作可通过例如数据功能模块130来执行。

接着,在操作s20中,加密装置10可判断是否接收到真实操作请求信号。当未接收到真实操作请求信号时(s20,否),加密装置10可继续执行虚拟操作。举例来说,加密装置10可完成当前正在执行的虚拟操作且可开始执行新的虚拟操作。

另一方面,当接收到真实操作请求信号时(s20,是),加密装置10可判断当前正在执行的虚拟操作是否已完成。当确定虚拟操作未完成时(s30,否),加密装置10可在操作s40中继续执行虚拟操作中所包括的虚拟回合操作。另外,当确定虚拟操作完成时(s30,是),加密装置10可在操作s50中接着开始执行真实操作。

根据示例性实施例,尽管接收到真实操作请求信号,然而由于加密装置10可不立即执行真实操作且可继续执行虚拟操作来完成所述虚拟操作,因此尽管在加密装置10上存在侧信道攻击(例如,攻击者的功率波形分析),也不会确定出真实操作部分。也就是说,并不响应于真实操作请求信号而立即开始真实操作,由此混淆加密装置10上的侧信道攻击。因此,加密装置10可相对于侧信道攻击具有增强的防卫功能。

图4是根据示例性实施例的操作加密装置的方法的流程图。举例来说,图4可为图2所示加密装置10的操作的流程图。在本文中将不再重复已参照图3提供的说明。

参照图4,加密装置10可在操作s110中执行虚拟操作且可在操作s120中判断在执行虚拟操作的同时是否接收到真实操作请求信号。当未接收到真实操作请求信号时(s120,否),加密装置10可继续执行虚拟操作。

当接收到真实操作请求信号时(s120,是),在操作s130中加密装置10可接收指示延迟数目的延迟数num_d。举例来说,延迟数num_d可为从位于加密装置10外部的主机(图中未示出)接收到的值,或者可为从位于加密装置10外部的随机值产生器(图中未示出)接收到的随机值。随机值可通过例如位于加密装置10外部的线性反馈移位寄存器(linearfeedbackshiftregister,lfsr)或随机数产生器(randomnumbergenerator,rng)产生。

在接收延迟数之后,在操作s140中,加密装置10可判断虚拟操作是否完成。当确定虚拟操作未完成时(s140,否),加密装置10可在操作s150中继续执行虚拟操作中所包括的虚拟回合操作。

另外,当确定已完成虚拟操作时(s140,是),加密装置10可在操作s160中将虚拟操作重复执行与延迟数num_d相等的次数。举例来说,当延迟数num_d指示延迟的数目等于n时(其中,n是等于或大于1的自然数),除了在接收到真实操作请求信号时正在执行的虚拟操作之外,加密装置10可还将虚拟操作执行n-1次。然而,示例性实施例并非仅限于此。当延迟数num_d等于n时,除了在接收到真实操作请求信号时正在执行的虚拟操作之外,加密装置10可将虚拟操作执行n次。也就是说,延迟数可包括或不包括在接收到真实操作请求信号时正在执行的虚拟操作。作为另一个实例,加密装置10可基于从外部接收到的随机值r_num来控制在操作s170处执行真实操作之前将执行的虚拟操作的次数。

在本示例性实施例中,已阐述了加密装置10在操作s120中接收真实操作请求信号且接着在操作s130中接收指示延迟数目的延迟数num_d。然而,示例性实施例并非仅限于此。也就是说,加密装置10可在正在执行虚拟操作的同时在任何时间接收延迟数。

根据示例性实施例,尽管接收到真实操作请求信号,然而不会立即执行真实操作,且在将虚拟操作进一步重复执行与延迟数num_d一样多的次数之后执行真实操作。因此,尽管在加密装置10上存在侧信道攻击,但不会确定出真实操作部分。因此,加密装置10可相对于侧信道攻击具有增强的防卫功能。

图5是用于解释根据示例性实施例的加密装置的每一操作的时序图。举例来说,图5可为用于解释图2所示加密装置10的操作的时序图。在下文中,将参照图2阐述图5所示时序图。

参照图5,可在第一时间点t1处将虚拟操作请求信号s_v_op激活。举例来说,当执行加密装置10的虚拟操作的选项接通时,加密装置10可被复位,且虚拟操作请求信号s_v_op可被激活。作为另一个实例,当执行加密装置10的虚拟操作的选项关闭时,执行加密装置10的虚拟操作的选项被接通,且虚拟操作请求信号s_v_op可被激活。

虚拟操作可基于被激活的虚拟操作请求信号s_v_op执行。另外,在第一时间点t1处,加密装置10可接收指示延迟的数目的延迟数num_d。在图5中示出的本示例性实施例中,阐述了每一个信号在逻辑高状态中被激活。然而,示例性实施例并非仅限于此,且信号可在逻辑低状态中被激活。另外,在本示例性实施例中,延迟数num_d等于‘4’,但这只是为便于解释而提供的实例,且示例性实施例并非仅限于此。

可响应于虚拟操作请求信号s_v_op执行第一虚拟操作(①)及第二虚拟操作(②)。在响应于虚拟操作请求信号s_v_op执行第三虚拟操作(③)的同时,可在第二时间点t2处将真实操作请求信号s_r_op激活。在示例性实施例中,加密装置10可不停止且可在第二时间点t2处继续执行第三虚拟操作(③),从而完成第三虚拟操作(③)。也就是说,加密装置10可执行第三虚拟操作(③)中所包括的所有回合操作且到第三时间点t3为止可完成第三虚拟操作(③)。

在示例性实施例中,在第三时间点t3之后,加密装置10还可执行虚拟操作三次,例如图5中示出的第四虚拟操作(④)、第五虚拟操作(⑤)及第六虚拟操作(⑥)。也就是说,由于延迟数num_d等于‘4’且第三虚拟操作(③)是在真实操作请求信号s_r_op被激活之后到第三时间点t3为止完成,因此加密装置10还可执行其他虚拟操作(第四虚拟操作④到第六虚拟操作⑥)三次。然而,示例性实施例并非仅限于此。加密装置10可不对在第三时间点t3处完成的虚拟操作进行计数,且还可执行虚拟操作四次。

另外的虚拟操作可到第四时间点t4为止完成,且可执行真实操作。真实操作可从第四时间点t4执行到第五时间点t5,且真实操作请求信号s_r_op可在第五时间点t5处被去激活。

图6是示出根据示例性实施例的用于执行加密操作的加密装置的一部分的图。举例来说,图6可示出用于执行图4所示操作的逻辑电路结构的实例。举例来说,图6所示逻辑电路结构可包括在图2所示虚拟操作控制器112中。

参照图6,加密装置10可包括逻辑电路、延迟计数器250及比较器260以执行图4所示操作,逻辑电路包括减法器210、第一多路复用器220、第二多路复用器230及第三多路复用器240。基于来自比较器260的输出,第一多路复用器220可选择从减法器210输入的值或从延迟计数器250输入的值作为输出值。举例来说,在其中比较器260确定延迟计数器250的计数值不等于‘0’的情形中,第一多路复用器220可选择从减法器210输入的值作为输出值。

第二多路复用器230可响应于真实操作请求信号s_r_op选择延迟数或从第一多路复用器220输入的值作为输出值。举例来说,在其中真实操作请求信号s_r_op被激活的情形中,第二多路复用器230可选择从第一多路复用器220输入的值作为输出值。

第三多路复用器240可响应于最末回合信号来选择从延迟计数器250输入的值或从第二多路复用器230输入的值作为输出值。举例来说,最末回合信号可为在虚拟操作或真实操作中包括的最末回合操作期间被激活的信号。在其中最末回合信号被激活的情形中,第三多路复用器240可选择从第二多路复用器230输入的值作为输出值。

在执行虚拟操作的同时,当真实操作请求信号s_r_op被激活时,第一多路复用器220可被设定成选择从减法器210输入的值作为输出值,且第二多路复用器230可被设定成选择从第一多路复用器220输入的值作为输出值。另外,第三多路复用器240可被设定成选择从第二多路复用器230输入的值作为输出值。

因此,当真实操作请求信号s_r_op被激活时,延迟计数器250可通过每次从延迟数num_d减去‘1’来执行计数。比较器260可判断从延迟计数器250输出的值是否等于0,且当从延迟计数器250输出的值等于0时,可输出信号来执行真实操作。另外,由于第三多路复用器240基于最末回合信号是否被激活来选择输出值,因此当延迟数num_d等于‘0’时,尽管真实操作请求信号s_r_op被激活,加密装置10仍可完成已在执行的虚拟操作的最末回合操作的执行且接着可执行下一真实操作。

图7是根据示例性实施例的加密装置的回合形成操作的流程图。举例来说,图7可为图2所示加密装置10的操作的流程图。在下文中,将参照图2阐述图7所示流程图。

参照图7,在操作s210中,加密装置10可将计数器及随机值初始化且可开始一个回合。计数器可对依序执行的子回合操作进行计数。随机值可为当在一个回合中执行真实子回合操作时变成时间点的基础的值。举例来说,随机值可存储在寄存器中。在示例性实施例中,加密装置10可将从加密装置10的外部输入的随机值r_num作为初始化值存储在寄存器中。

在操作s220中,加密装置10可利用计数器对子回合操作进行计数且可导出计数值。在操作s230中,加密装置10可判断所导出的计数值是否等于经初始化的随机值。举例来说,比较器可将计数值与随机值进行比较并判断所输出的计数值是否等于随机值。

当计数值等于随机值时(s230,是),加密装置10可在操作s240中执行真实子回合操作。相反,当计数值不同于随机值时(s230,否),加密装置10可在操作s250中执行虚拟子回合操作。

在操作s260中,可进行判断来判断所导出的计数值是否等于参考计数值。参考计数值可预先设定。在示例性实施例中,参考计数值可为最大计数值。最大计数值可为例如在一个回合中将包括的子回合操作的数目。在示例性实施例中,最大计数值可为‘通过从2的幂减去1获得的值’。举例来说,比较器可将计数值与参考计数值进行比较并判断所输出的计数值是否等于参考计数值。

当计数值等于参考计数值时(s260,是),加密装置10可完成一个回合。相反,当计数值不同于参考计数值时(s260,否),加密装置10可再次返回到操作s220。

图8是示出根据示例性实施例的用于回合形成操作的加密装置的一部分的图。举例来说,图8可示出用于执行图7所示操作的逻辑电路结构的实例。举例来说,图8所示逻辑电路结构可包括在图2所示虚拟操作控制器112中。

参照图8,加密装置10可包括逻辑电路、计数器340、寄存器350以及用于回合形成操作的第一比较器360及第二比较器370,逻辑电路包括加法器310、第一多路复用器320及第二多路复用器330。在示例性实施例中,计数器340可对依序执行的子回合操作进行计数,且除了输入初始化值之外,计数器340可将计数的数目增加1。

当计数值具有最大值时,计数器340可执行初始化。举例来说,当计数值被表达为8位的二进制数时,最大值可为2’b1111_1111。举例来说,计数器340的初始值i_v1可为通过从最大值减去在一个回合中所包括的真实子回合操作及虚拟子回合操作被执行的次数而获得的值。第二比较器370可将最大计数值与计数器340的计数值进行比较且可基于两个值(即,最大计数值和计数值)是否彼此相等来输出指示一个回合结束的信号。

寄存器350可存储作为真实子回合操作的执行基础的随机值。举例来说,随机值可形成用于形成初始值i_v2的位中的至少一些位。寄存器350可通过输入初始值i_v2来执行随机值的初始化。举例来说,初始值i_v2可为从加密装置10的外部接收的随机值r_num。

第一比较器360可将计数器340的计数值与存储在寄存器350中的随机值进行比较。举例来说,当计数器340的计数值等于存储在寄存器350中的随机值时,第一比较器360可输出真实子回合操作执行信号sub_real_on。因此,可随机地确定当在一个回合中执行读取子回合操作时的时间点。

图9是示出根据示例性实施例的在回合形成操作期间可设定的各个选项的实例的表。举例来说,图9示出基于8个位来执行参照图7及图8阐述的回合形成操作。然而,这只是为便于解释而提供的实例,且示例性实施例并非仅限于此。在下文中,将参照图8阐述图9所示的表。

参照图9,基于8个位,计数器340的初始值i_v1可被表达为八个不同的位。另外,被输入到寄存器350的随机值的初始值i_v2可对应于计数器340的初始值i_v1且可被表达为八个不同的位。在初始值i_v2的位形成中,‘rand[]’可为随机函数。在图9中示出的本实例中,初始值i_v1及i_v2中的每一者是以硬件技术语言(例如,verilog)写入的。sub_round_cnt是由计数340处理的子回合操作的计数值。然而,这只是为便于解释而提供的实例,且示例性实施例并非仅限于此。

在示例性实施例中,可将执行在一个回合中所包括的真实子回合操作与虚拟子回合操作的比率设定为选项。举例来说,当虚拟子回合操作选项被给定为n(其中,n是等于或大于0的整数)时,真实子回合操作的数目与虚拟子回合操作的数目之和可被设定为2n+1。也就是说,当在一个回合中执行一个真实子回合操作与虚拟子回合操作时,且当虚拟子回合操作选项被给定为n时,可将执行虚拟子回合操作的次数设定为2n+1-1。

根据示例性实施例,加密装置10可将执行在一个回合中所包括的真实子回合操作与虚拟子回合操作的比率设定为选项,且因此可利用二进制寄存器结构中的简单逻辑来实施回合形成操作。

图10是根据示例性实施例的在形成回合时执行回合的实例的概念图。举例来说,图10示出图7及图8所示回合形成操作的结果的实例。

参照图10,执行包括五个回合操作的加密操作。举例来说,加密操作可为参照图5阐述的真实操作或虚拟操作。图10可示出以1:3的比率执行每一回合中所包括的真实子回合操作与虚拟子回合操作。也就是说,在五个回合操作中的每一者中,可随机地执行一个真实子回合操作及三个虚拟子回合操作。在每一个回合操作中,可基于初始值i_v2中所包括的随机位来确定在执行虚拟子回合操作时的时间点。因此,在执行加密操作时,可确保真实子回合操作的随机性,且可均匀地执行真实子回合操作。

图11是根据示例性实施例的操作加密装置的方法的流程图。举例来说,图11可为图2所示加密装置10的操作的流程图。在下文中,将参照图2阐述图11所示流程图。

参照图11,在操作s310中,加密装置10可接收随机位。举例来说,基于随机位,可选择虚拟操作寄存器114中的一者。在示例性实施例中,随机位可包括在从加密装置10的外部接收的随机值r_num中。随机位可如上所述通过例如位于加密装置10外部的lfsr或rng产生。

在操作s320中,加密装置10可基于随机位来选择虚拟操作寄存器114中的一者。举例来说,可通过基于随机位运行的多路复用器来执行对虚拟操作寄存器114中的一者的选择。在示例性实施例中,每一个虚拟操作寄存器114可存储虚拟子回合操作的一对虚设数据与虚设加密密钥。在操作s330中,加密装置10可基于存储在所选择的虚拟操作寄存器114中的虚设数据及虚设加密密钥来执行一个子回合操作。

图12是用于解释根据示例性实施例的加密装置的操作的表。

参照图12,在表t1中,示出虚拟操作v_op、真实操作r_op、虚拟子回合操作virtual_sub_round及真实子回合操作real_sub_round的组合。详细来说,在一个虚拟操作v_op中,可执行虚拟子回合操作virtual_sub_round及真实子回合操作real_sub_round。另外,在一个真实操作r_op中,可执行虚拟子回合操作virtual_sub_round及真实子回合操作real_sub_round。

在示例性实施例中,在一个虚拟操作v_op中,可基于一对虚设数据与虚设加密密钥来执行加密操作,而不论子回合操作是虚拟子回合操作virtual_sub_round还是真实子回合操作real_sub_round。作为另一个实例,在一个虚拟操作v_op中,可基于一对虚设数据与真实加密密钥或一对真实数据与虚设加密密钥来执行加密操作。

在示例性实施例中,在一个真实操作r_op中,在虚拟子回合操作virtual_sub_round的情形中,可基于所述一对虚设数据与虚设加密密钥来执行加密操作。作为另一个实例,在一个真实操作r_op中,在虚拟子回合操作virtual_sub_round的情形中,可基于所述一对虚设数据与真实加密密钥或所述一对真实数据与虚设加密密钥来执行加密操作。

在示例性实施例中,在一个真实操作r_op中,在真实子回合操作real_sub_round的情形中,可基于所述一对真实数据与真实加密密钥来执行加密操作。换句话说,在一个真实操作r_op中,基于真实数据及真实加密密钥的加密操作可为真实操作r_op中的真实子回合操作real_sub_round。

图13是根据示例性实施例的用于执行加密操作的加密装置的一部分的图。举例来说,图13可示出用于实施图11所示操作的逻辑电路结构的实例。举例来说,图13所示逻辑电路结构可包括在图2所示虚拟操作寄存器114中。

参照图13,加密装置10可包括逻辑电路及第二多路复用器450以实施图11所示操作,逻辑电路包括第一虚拟操作寄存器410、第二虚拟操作寄存器420、真实操作寄存器430以及第一多路复用器440。在本实施例中,存在两个虚拟操作寄存器。然而,一个或多个实施例并非仅限于此。

第一虚拟操作寄存器410可存储第一虚拟数据及第一虚拟加密密钥(虚拟数据/密钥1)。第二虚拟操作寄存器420可存储第二虚拟数据及第二虚拟加密密钥(虚拟数据/密钥2)。

第一多路复用器440可从第一虚拟操作寄存器410接收一对第一虚设数据与第一虚设加密密钥且可从第二虚拟操作寄存器420接收一对第二虚设数据与第二虚设加密密钥。第一多路复用器440还可接收随机位r_b且可基于随机位r_b选择性地接收所述一对第一虚设数据与第一虚设加密密钥以及所述一对第二虚设数据与第二虚设加密密钥中的一对。可在每一个虚拟子回合操作中执行对第一多路复用器440的选择。因此,即使当连续地执行虚拟子回合操作时,加密装置10仍可针对数据/加密密钥来随机地执行寄存器的切换。

第二多路复用器450可响应于真实子回合操作执行信号sub_real_on选择来自第一多路复用器440的输出及来自真实操作寄存器430的输出(即,真实数据/密钥)中的一者,且可输出所选择的输出。由于根据示例性实施例的加密装置10可随机地执行寄存器的切换而不论连续的子回合操作是虚拟子回合操作还是真实子回合操作,因此尽管存在侧信道攻击(具体来说,功率波形分析),但不会确定出真实操作部分。因此,加密装置10可对于侧信道攻击具有增强的防卫功能。

图14是示出根据示例性实施例随着加密装置的操作而变化的功率波形的曲线图。具体来说,图14所示曲线图示出在各子回合操作之间的转变功率。举例来说,图14可为随着图11所示加密装置的操作而变化的功率波形曲线图。图14示出在以1:3的比率执行真实子回合操作与虚拟子回合操作时的功率波形曲线图的实例。然而,这只是为便于解释而提供的实例,且示例性实施例并非仅限于此。

参照图14,在连续的虚拟子回合操作vr中消耗的功率可与当虚拟子回合操作vr被切换到真实子回合操作rr时消耗的功率相同,例如,这具有50%的机率。因此,由于通常不会推断出真实子回合操作rr是在功率消耗最多的一部分之前及之后执行,因此加密操作的稳定性可得到改善。

另外,可随机选择虚拟子回合操作vr,且因此,通常可不会推断出特定操作是在功率波形为低的一部分之前及之后执行。另外,由于虚拟子回合操作vr的比率大于真实子回合操作rr的比率,因此可有效地防止对真实回合操作的位置的干扰。

图15是根据示例性实施例的存储卡1000的方块图。

参照图15,存储卡1000可包括主机接口1010、存储器控制器1020及闪存存储器接口(闪存i/f)1030。另外,存储器控制器1020还可包括根据示例性实施例的加密装置1022。

主机接口1010可基于卡协议来执行与主机900的接口,以在主机900与存储卡1000之间交换各种类型的数据。存储卡1000可应用于多媒体卡(multimediacard,mmc)、安全数字(securitydigital,sd)卡、迷你sd卡、记忆棒、智能媒体、传输闪存卡(transflashcard)等。存储器控制器1020可通过闪存存储器接口1030从闪存存储器(图中未示出)接收数据/向所述闪存存储器传送数据。闪存存储器可为非易失性存储器,例如与非闪存存储器。存储器控制器1020可通过闪存存储器接口1030控制闪存存储器的各种操作。存储卡1000包括根据示例性实施例的加密装置1022,且尽管在存储卡1000上存在侧信道攻击,但不会确定出真实操作部分。因此,存储卡1000的稳定性可得到改善。

尽管已参照本发明概念的示例性实施例具体示出并阐述了本发明概念,然而应理解,在不背离以上权利要求书的精神及范围的条件下,可在本文中作出形式及细节上的各种改变。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1