CN108322301A - 软件级双轨逻辑中的s盒运算的实现方法 - Google Patents

软件级双轨逻辑中的s盒运算的实现方法 Download PDF

Info

Publication number
CN108322301A
CN108322301A CN201710034812.1A CN201710034812A CN108322301A CN 108322301 A CN108322301 A CN 108322301A CN 201710034812 A CN201710034812 A CN 201710034812A CN 108322301 A CN108322301 A CN 108322301A
Authority
CN
China
Prior art keywords
look
address
split
double rail
bits
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.)
Pending
Application number
CN201710034812.1A
Other languages
English (en)
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.)
Shanghai Huahong Integrated Circuit Co Ltd
Original Assignee
Shanghai Huahong Integrated Circuit Co Ltd
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
Application filed by Shanghai Huahong Integrated Circuit Co Ltd filed Critical Shanghai Huahong Integrated Circuit Co Ltd
Priority to CN201710034812.1A priority Critical patent/CN108322301A/zh
Publication of CN108322301A publication Critical patent/CN108322301A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Enzymes And Modification Thereof (AREA)

Abstract

本发明旨在提出一种软件级双轨逻辑中的S盒运算的实现方法,包括:将所述S盒运算的原始输入拆分为N个部分,N为大于0的整数;使用所述原始输入被拆分后的前N‑1个部分来进行前N‑1级查表,每级查表的输出结果是下一级查表的表地址;以及通过使用第N个部分进行第N级查表,得到所述S盒运算的输出结果。上述方法所实现的S盒运算的运算速度较快且需要的存储空间较小。

Description

