首页 / 专利库 / 专利权 / 专利合作条约 / 第I章 / 国际申请 / 修改 / 用于执行抵抗密码攻击的密码过程的方法和计算设备、以及数据处理系统

用于执行抵抗密码攻击的密码过程的方法和计算设备、以及数据处理系统

阅读:308发布:2023-03-13

专利汇可以提供用于执行抵抗密码攻击的密码过程的方法和计算设备、以及数据处理系统专利检索,专利查询,专利分析的服务。并且针对包括原始置换表的所定义的密码过程,提供分裂掩码置换表以抵抗密码攻击。关于随机值数据字组和掩码值来定义分裂掩码置换表。通过以下步骤来定义分裂掩码置换表中的条目:从由随机值数据字组中相应的一个所掩码的原始掩码置换表中相应的条目中选择比特;以及从由掩码值所掩码的随机值数据字组中相应的一项中选择比特。在 修改 后的密码过程中可使用分裂掩码置换表以允许产生掩码输出,其中修改后的密码过程基于所定义的密码过程。在执行修改后的密码过程期间,当 访问 分裂掩码置换表中的每一个条目时,对分裂掩码置换表进行刷新。,下面是用于执行抵抗密码攻击的密码过程的方法和计算设备、以及数据处理系统专利的具体信息内容。

1.一种由计算设备实现的方法,用于执行抵抗所述计算设备上的密码攻击的多分裂掩码置换表密码过程,所述密码过程包括基于所定义的密码过程的密码步骤,所定义的密码过程接受输入(29),产生输出,而且使用一个或多个原始定义的置换表(8);所述密码过程接受输入(29)并产生与由掩码值所掩码的输出相对应的掩码输出(34),所述方法包括步骤:
定义掩码值(14);
针对一个或多个原始定义的置换表中的每一个原始定义的置换表,通过利用对应的至少一个随机值数据字对原始定义的置换表中的数据字条目进行掩码,并且利用所述掩码值对对应的至少一个随机值数据字中的一个进行掩码,以形成分裂表条目,并且根据预定分配排列对分裂表条目的比特进行分配,以形成两个或多个分裂掩码置换表的组中的条目,产生针对所述原始定义的置换表的两个或多个分裂掩码置换表的组,在密码过程中代替所述原始定义的置换表和掩码值来使用所述两个或多个分裂掩码置换表的组;
通过将输入(29)的副本输入到所产生的分裂掩码置换表的组(24、26),对输入(29)执行密码步骤,从而产生分裂掩码置换表输出组;以及
将分裂掩码置换表输出组合并(32、33),从而获得与掩码值所掩码的输出相对应的掩码输出(34)。
2.根据权利要求1所述的方法,还包括刷新步骤,即:在执行密码步骤期间,当访问每一个分裂掩码置换表中的每一个条目时,对该条目进行刷新,通过以下步骤来实现所述刷新步骤:定义随机刷新数据字(74),利用所述随机刷新数据字中适合的比特来对分裂掩码置换表条目中的每一个比特进行掩码(72)。
3.根据权利要求1-2之一所述的方法,其中将分裂掩码置换表输出组合并这个步骤包括:合并步骤,之后是重组步骤(32、33)。
4.根据权利要求1所述的方法,其中针对每一个都具有以比特定义的字长的数据字条目S[x],产生针对原始定义的置换表S(x)的两个或多个分裂掩码置换表的组这个步骤包括以下步骤:
定义(130)n组随机值数据字r1(x)..rn(x),每一个数据字都具有限定了比特位置的比特,每一组随机值数据字包括数据字条目,使得数据字r1[x]、...、rn[x]与原始定义的置换表中的数据字条目S[x]相对应;以及
针对每一个数据字条目S[x],通过以下步骤产生与S(x)相对应的两个或多个分裂掩码置换表的组,
利用随机值组中的相应数据字r1[x],...,rn[x]对数据字条目S[x]进行掩码(134),以定义掩码数据字(136),所述掩码数据字具有限定了比特位置的比特,利用相应的随机值组的所选值r1[x]对掩码值进行掩码(138),以定义S[x]的随机化掩码数据字(140),所述随机化掩码数据字具有限定了比特位置的比特,以及通过从掩码的数据字、随机化掩码数据字中,以及在随机值组的大小n为2或更大的情况下,还从组中除了所选值r1[x]之外的随机值数据字中,选择比特来产生(150)分裂掩码置换表中的每一个条目,由此从原始数据字中相应限定的比特位置选出用于定义每一个分裂掩码置换表条目的每一个所选比特,分裂掩码置换表的条目中的每一个比特按照预先选择的图案来定义。
5.根据权利要求4所述的方法,其中通过从所述数据字中选择连续的比特来执行以下步骤:从掩码数据字中、随机化掩码数据字中,以及在随机值组的大小n为2或更大的情况下,还从组中除了所选值r1[x]之外的随机值数据字中,选择比特;而且产生分裂掩码置换表中每一个条目这个步骤包括步骤:将选出的连续比特进行串接以形成条目。
6.根据权利要求5所述的方法,其中随机值组的大小n为1且掩码数据字和随机化掩码数据字的长度是32位,比特选择包括步骤:选择掩码数据字和随机化掩码数据字中的前
16比特,通过串接形成第一分裂掩码置换表中的条目(20);另一比特选择包括步骤:选择掩码数据字和随机化掩码数据字中的第二16比特,通过串接形成第二分裂掩码置换表中的条目(22)。
7.根据权利要求4至6中任意一项所述的方法,还包括步骤:在执行密码过程期间,当访问每一个分裂掩码置换表中的每一个条目时,对该条目进行刷新,通过以下步骤来实现所述刷新步骤:定义随机刷新数据字(74),利用所述随机刷新数据字中适合的比特对分裂掩码置换表条目中的每一个比特进行掩码(72),由此,与从掩码数据字、随机化掩码数据字中以及在随机值组的大小n为2或更大的情况下从组中除了所选值r1[x]之外的随机值数据字中选出的比特相对应的条目中的每一个比特由随机刷新数据字中的相同比特所掩码。
8.根据权利要求1-2、4-6中任意一项所述的方法,其中所定义的密码过程是AES加密或解密过程。
9.一种计算设备,用于执行抵抗密码攻击的多分裂掩码置换表密码过程,所述密码过程包括基于所定义的密码过程的密码步骤,所定义的密码过程接受输入,产生输出,而且使用一个或多个原始定义的置换表(8),所述密码过程接受输入(29)并产生与所述输出相对应的掩码输出,所述计算设备包括:
用于定义掩码值(14)的装置;
用于针对一个或多个原始定义的置换表中的每一个原始定义的置换表,通过利用对应的至少一个随机值数据字对原始定义的置换表中的数据字条目进行掩码,并且利用所述掩码值对对应的至少一个随机值数据字中的一个进行掩码,以形成分裂表条目,产生两个或多个分裂掩码置换表的组(24、26)的装置,并且用于产生的装置还包括:根据预定分配排列对分裂表条目的比特进行分配,以形成两个或多个分裂掩码置换表的组中的条目的装置,在密码过程中可代替所述原始定义的置换表和掩码值来使用所述两个或多个分裂掩码置换表的组(24,26);
用于通过将输入(29)的副本输入到所产生的分裂掩码置换表的组(24、26),对输入执行密码步骤,从而产生分裂掩码置换表输出组的装置;以及
用于将分裂掩码置换表输出组合并(32、33),从而获得掩码输出(34)的装置,所述掩码输出与由所述掩码值所掩码的所定义密码过程的输出相对应。
10.一种数据处理系统或网络,包括至少一个根据权利要求9所述的计算设备。

说明书全文

用于执行抵抗密码攻击的密码过程的方法和计算设备、以

数据处理系统

技术领域

[0001] 本发明大体上涉及计算系统,更具体地,本发明涉及实现加密操作和对加密操作的如功率分析攻击等的攻击的对策的计算系统。
[0002] 背景技术
[0003] 计算系统通常要求以安全的方式执行操作。对于嵌入式计算设备和普及的系统来说,操作安全性通常是至关重要的。为了确保操作和通信的安全,这些系统采用了密码方法。这种密码方法的实施方式本身必须是安全的。然而,密码方法受到了攻击。实施密码方法的计算设备上的一种非入侵攻击是已知的功率分析攻击。另一种攻击则是基于对执行密码过程的设备进行电磁分析。虽然下文参考功率攻击进行描述,可以理解的是,所讨论的对策也适用于电磁分析攻击。
[0004] 功率分析攻击包括:在设备执行密码方法时,监测设备的一个或多个组件的功耗。随后,使用统计方法来导出密码方法所意欲保密的信息。差分功率分析(PDA)是功率分析攻击的一个示例,它可以用于攻击包括一个或多个表(置换表或“S盒”)的索引的密码操作,其中索引是密钥和明文值的组合(“Differential Power Analysis”,P.Kocher,CRYPTO’99,Lecture Notes in Computer Science,1666,pp.388-397,1999,Springer-Verlag)。
[0005] 已经提出了用于抵制这种攻击的不同对策,包括:使用不同的随机输出掩码(mask)来频繁地重新产生表(“Securing the AESFinalists Against Power Analysis Attacks”,T.Messerges,FSE2000,Lecture Notes in Computer Science,1978,pp.150-164,2001,Springer-Verlag);以及使用固定值掩码来频繁地重新产生表,其中仅使用了固定数目的掩码(“DPA countermeasure based on the ‘masking method’”,K.Itoh et al.,ICICS 2001,Lecture Notes inComputer Science,2288,pp.440-456,2001,Springer-Verlag)。然而,重新产生的表或多重掩码的表的使用或变化都需要额外的存储器、功率和处理器资源,这些资源不总是可用,而且通常不希望分配这些资源。 [0006] EP1601132公开了一种针对密码过程或系统的改进对策,其中单独定义的随机值用于对置换表中的条目进行掩码以定义掩码置换表。然而,没有公开对表进行掩码之前的置换表分裂步骤,该步骤产生了分裂的掩码表组。
[0007] US2005/232430公开了一种针对计算设备上的差分功率分析攻击的对策。该对策包括分裂掩码值组的定义。分裂的掩码值应用于关键值,该关键值与关于表掩码值而定义的掩码表一同使用。通过随机产生n-1个分裂掩码值,并且通过对表掩码值与n-1个随机产生的分裂掩码值进行异或运算产生第n个分裂掩码值,来定义包括n个分裂掩码值的组。 [0008] Kouichi Itoh et al“DPA Countermeasure based on the MaskingMethod”,Proceedings of ICICS,International Conference onInformation Communications and Signal Processing,6 December2001,pages 440 to 456公开了一种基于掩码方法的概率差分功率分析对策,它需要很少的随机存取存储器,因而适用于低成本智能卡。 [0009] 因此,需要可以抵抗差分功率攻击和相关攻击并具有较小等待时间开销的密码对策。