软件级双轨逻辑中的S盒运算的实现方法
技术领域
本发明涉及芯片的加密方法,尤其涉及软件级双轨逻辑下的S盒运算的实现方法。
背景技术
任何密码设备在运行时都会散发出各种形式的信息,如功耗、电磁辐射、声音、运行时间等。这些信息可被收集和分析,并且以此方式恢复出密码设备的秘密信息。这种攻击叫做旁路攻击。旁路攻击是针对加密算法来实现的,不针对某个特定的算法。因此,即使某个加密算法在数学上或在理论上被证明是安全的,它在实际应用中仍然有可能会被旁路攻击攻破。事实上,加密算法的常规实现方法通常无法抵抗旁路攻击。旁路攻击中一种常见的方法是功耗分析,它通过分析设备所散发的功耗来恢复该设备的秘密信息。其中,根据功耗曲线的直接特征来进行分析的方法被称为简单功耗分析(Simple Power Analysis,SPA)。根据大量的功耗曲线的统计特征来分析并计算出秘密信息的方法被称为差分功耗分析(Differential Power Analysis,DPA)。
在CMOS电路中,寄存器产生的功耗取决于其比特翻转的个数,也就是取决于其原值与新值之间的汉明距离。因此,可以计算密码设备运行时的中间值,并且根据“寄存器产生的功耗取决于其比特翻转的个数”,来估计密码设备运行时的功耗大小。其中,中间值是指从给定输入到得出输出之间所有的运算过程中的中间值。
双轨逻辑是抵抗功耗分析的硬件实现方法。具体的,采用两个物理比特表示一个逻辑比特,即可以用两个物理比特“01”表示一个逻辑比特“0”,用两个物理比特“10”表示一个逻辑比特“1”,并且规定任何数值的改变需先从原值变为预充电状态(即数值“00”),然后再转变成新值。这样,所有的数值改变所产生的功耗均相同,攻击者就无法根据功耗大小来区分不同的运行值了。上述方法的缺陷是芯片的面积会翻倍,这对轻量级密码设备而言是巨大的代价。某些加密算法是在可编程的密码设备中通过软件来实现的,如CPU卡。这些加密算法可通过软件的形式来实现双轨逻辑。
软件级双轨逻辑是指在软件编程中模拟硬件双轨逻辑的实现方式,关键在于不仅需要保证输入和输出的数据符合双轨逻辑,还要确保运算过程中的中间值的安全性。因此,软件级双轨逻辑通常采用查表的方式来实现。
S盒运算是对称加密算法中的基本操作,基本的运算过程是对于一个输入数据,以一个特定的对应的数据作为结果进行输出。一个n比特输入、m比特输出的S盒运算是定义了一种从{x|0≤x≤2n-1,x∈Z}到{x|0≤x≤2m-1,x∈Z}的映射。每个加密算法定义了自己的S盒运算的数据对应关系,并且不同的加密算法所定义的S盒通常也不同。而对于S盒运算这样的输入与输出之间没有明显逻辑关系的操作,其查表实现需要消耗大量的存储空间。
发明内容
本发明旨在提供一种运算速度较快且需要存储空间较小的S盒运算的实现方法。
本发明提出一种软件级双轨逻辑中的S盒运算的实现方法,包括:将所述S盒运算的原始输入拆分为N个部分,N为大于0的整数;使用所述原始输入被拆分后的前N-1个部分来进行前N-1级查表,每级查表的输出结果是下一级查表的表地址;以及通过使用第N个部分进行第N级查表,得到所述S盒运算的输出结果。
优选地,所述原始输入和所述输出结果均是双轨编码的。
优选地,所述查表所使用的表满足以下要求:(1)同一级的所有表的地址具有相同的汉明重量;(2)表的地址是该表的大小的整数倍;以及(3)表的的大小是2的整数次幂。
优选地,被拆分后的所述N个部分中的每一个是双轨编码的;并且所述N个部分是以下各项中的一个或多个:单个逻辑比特、多个相邻逻辑比特的依次排列、不相邻逻辑比特之间的组合。
附图说明
包括附图是为提供对本公开内容的进一步的理解。附图示出了本公开内容的实施例,并与本说明书一起起到解释本公开内容原理的作用。在结合附图并阅读了下面的对特定的非限制性本公开内容的实施例之后,本公开内容的技术方案及其优点将变得显而易见。其中:
图1示出了根据本发明的一个实施例的方法流程图。
具体实施方式
参考在附图中示出和在以下描述中详述的非限制性实施例,更完整地说明本公开内容的多个技术特征和有利细节。并且,以下描述忽略了对公知的原始材料、处理技术、组件以及设备的描述,以免不必要地混淆本公开内容的技术要点。然而,本领域技术人员能够理解到,在下文中描述本公开内容的实施例时,描述和特定示例仅作为说明而非限制的方式来给出。
在任何可能的情况下,在所有附图中将使用相同的标记来表示相同或相似的部分。此外,尽管本公开内容中所使用的术语是从公知公用的术语中选择的,但是本公开内容的说明书中所提及的一些术语可能是公开内容人按他或她的判断来选择的,其详细含义在本文的描述的相关部分中说明。此外,要求不仅仅通过所使用的实际术语,而是还要通过每个术语所蕴含的意义来理解本公开内容。
本发明提出一种软件级双轨逻辑下的S盒运算的实现方法,输入和输出数据均经由双轨编码。在运算过程中,所有操作数据、中间值的汉明重量都与明密文以及密钥的数据内容无关,即算法执行时产生的功耗与算法所涉及的数据没有任何关联性,攻击者也就无法通过功耗分析得到加密算法的密钥。其中,汉明重量是指二进制数据中比特“1”的个数。同时,上述方法与常规的S盒运算软件级双轨逻辑实现相比,运算速度较快且所需的存储空间较小。
在一个实施例中,用两个物理比特“01”表示一个逻辑比特“0”,用两个物理比特“10”表示一个逻辑比特“1”。在另一个实施例中,也可以用两个物理比特“01”表示一个逻辑比特“1”,用两个物理比特“10”表示一个逻辑比特“0”。假设S盒运算的输入记为I,输出记为R,则有R=S(I)。此处,S表示S盒运算从输入到输出的变换。若用dr()表示双轨编码变换,则本方法所实现的运算SD满足:dr(R)=SD(dr(I))。其中,SD表示双轨逻辑下的S盒运算从输入到输出的变换。
在一个优选的实施例中,将S盒拆分为多个子S盒,而S盒的相关运算也将通过多级查表得到最终结果。
如图1所示,假设原始输入为I,输入的长度为L个逻辑比特。将原始输入拆分为N个部分(N为大于0的整数)(101),分别记为I1,I2,...,IN,这N个部分的长度分别为L1,L2,...,LN个逻辑比特。拆分后的每个部分I1,I2,...,IN仍然是双轨编码的。多级查表的逻辑如下:
R1=S1(I1)
R2=R1(I2)
RN=RN-1(IN)
这里的R1~RN-1为前N-1级查表的结果,而RN为最终的输出。S1表示第一级查表时所用的表。原始输入被拆分后的前N-1个部分分别用于前N-1级查表,查表的输出结果是下一级查表的表地址(102);最后,通过使用第N个部分进行第N级查表,得到S盒运算的输出结果(103)。
在整个运算过程中,S盒运算的输入、输出数据是经双轨编码的。虽然查表操作中表的地址数据与密码数据无关,但是如果攻击者能够探知到使用了不同的表,也就相当于探知得到部分数据信息。因此表的地址应当满足以下两个条件:
1.同一级的所有表的地址具有相同的汉明重量。这样,同一级的表地址读取所产生的功耗信息就不会存在差异,从而使攻击者无法获取有用信息。
2.表的地址是该表的大小的整数倍,并且表的大小是2的整数次幂。这样,当表的地址加上作为偏移地址的输入数据时,由于输入数据是双轨编码的,寻址时的实际地址的汉明重量仍然会保持一致,从而使攻击者无法获取有用信息。
在一个优选的实施例中,以实现DES密码算法的第一个S盒运算为例。假设可用的存储空间地址为0x1000-0x2000,使用双轨编码的规定为用“01”表示0,用“10”表示“1”。
计算可分为两级查表,即将输入拆分为2个部分。DES密码算法的S盒输入为6个逻辑比特。在此,第一级查表的输入数据为第1个和第6个逻辑比特(即拆分后的第1部分为输入的第1个和第6个逻辑比特的组合),第二级查表的输入数据(即拆分后的第2部分)为第2-5个逻辑比特,共计4个逻辑比特。第2级查表的表地址分别为0x1300、0x1500、0x1600和0x1900,并且上述地址具有相同的汉明重量。
第一级表S1的起始地址为0x1000,表S1中的数据具体如下:
S1=[0,0,0,0,0,0x1300,0x1500,0,0,0x1600,0x1900,0,0,0,0,0]
当输入分别为“0101”、“0110”、“1001”和“1010”时(即5、6、9和10),可以得到第二级表的地址(即0x1300、0x1500、0x1600和0x1900)。其他位置通常不会被查到,因此可以填0,也可以填写汉明重量与0x1300相同的无意义数据。
第二级的4个表S2,S3,S4,S5具体如下,经过第二级查表即可得出最终的输出。
S2的起始地址为0x1300,表中的具体数据如下:
S2
[0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa9,0x65,0x00,0x00,0x00,0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x59,0xaa,0x00,0x00,0x9a,0x95,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5a,0x99,0x00,0x00,0x69,0xa5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x96,0x00,0x00,0x55,0x6a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
S3的起始地址为0x1500,表中的具体数据如下:
S3
[0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0xaa,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa9,0x59,0x00,0x00,0xa6,0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x99,0x69,0x00,0x00,0xa5,0x9a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x96,0x66,0x00,0x00,0x5a,0x95,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
S4的起始地址为0x1600,表中的具体数据如下:
S4
[0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa9,0x65,0x00,0x00,0xa6,0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x59,0xaa,0x00,0x00,0x9a,0x95,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5a,0x99,0x00,0x00,0x69,0xa5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x96,0x00,0x00,0x55,0x6a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
S5的起始地址为0x1900,表中的具体数据如下
S5
[0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xaa,0xa5,0x00,0x00,0x95,0x59,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x65,0x96,0x00,0x00,0x56,0x6a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x9a,0x00,0x00,0x5a,0xa9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x99,0x55,0x00,0x00,0x69,0xa6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
在一个优选的实施例中,DES算法的第一个S盒运算的输入是6比特数据(即0-63),输出是4比特数据(即0-15)。该S盒运算的原始变换如下所示:
S=
[0xe,0x0,0x4,0xf,0xd,0x7,0x1,0x4,0x2,0xe,0xf,0x2,0xb,0xd,0x8,0x1,0x3,0xa,0xa,0x6,0x6,0xc,0xc,0xb,0x5,0x9,0x9,0x5,0x0,0x3,0x7,0x8,0x4,0xf,0x1,0xc,0xe,0x8,0x8,0x2,0xd,0x4,0x6,0x9,0x2,0x1,0xb,0x7,0xf,0x5,0xc,0xb,0x9,0x3,0x7,0xe,0x3,0xa,0xa,0x0,0x5,0x6,0x0,0xd]
即S[0]=0xe,S[1]=0x0,S[2]=0x4,…S[63]=0xd。在此,以输入为0x00和0x1c为例说明本发明中的S盒运算是如何运行的。
假设在双轨逻辑中用“01”表示“0”,用“10”表示“1”。
对于0x00:其6比特数据为“000000”,如果以双轨逻辑表示则是“010101010101”(0x555)。这里先用第1个和第6个逻辑比特组合进行第一级查表,也即组合为“0101”(0x5),对S1进行查表,即S1[5]=0x1300。之后用第2到第5个逻辑比特即“01010101”(0x55)对0x1300的位置进行查表,也即有S2[0x55]=0xa9,而0xa9即“10101001”,也即是“1110”(0xe)的双轨逻辑表示。在整个过程中,本发明的S盒运算从输入0x555经过两步得到了0xa9的输出,即以双轨逻辑的形式表达了从输入0x0到0xe的输出。
对于0x2c:其6比特数据为“101100”,如果以双轨逻辑表示则是“100110100101”(0x9a5)。这里先用第1个和第6个逻辑比特组合进行第一级查表,也即组合为“1001”(0x9),对S1进行查表,即S1[9]=0x1600。之后用第2到第5个逻辑比特即“01101001”(0x69)对0x1600的位置进行查表,也即有S4[0x69]=0x59,而0x59即“01011001”,也即是“0010”(0x2)的双轨逻辑表示。在整个过程中,本发明的S盒运算从输入0x9a5经过两步得到了0x59的输出,即以双轨逻辑的形式表达了从输入0x2c到0x02的输出。
本领域技术人员可以理解的是,对于输入的拆分方式不限于上述的特定方式。拆分后的N个部分可以是以下各项中的一个或多个:单个逻辑比特、多个相邻逻辑比特的依次排列、不相邻逻辑比特之间的组合。在进行拆分时,逻辑比特被整体地归入某一个部分而不能被拆开。因此,拆分后的N个部分仍然保持着双轨编码的性质。
根据上述实施例可知,通过上述分级查表可以使得第二级的若干个表在不同时刻共享相同的存储空间,从而使用户能够更加灵活和方便地对运算时间与存储空间进行平衡。
虽然本发明的一些实施方式已经在本申请文件中予以了描述,但是对本领域技术人员显而易见的是,这些实施方式仅仅是作为示例示出的。本领域技术人员可以想到众多的变型方案、替代方案和改进方案而不超出本发明的范围。所附权利要求书旨在限定本发明的范围,并藉此涵盖这些权利要求本身及其等同变换的范围内的方法和结构。

Claims (4)

1.一种软件级双轨逻辑中的S盒运算的实现方法,包括:
将所述S盒运算的原始输入拆分为N个部分,N为大于0的整数;
使用所述原始输入被拆分后的前N-1个部分来进行前N-1级查表,每级查表的输出结果是下一级查表的表地址;以及
通过使用第N个部分进行第N级查表,得到所述S盒运算的输出结果。
2.如权利要求1所述的方法,其特征在于,所述原始输入和所述输出结果均是双轨编码的。
3.如权利要求1所述的方法,其特征在于,所述查表所使用的表满足以下要求:
(1)同一级的所有表的地址具有相同的汉明重量;
(2)表的地址是该表的大小的整数倍;以及
(3)表的大小是2的整数次幂。
4.如权利要求1所述的方法,其特征在于,被拆分后的所述N个部分中的每一个是双轨编码的;并且所述N个部分是以下各项中的一个或多个:单个逻辑比特、多个相邻逻辑比特的依次排列、不相邻逻辑比特之间的组合。
CN201710034812.1A 2017-01-17 2017-01-17 软件级双轨逻辑中的s盒运算的实现方法 Pending CN108322301A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710034812.1A CN108322301A (zh) 2017-01-17 2017-01-17 软件级双轨逻辑中的s盒运算的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710034812.1A CN108322301A (zh) 2017-01-17 2017-01-17 软件级双轨逻辑中的s盒运算的实现方法

Publications (1)

Publication Number Publication Date
CN108322301A true CN108322301A (zh) 2018-07-24

Family

ID=62892162

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710034812.1A Pending CN108322301A (zh) 2017-01-17 2017-01-17 软件级双轨逻辑中的s盒运算的实现方法

Country Status (1)

Country Link
CN (1) CN108322301A (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101267331A (zh) * 2008-04-23 2008-09-17 华为技术有限公司 一种组播转发表查找方法和装置
US20150270949A1 (en) * 2014-03-19 2015-09-24 Nxp B.V. Protecting a white-box implementation against attacks

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101267331A (zh) * 2008-04-23 2008-09-17 华为技术有限公司 一种组播转发表查找方法和装置
US20150270949A1 (en) * 2014-03-19 2015-09-24 Nxp B.V. Protecting a white-box implementation against attacks

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
顾星远 等: "一种软件级双轨逻辑的完整实现方案", 《通信技术》 *

Similar Documents

Publication Publication Date Title
Alon et al. Fast fast
CN104011660B (zh) 用于处理位流的基于处理器的装置和方法
Fenghua et al. Stock price prediction based on SSA and SVM
Elias et al. Evolutionary history and ecological processes shape a local multilevel antagonistic network
Barnes et al. Nonassociative geometry in quasi-Hopf representation categories II: Connections and curvature
Bounhas et al. Analogical classification: A new way to deal with examples
CN105446897A (zh) 高速缓存哈希
Lorenzo-Freire et al. Characterizations of the Deegan–Packel and Johnston power indices
CN108322301A (zh) 软件级双轨逻辑中的s盒运算的实现方法
Saeed et al. Recent Trends in Data Science and Soft Computing: Proceedings of the 3rd International Conference of Reliable Information and Communication Technology (IRICT 2018)
Conti et al. Design exploration of aes accelerators on fpgas and gpus
Bounhas et al. Analogical classification: A rule-based view
Da Silva et al. Weighted average operators generated by n-dimensional overlaps and an application in decision
Rasoulinezhad et al. The impact of coronavirus on globalization: evidence from different regions in Asia
Slater Competitive Authoritarianism: Hybrid Regimes after the Cold War. By Steven Levitsky and Lucan A. Way. New York: Cambridge University Press, 2010. 517p. 29.99 paper.
Zhang et al. Real time related key attack on Hummingbird-2
Abughazalah et al. Hybrid multi-criteria decision-making technique for the selection of best cryptographic multivalued Boolean function
Liu et al. Side-channel attacks based on collaborative learning
Huang et al. A novel method of parallel gpu implementation of knn used in text classification
Azam Analyzing the structure of technological effectiveness of Uzbekistan's external trade
Hinkis et al. Reichbach’s Proof of CBT
Kober et al. Characterizing Atomistic Geometries and Potential Functions Using Strain Functionals
Alderborn Three Essays on Dynamic Games with Asymmetric Agents
Meier et al. Assessment of satellite-observed sea ice concentration and extent uncertainty estimates
Wu et al. Optimal progressive first-failure censoring plans for the exponentiated Weibull products with cost constraint

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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20180724

WD01 Invention patent application deemed withdrawn after publication