发明内容

[0010] 根据本发明的一方面,优选地提供了一种针对密码过程或系统的改进对策。 [0011] 根据本发明的另一方面,优选地提供了一种由计算设备实施的方法,用于产生在密码过程中使用的分裂掩码表,关于具有数据字条目S[x]的原始置换表S(x)来定义所述密码过程,每一个条目S[x]都具有以比特定义的字长,所述方法包括步骤:定义n组随机值数据字r1 (x)..rn(x),每一个数据字都具有限定了比特位置的比特,每一组随机值数据字都包括数据字条目,数据字r1[x]、...rn[x]与原始置换表中的条目S[x]相对应;定义掩码值;通过以下步骤产生分裂掩码表组:针对每个条目S[x],通过利用随机值组中相应的数据字r1[x]、...、rn[x]对数据字S[x]进行掩码,以定义具有限定了比特位置的比特的掩码数据字;利用相应的随机值组中的所选值r1[x]对掩码值进行掩码,以定义针对具有限定了比特位置的比特的S[x]的随机化掩码数据字;以及通过从掩码数据字、随机化掩码数据字以及(在随机值组的大小为2或更大的情况下)组中除了所选值r1[x]之外的随机值数据字中选择比特,来产生分裂掩码表中的每一个条目,由此从原始数据字中相应的限定比特位置选出用于定义每一个分裂掩码表条目的每一个所选比特,其中分裂掩码置换表中条目的每一个比特按照预先选择的图案来定义。
[0012] 根据本发明的另一方面,优选地提供了上述方法,其中通过从数据字中选择连续的比特来执行以下步骤:从掩码数据字、随机化掩码数据字以及(在随机值组的大小为2或更大的情况下)组中除了所选值r1[x]之外的随机值数据字中选择比特,而且产生分裂掩码表中每一个条目的步骤包括步骤:把所选的连续比特进行串接以形成条目。 [0013] 根据本发明的另一方面,优选地提供了上述方法,其中随机值组的大小n为1且掩码数据字的长度和随机化掩码数据字的长度是32位,比特选择包括步骤:选择掩码数据字和随机化掩码数据字中的前16比特,通过串接形成第一分裂掩码表中的条目;另一比特选择包括步骤:选择掩码数据字和随机化掩码数据字中的第二16比特,通过串接形成第二分裂掩码表中的条目。
[0014] 根据本发明的另一方面,优选地提供了一种由计算设备实施的方法,用于执行抵抗所述计算设备上的密码攻击的密码过程,所述密码过程包括基于所定义的密码过程的密码步骤,所定义的密码过程的特征在于:接受输入并产生输出,使用一个或多个原始定义的置换表。所述方法的特征在于:接受输入并产生掩码输出,所述掩码输出对应于由所述掩码值所掩码的输出。所述方法包括下列步骤:定义掩码值; 将一个或多个原始定义的置换表分裂,以产生一个或多个分裂置换表组,并且基于掩码值对一个或多个分裂置换表组进行掩码,从而产生一个或多个分裂掩码表组;通过使用每一个分裂掩码表组,根据所定义的密码过程,执行密码过程中的输入密码步骤,以产生分裂掩码表输出组;以及将分裂掩码表输出组合并,以获得掩码输出,所述掩码输出与由所述掩码值掩码的、所定义密码过程的输出相对应。
[0015] 根据本发明的另一方面,优选地提供上述方法,还包括刷新步骤,即:在执行密码步骤期间,当访问每一个分裂掩码表中的每一个条目时,对该条目进行刷新。通过以下步骤来实现所述刷新步骤:定义随机刷新数据字,利用所述随机刷新数据字中适合的比特对分裂掩码表条目中的每一个比特进行掩码。
[0016] 根据本发明的另一方面,优选地提供了上述方法,其中将分裂掩码表输出组组合这个步骤包括:合并步骤,之后是重组步骤。
[0017] 根据本发明的另一方面,优选地提供了上述方法,其中对于每一个条目S[x]具有以比特定义的字长的数据字条目S[x],针对原始定义的置换表S(x)之一,产生每一个分裂掩码表组这个步骤包括以下步骤:定义n组随机值数据字r1(x)..rn(x),每一个数据字都具有限定了比特位置的比特,每一组随机值数据字包括数据字条目,数据字r1[x]、...、rn[x]与原始置换表中的条目S[x]相对应;通过以下步骤产生与S(x)相对应的分裂掩码表组:针对每个条目S[x],通过利用随机值组中的相应数据字r1[x]、...、rn[x]对数据字S[x]进行掩码,以定义掩码数据字,所述掩码数据字具有限定了比特位置的比特;利用相应的随机值组中的所选值r1[x]对掩码值进行掩码,以定义S[x]的随机化掩码数据字,它具有限定了比特位置的比特;以及通过从掩码数据字、随机化掩码数据字以及(在随机值组的大小为2或更大的情况下)组中除了所选值r1[x]之外的随机值数据字中选择比特来产生分裂掩码表中的每一个条目,由此从原始数据字中相应的限定比特位置选出用于定义每一个分裂掩码表条目的每一个所选比特,分裂掩码置换表中条目的每一个比特按照预先选择的图案来定义。
[0018] 根据本发明的另一方面,优选地提供了上述方法,其中通过从数据字中选择连续的比特来执行以下步骤:从掩码数据字、随机化掩码数据字以及(在随机值组的大小为2或更大的情况下)组中除了所选值r1[x]之外的随机值数据字中选择比特,而且产生分裂掩码表中每一个条目这个步骤包括步骤:将选出的连续比特进行串接以形成条目。 [0019] 根据本发明的另一方面,优选地提供了上述方法,其中随机值组的大小n为1且掩码数据字的长度和随机化掩码数据字的长度是32位,比特选择包括步骤:选择掩码数据字和随机化掩码数据字中的前16比特,通过串接形成第一分裂掩码表中的条目;另一比特选择包括步骤:选择掩码数据字和随机化掩码数据字中的第二16比特,通过串接形成第二分裂掩码表中的条目。
[0020] 根据本发明的另一方面,优选地提供了上述方法,还包括步骤:在执行密码步骤期间,当访问每一个分裂掩码表中的每一个条目时,对该条目进行刷新。通过以下步骤来实现所述刷新步骤:定义随机刷新数据字,利用所述随机刷新数据字中适合的比特对分裂掩码表条目中的每一个比特进行掩码。由此,与从掩码数据字、随机化掩码数据字以及(在随机值组的大小为2或更大的情况下)组中除了所选值r1[x]之外的随机值数据字中选出的比特相对应的条目中的每一个比特由随机刷新数据字中的相同比特掩码。
[0021] 根据本发明的另一方面,优选地提供了上述方法,其中所定义的密码过程是AES加密或解密过程。
[0022] 根据本发明的另一方面,优选地提供了一种计算设备程序产品,用于执行密码过程以抵抗密码攻击,所述计算设备程序产品包括具有计算设备可读程序产品代码的计算设备可用介质,所述程序代码可以由计算设备、仪器和/或系统的处理器执行,以实现上述方法。
[0023] 根据本发明的另一方面,优选地提供了一种计算设备、仪器和/或系统,用于执行抵抗密码攻击的密码过程,所述密码过程包括基于所定义的密码过程的密码步骤,所定义的密码过程的特征在于:接受输入并产生输出,使用一个或多个原始定义的置换表。所述密码过程的特征在于:接受输入并产生与输出相对应的掩码输出,所述计算设 备、仪器和/或系统包括:用于定义掩码值的装置;用于将一个或多个原始定义的置换表分裂,以产生一个或多个分裂置换表组,并且基于掩码值对一个或多个分裂置换表组进行掩码,从而产生一个或多个分裂掩码表组的装置;用于通过使用每一个分裂掩码表组,对输入执行密码过程中的密码步骤,以产生分裂掩码表输出组的装置,其中所述密码步骤基于所定义的密码过程;以及用于将分裂掩码表输出组合并,从而获得掩码输出的装置,所述掩码输出与由所述掩码值掩码的、所定义密码过程的输出相对应。
[0024] 根据本发明的另一方面,优选地提供了一种数据处理系统或网络,包括根据上文所述的至少一个计算设备、仪器和/或系统。附图说明
[0025] 附图中作为示例仅示出了本发明的优选实施例
[0026] 图1是示出了根据优选实施例的分裂表产生的简单示例的框图
[0027] 图2是示出了根据优选实施例,在AES(高级加密标准)加密过程中使用分裂表的框图;
[0028] 图3是示出了根据优选实施例,重新组合掩码表中的数据的简单示例的框图; [0029] 图4是示出了根据优选实施例,刷新分裂表中的值的步骤的框图; [0030] 图5是示出了优选实施例的示例的框图,其中单个原始置换表和两个随机值组用于产生4个分裂掩码置换表;以及
[0031] 图6是示出了优选实施例的示例的框图,其中单个原始置换表和三个随机值组用于产生4个分裂掩码置换表。

具体实施方式

[0032] 优选实施例的优点包括:由于按照优选实施例执行的加密具有并行性,所以为实施优选实施例的设备增加了对DPA攻击或其它类似密码攻击的抵抗性。另外,由于可用样本的数量减小,使用如优选实施例所述的表分裂令更高等级的加密攻击(例如DPA攻击)变得更为困难。例如,可能得到反映包括随机掩码比特和掩码表输出比特的数据的单 个功率样本,但是这个单个可用样本可能不足以使更高等级的DPA攻击得以实现。 [0033] 优点包括:针对置换表使用了变化的掩码,这减小了能量、性能和程序代码的开销成本。这种有限的开销允许例如无线移动设备的设备使用这种对策方法,其中所述设备执行的操作要求安全性,然而可能会涉及关于功率和处理器性能的约束。当访问表的值时,对该值重新进行掩码(与需要整个表重新产生步骤的方法进行对照),而且可能使用多个随机掩码。
[0034] 计算设备中实现的密码操作可以使用置换表(S表或S盒)。例如在AES和三重DES(三重数据加密标准,或“3DES”)中,明文的加密过程和密文的解密过程使用多个S盒。为了提供针对这些密码操作的安全性攻击的对策,可以对这些置换表的输入和输出进行掩码。然而,这种表输出掩码所提供的安全性自身会受到攻击。
[0035] 优选实施例能够实现为计算机程序产品,所述计算机程序产品包括用于执行所述过程中的步骤的程序代码。优选实施例能够实现为用于加密的计算机系统(包括子系统或被限定用于与其它系统一同工作的系统),所述计算机系统包括执行上述功能的元件。优选实施例中的计算机系统可以由包括因特网的网络所承载的信号来限定,而且计算机程序产品可以具体实现在该网络所承载的信号中,或是包括在例如磁、电或光存储介质的介质中。作为要由计算代码和计算设备中具体实现的硬件这两者的组合来执行的方法,所述过程可以在所述计算设备中实现(这种情况下,所述过程是由计算设备实现的方法)。例如,能够实现优选实施例的计算设备包括具有全部特征的计算机或网络装置。然而可以预料的是,优选实施例可在例如无线手持移动计算设备的移动设备上实现,在这种设备中,例如功率、存储器和处理能的资源受到对设备的尺寸和重量的所期望限制的约束。在例如无线手持设备的数据处理设备中,有利地以加密的方式存储数据,从而避免对适当用户的信息进行未授权的访问。例如,实施优选实施例实现用于避免这些加密数据可由未授权的个人使用。 [0036] 参考示出了AES加密过程的加密步骤的示例,对优选实施例进行 描述。然而可以理解的是,优选实施例可以关于解密过程和包括密钥和置换表的其它密码过程而实现,这些过程需要针对例如DPA的攻击的对策。可以使用可以在例如移动通信设备的计算设备上定义的不同的可用数据结构中的一种,来实现置换表和根据优选实施例产生的表。本领域的技术人员可以理解,这些表包括根据所选数据结构而存储在计算设备的数据存储器中的值组。如下文所述,本领域的技术人员可以理解,以包括比特的数据字来表示组成这些表的值。
[0037] 使用逐比特(bit-wise)的异或操作(XOR)来执行优选实施例的描述中提到的掩码,其中这个异或操作典型地关于两个定义的数据字而执行。然而,可以使用其它的掩码操作。例如,可选择地使用运算掩码(包括使用加法和/或减法来代替异或操作)。 [0038] 根据优选实施例,基于原始置换表(定义以用于加密过程)和掩码值来产生分裂掩码表组。产生分裂掩码表中的值,从而在密码过程中可以使用分裂掩码表来代替原始置换表与掩码值的组合。如文中所述,利用数据重组步骤,使用分裂掩码表的密码过程的输出将与使用原始置换表和掩码值所实现的输出相同。
[0039] 虽然优选实施例考虑到所定义的分裂掩码表的产生(和刷新)作为修改后的密码过程的初始步骤,可以理解的是分裂掩码表可以在某一时刻部分地产生,或是在需要表条目时产生,而不是在某一具体时间产生整个表。在这些实施方式中任意一种的情况下,如同分裂掩码置换表被最初定义且被永久存储的情况那样,可以在密码过程中使用这些表的条目(利用下文所述的刷新步骤)。此外可以理解的是,下文提到的随机值数据字和掩码值可以由包括随机值发生器或伪随机值发生器的优选实施例而定义,或可以由调用独立过程或系统的优选实施例系统或方法而定义,其中所述独立过程或系统用于提供这些随机值。 [0040] 图1示出了根据优选实施例的一个简单示例,其中作为原始置换表8(S盒)的S(x)用于产生一对分裂掩码置换表24、26(sm(x)和sm’(x))。在图1涉及的示例中,原始置换表8中每一个条目S[x]包括长度为32比特的数据字。如图1中10所示,根据优选实施例,产生一组随机值数据字r(x),使得对于原始置换表8中的每一个条目S[x]都存在 一个随机值数据字r[x]。如图所示,每一个随机值数据字r[x]都与相应的数据字S[x]进行异或运算(在异或12处)(在图中,异或操作通常由具有两个输入值的小椭圆来表示)。每一个随机值组r(x)还与随机产生的单个掩码值m进行组合(图1中块14所示的产生步骤)。数据字r[x]与数据字值m(异或15)的异或运算以及数据字r[x]与原始S-box值S[x]的异或运算(12)形成了分裂表条目对16、18(分别由S(x)^r(x)和r(x)^m来表示)。
在优选实施例中,针对原始置换表S(x)中所有的值x,来执行上文所述的掩码。本领域的技术人员可以理解,可以仅对原始置换表中的某些值进行掩码。然而,使用这种方法将会降低或损害对策的效力。
[0041] 在图1中,使用分裂表条目对16、18来定义sm(x)和sm’(x)所示的分裂掩码表对24、26。如图1所示,r[x]^S[x]_0..15与r(x)^m_0..15的组合(串接)(数据字20所示)以及r[x]^S[x]_16..31与r[x]^m_16..31的组合示出了分裂表条目对的示例分配排列。符号“_x..y”表示数据字中所包含的位置x至y处的比特。因此,“r[x]^S[x]_0..15”表示值r[x]^S[x]的32比特数据字中的前16比特,而符号“r[x]^S[x]_16..31”表示同一数据字的后16比特。这样,图1示出了把每一个r[x]^S[x]数据字的前16比特与每一个r[x]^m的前16比特组合以创建32比特数据字(数据字20所示),所创建的32比特数据字形成了完整的分裂掩码置换表sm(x)(表24)中的一个条目。类似地,图1示出了把各个分裂表条目对16、18的后16比特进行串接以产生数据字22,而数据字22定义了sm’(x)(表26)。
[0042] 如上文所述,每一个r[x]^S[x]值(16)具有如每一个r[x]^m值(18)的数据字表示方法。分裂表条目对中的每一个数据字的每一个比特都具有其数据字内的比特位置。根据优选实施例,由每一个表条目对中的一个比特所组成的比特对被置于分裂掩码置换表之一的同一个字中,其中每一个表条目对都具有相应选择的且相同的源比特位置。换句话说,如果值r[x]^S[x]的数据字中比特位置i处的比特被置于数据字sm[x]中,那么对于适合的分裂掩码表定义来说,r[x]^m中相应的比特(位置i)被置于sm[x]中同一数据字中。这种情况同样适于图1示例 中的分裂掩码置换表sm’(x)的定义。
[0043] 可以明显看出,图1所示的简单示例满足了上文陈述的约束。通过把分裂表条目数据字对的一半与分裂表条目对的另一个数据字的相应一半进行串接,产生了用于形成分裂掩码表的表条目的字。然而,优选实施例不限于分裂表条目对的该特定分配设置以形成分裂掩码置换表中的条目的数据字。相反,只要按照如下所示允许重组数据的限定方式来执行分配设置,并且只要满足上文针对适合的分裂掩码表定义而提出的条件,那么可以对分裂掩码置换表中的条目的比特进行设置以呈现任意期望的图案。尽管图1所示的设置或预先选择的图案具有简单的优点,不需要使用图1所示把分裂表条目对中的比特简单地进行串接来定义每一个分裂掩码表中的字的比特的位置。
[0044] 根据优选实施例定义或产生的分裂掩码置换表能够用于加密过程,其中可以利用掩码值来使用原始置换表。如同在加密过程中以其它方式定义的那样,给分裂掩码表提供输入。分裂掩码表输出的结合在一起的数据值的数据字长度比单个(未分裂)置换表所输出的数据字长度要大。因此,当使用分裂掩码表时,除了最初定义的密码过程步骤之外,还采用数据重组步骤以获得密码过程所期望的输出。这些步骤包括:输出数据中的比特彼此适当地进行异或运算。以逐比特的方式,这个异或操作提供了基于初始置换表的掩码而得到的值。执行其它步骤以便重组这个比特组,从而把这些比特按照与输入到置换表的数据字的原始比特顺序相对应的顺序而放置。这个重新排序基于预先选择的图案,该图案用于产生定义了分裂掩码置换表的多个数据字。
[0045] 图2和3中示出了分裂掩码置换表的使用示例,以及基于这些表中比特的分配排列而重组输出数据的使用示例。图2是示出了应用于特定的AES加密步骤(使用下述高性能AES的表实施方式:Dr.Brian Gladman,“A Specification for Rijndael,the AES Algorithm”,atfp.gladman.plus.com/cryptography_technology/rijndael/aes.spec.311.pdf,15 April 2003(pages 18-19))的优选实施例示例的高级表示的框图。图2示出了一组4个置换表的输入j(29)(上文提及的AES表实施方式中的值sj/tj)。在图2的示例中,AES加密过程的 置换表由分裂掩码表sm1(x)、sm2(x)、sm3(x)、sm4(x)和相应的分裂掩码表sm1’(x)、sm2’(x)、sm3’(x)、sm4’(x)来表示。上文中Gladman所述的AES密码过程需要4个不同的置换表(S1、S2、S3、S4,未示出)。对这4个表进行分裂掩码操作(如图1所示)。所得结果是图2所示的两组分裂掩码置换表。
[0046] 在图2的示例中,分裂掩码表中的字长为32位,而且分裂掩码表对(sm1(x)和sm1’(x)等)中的每一个都按照上文关于图1中分裂掩码表的产生所述而定义。从图2可以看出,AES输入值施加到两组分裂掩码表中的每一组,并且按照AES过程对两组表中的每一组执行加密。两组分裂掩码置换表中每一组的输出是32位的字值。每一个32位的输出数据字都作为输入而施加到m5(x)所示的合并表(图2中的表32)。这个合并表构造用于通过把r[x]^S[x]值已经处理(异或运算)的比特与r[x]^m值所处理的相应比特进行异或运算而将比特合并为32位的输出数据字。通过定义用于对字中的两个比特执行该操作的表,值m^S[x]将会有效地对作为结果的比特值进行处理。因此,效果就好像是掩码置换值(m^S[x])已经施加到输入,而不需要把掩码值直接施加到输入。
[0047] 图2所示m5(x)表32的两个副本中每一个的输出字将具有每一组分裂掩码置换表所产生的32位数据字的一半位长。在图2的示例中,m5(x)表32的每一个副本的输出是具有16位长的数据字。图2中的合并框33示出了进一步的重组步骤,通过该步骤把每一个数据字的比特按照掩码置换表过程的输出(34)中正确的比特顺序而放置。在图2的示例中,由于分裂掩码表中的数据字由串接操作所限定,所以正确的比特顺序由把两个作为结果的数据值串接在一起而定义。如上文所示,其它更为复杂的比特图案可以用于定义分裂掩码表,在这些情况下,在图2所示的合并步骤33处执行所需的适合的比特映射。 [0048] 图3中的框图示出了m5(x)表32的操作细节。M5(x)表32采用8位数据字作为输入,并产生4位数据字作为输出(图2示出m5(x)表32用于接受32位输入并产生16位输出,这可通过反复执行下文所述的m5(x)表32的操作来实现)。
[0049] 在图3中,符号||表示串接操作。图3中的示例示出了m5(x)的输入由表示值r[x]^S[x]的一组16比特和表示值r[x]^m的另外16比特而定义。这些比特按照图3所示而排列。这个示例中的m5(x)表32定义用于接受8位输入且输出4位值。通过对r[x]^S[x]和r[x]^m的相应比特的异或运算来产生4位值。例如,图3中的8位字节50输入m5(x)表32,从而产生4位字节52。从图3可以看出,存在32位数据字的4个分离的段50、54、56、
58,这些段表示图3所示sm(x)的分裂掩码置换表的输出。图3示出了对分裂掩码置换表sm(x)的输入进行异或运算而得到的值,分裂掩码置换表sm(x)的输入如图1所示而定义。
如同上文中图1所述的那样,表sm(x)由r(x)^S(x)||r(x)^m而定义。因此,第一个8位字节50是表示串接的值r(x)^S(x)_0...3与r(x)^m_0..3进行异或运算后的值。当8位字节50中的两部分彼此进行异或运算时,所得结果是4位字节52,它等同于对m^S(x)_0..3进行异或运算的输入值。图3示出了按照类似于字节50的方式而定义的其它的8位字节
54、56、58。
[0050] 如图3所示,对字节50、54、56、58重复执行m5(x)操作的结果是,得到了由4位字节52、60、62、64组成的16位字。因此,整个结果数据字等同于用m^S[x]对输入进行异或运算,m^S[x]即由值m进行掩码的原始置换表条目。
[0051] 图4示出了优选实施例的分裂掩码置换表70的刷新方式,其中不需要完整的表再生成步骤。优选实施例规定:每一次访问分裂掩码置换表70中的表条目时,使用随机掩码步骤(椭圆72所示的异或运算)对所访问的表条目进行刷新。在图4中,用条目sm[x]示出了分裂掩码置换表70,其中sm[x]被定义为r[x]^S[x]||r[x]^m,字长为w位。在访问条目sm[x]之后,该条目值由随机产生的值r(图4中的元件74、76、78所示)进行掩码,从而提供了表条目新的刷新值,其定义为r^r[x]^S[x]||r^r[x]^m。可以理解的是,由于串接值的两个部分都由同一随机值r所掩码,所以能够以直接的方式有效地去除刷新值的掩码。重组步骤对表条目中的比特执行异或运算,从而抵消刷新值的掩码r。
[0052] 上述方法所允许的是:在任意一个时刻,可对分裂掩码置换表中的值进行刷新而不需要更换或重新产生整个表。由于在分裂掩码置换表访问之后为每一个刷新步骤都定义了新的掩码,所以随机定义的掩码的数目可能较大。
[0053] 上文关于图1和2的描述示出了怎样使用优选实施例的方法和系统从单个原始置换表中产生两个分裂掩码置换表。然而,可以从单个原始置换表中产生多于两个的分裂掩码置换表。在优选实施例中,从单个原始置换表中可产生的分裂掩码置换表的最大实际数目将取决于使用这些表的加密过程所使用的数据字长度。
[0054] 图5示出了根据优选实施例的另一个示例,其中单个原始置换表80用于产生4个分裂掩码置换表82、84、86、88(分别是sm(x)、sm’(x)、sm”(x)和sm (x))。在图5的示例中,(在发生器90处)产生了两组随机值rl(x)、r2(x),并且(在发生器92处)产生了单个掩码值m。
[0055] 在图5的示例中,使用图中所示的掩码比特和未掩码随机比特的组合来定义4个分裂掩码置换表82、84、86、88。原始置换表80中的每一个条目S[x]都由为该条目s[x]产生的值r1[x]和r2[x]掩码。这由图5中的异或操作96所示,该操作产生了掩码数据字98所示的值r1[x]^r2[x]^S[x]。此外,如异或操作100所示,每一个r1[x]都由值m掩码,产生了具有值rl[x]^m的随机化掩码数据字102。在产生分裂掩码置换表82、84、86、88时,使用第二组随机值r2(x)(参见数据字104)而不进行掩码。
[0056] 在图5中,以示意图的方式在106处示出了用于产生分裂掩码表82、84、86、88的值的组合。可以理解的是,106处的步骤可以由计算设备的程序代码的连续操作而执行,或可以由适合的指定硬件组件来执行。对于原始置换表80中每一个条目,如上文所述而定义的数据字98、102和104每一个都被分为4个部分,对这些部分进行组合以产生分裂表。 [0057] 对于图5的示例,如106处所示,把数据字98、102、104中每一个的前8比特进行组合以提供表sm(x)中适合的24位字条目(分裂掩码置换表82)。如数据字108所示,针对sm(x)所产生的条目被定义为:r1[x]^r2[x]^S[x]、r1[x]^m和r2[x]的前8比特的串接。类似地,如图 5所示,分裂掩码置换表84、86、88的条目由数据字110、112、114定义,这些数据字分别反映了r1[x]^r2[x]^S[x]、r1[x]^m和r2[x]的第二、第三和第四个8比特部分的串接。
[0058] 可以看出,用于产生优选实施例的分裂掩码置换表的这种方法可能产生与原始置换表的字长不同的分裂掩码表。这可以由图5的示例看出,其中原始置换表80具有32位数据字条目S[x],而作为结果的分裂掩码置换表82、84、86、88每一个都具有24位的数据字条目。在特定的密码操作中,置换表条目的数据字长的这种变化可能不重要。 [0059] 可以理解,根据优选实施例,特定数目的随机值组(即r1(x)、r2(x),...)的选择将会影响掩码操作的执行方式。如果存在n个这样的组(对应于r1(x),...rn(x)随机值组),那么存在由r1(x)^...rn(x)^s(x)定义的第一掩码操作。在用于产生分裂掩码置换表的数据字上划分出作为结果而产生的数据字。为了允许数据字的组合能够提供对原始置换表的掩码效果(S(x)^m),优选实施例所使用的分裂掩码置换表的数目为偶数。 [0060] 因此,当所用的随机值组的数目n是1或3时,需要n+1个置换表。例如n=1涉及图1和2中使用随机值组r(x)且仅需要两个分裂掩码置换表(sm(x)和sm’(x))的情况。图6示出了具有3组随机值r1(x)、r2(x)、r3(x)的情况,下文将会详细描述。当使用偶数n=2、4个随机值组时,需要(n+2)个置换表。例如n=2涉及刚刚描述的情况,其中如图5所示随机值组由r1(x)和r2(x)表示,并产生了4个分裂掩码置换表。 [0061] 图6示出了单个原始置换表120,用于产生分裂掩码置换表122、124、126、128(分别是sm(x)、sm’(x)、sm”(x)、sm (x))。产生这些分裂掩码表的方法类似于图5所示的方法。然而,如图所示使用了3组随机值,所产生的分裂掩码置换表中的条目是32位的字。在图6的示例中,这一点由(在发生器130处)3组随机值r1(x)、r2(x)和r3(x)的产生以及(在发生器132处)随机值m的产生而表示。与图5的示例情况相同,原始置换表120的每一个条目S[x]都由每一个所产生的随机值进行掩码。在图6的情况下,这意味着S[x]值与r1[x]、r2[x]、 r3[x]中的每一个进行异或运算。因此,作为结果的数据字136具有值r1[x]^r2[x]^r3[x]^S[x]。使用每一个r1[x]对掩码值m进行掩码(异或138),从而给出具有值r1[x]^m的数据字140。如数据字142、144分别所示,不进行掩码而使用随机值r2(x)和r3(x)。
[0062] 以类似于上文参考图5所述的方式来产生32位数据字分裂掩码置换表122、124、126、128。然而在图6的示例中,存在4个数据字(136、140、142、144),每一个数据字都被分为8位字节,这些8位字节用于串接以产生分裂掩码表的数据字。因此,在图6所示的方法中,将为每一个分裂掩码置换表产生32位的字。
[0063] 具体地,如150处所示,把每一个数据字136、140、142、144的前8比特进行组合,从而提供分裂掩码置换表122中适合的条目。按照数据字152所示而定义sm(x)中产生的条目:该条目是r1[x]^r2[x]^r3[x]^S[x]、r1[x]^m、r2[x]和r3[x]的前8比特的串接。类似地,如图6所示,分裂掩码置换表124、126、128的条目由数据字154、156、158定义,这些数据字分别反映了r1[x]^r2[x]^r3[x]^S[x]、r1[x]^m、r2[x]和r3[x]的第二、第三和第四个8比特部分的串接(这些部分来自数据字136、140、142和144)。分裂以及随后的数据字152、154、156、158的串接导产生了分裂掩码置换表组122、124、126、128。可以看出,这些作为结果的表每一个都具有32位的数据字场长。
[0064] 参考上文,图1至6中的示例示出了分裂和分裂值的串接,用于产生分裂掩码表条目。然而,优选实施例也可以不使用串接而实现,只要分裂掩码表条目包含分裂表条目比特对且这些比特对位于条目中的限定位置,从而可以对两个分裂表条目对的值进行组合,以产生正确的掩码置换表条目比特。此外,对于图2和图3所示的分裂值的合并,还可以使用m5(x)表的替代过程来实现,其中该替代过程用于创建作为结果的数值m^S[x]。例如,对于图1中的布置来说,可以使用值的16位移位以及异或操作来产生作为结果的数值m^S[x],而不使用m5(x)表。
[0065] 在图5和6所示的步骤中,使用以下内容来产生作为结果的分裂掩码表条目的字:由所产生的不同的随机值组r(x)掩码的原始S盒表条 目的一部分;由第一随机值m掩码的那些数值之一的一部分;以及组中所产生的其它随机值r(x)的一部分。这些分裂掩码置换表可以用于修改的密码过程,其中密码过程的输入值副本被输入所产生的分裂掩码置换表组的每一个置换表。
[0066] 在密码过程的结束处,使用根据例如图5或6中的步骤的步骤所产生的分裂掩码置换表对数据进行重组,这个重组步骤将会以类似于图2和3所述步骤的方式而执行。通过适当定义的异或操作,对分裂掩码置换表组的表输出值进行合并。然后执行的步骤是:按照用于把比特置于分裂掩码置换表的条目中而定义的分配排列,把作为结果的比特重新排列为它们适合的比特顺序。类似地,可以按照关于图4的示例所描述的那样,对分裂掩码置换表条目进行刷新。
[0067] 这样,以示例的方式对本发明的各个实施例进行了详细描述,对于本领域的技术人员明显的是,在不背离本发明的前提下,可以进行改变和修改。本发明包括落入所附权利要求范围内的所有这些改变和修改。
[0068] 这个专利文档公开内容的一部分包含受版权保护的材料。如果专利文档或专利公开中任意一种出现在专利和商标局的专利文件或记录中,那么版权所有者不反对对其进行复制,但是在其它情况下保留所有的版权。
相关专利内容
标题 发布/更新时间 阅读量
移动呼叫修改 2020-05-12 204
一种修改纸 2020-05-11 105
修改对象的基层 2020-05-12 525
路线修改 2020-05-11 540
路线修改 2020-05-11 878
修改带 2020-05-11 676
修改对话窗口 2020-05-12 618
修改对象的基层 2020-05-13 1048
修改笔 2020-05-11 786
错字修改笔 2020-05-12 958
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