CN116127534A - 标量到陶氏表示法的约简和转换 - Google Patents

标量到陶氏表示法的约简和转换 Download PDF

Info

Publication number
CN116127534A
CN116127534A CN202211419894.9A CN202211419894A CN116127534A CN 116127534 A CN116127534 A CN 116127534A CN 202211419894 A CN202211419894 A CN 202211419894A CN 116127534 A CN116127534 A CN 116127534A
Authority
CN
China
Prior art keywords
data value
input data
scalar
vector
output vector
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
CN202211419894.9A
Other languages
English (en)
Inventor
G·阿萨埃尔
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.)
STMicroelectronics Rousset SAS
Original Assignee
STMicroelectronics Rousset SAS
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 claimed from FR2112052A external-priority patent/FR3129262A1/fr
Application filed by STMicroelectronics Rousset SAS filed Critical STMicroelectronics Rousset SAS
Publication of CN116127534A publication Critical patent/CN116127534A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • G06F21/46Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Complex Calculations (AREA)

Abstract

本公开的各实施例总体上涉及标量到陶氏表示法的约简和转换。本公开涉及密码方法,密码方法包括通过密码电路来执行应用于标量的算法,以生成:长度为L+n的输出向量,输出向量的数字为d0,...,dL+n‑1,算法包括迭代i,每个迭代i取输入数据值以及长度为c的输入向量,输入数据值初始等于所述标量,输入向量的数字为d′i,...,d′i+c‑1,其中针对每个j∈{i,...,i+c‑1},数字d′j使得:
Figure DDA0003942659830000011

Description

标量到陶氏表示法的约简和转换
技术领域
本公开整体涉及密码学领域,并且具体涉及用于基于椭圆曲线密码学来实现密码学操作的方法和设备。
背景技术
椭圆曲线密码学(ECC)很好地适应于公钥密码学方法,因为它允许使用较小尺寸的密码密钥。例如,椭圆曲线密码学可以被用于实现加密、密钥交换、密钥协议、数字签名或身份验证操作。
此外,使用Koblitz曲线使得能够提高一些密码操作的速度,特别是点乘以标量的速度。然而,为了提高效率,在对Koblitz曲线进行密码操作之前,标量通常应被转换为特定的表示形式。
期望使得转换过程更快和/或使得标量的值在电子设备实施涉及它的密码操作时难以被检测。
发明内容
在一个实施例中,方法包括执行密码操作以及保护密码操作的执行。执行密码操作以及保护包括:通过密码电路来实施应用于标量的算法,以生成长度为l+n的输出向量,输出向量具有数字d0,...,dl+n-1,算法包括多个迭代i,每个迭代i取输入数据值(ρ)和长度为c的输入向量,输入数据值初始等于所述标量,输入向量具有数字d′i,...,d′i+c-1,其中针对每个j∈{i,...,i+c-1},数字d′j根据以下等式来确定:
Figure BDA0003942659810000011
其中m、L和n是正整数并且每个迭代i包括:
a)通过对第一输入数据(ρ)和输入向量施加第一操作,modulo τ,计算第一中间数据值(u),其中τ为复数;
b)通过对第一输入数据值、输入向量、第一中间数据值(u)和τ施加第二操作,更新第一输入数据值(ρ)的值;以及
c)将输出向量在位置i处的数字(di)设置为等于第一中间数据值(u),
其中迭代次数由密码电路基于停止指标来确定。
在一个实施例中,非暂态计算机可读介质的内容导致密码电路执行方法,方法包括:执行密码操作;以及保护密码操作的执行。执行密码操作以及保护包括:实施应用于标量的算法,以生成长度为l+n的输出向量,输出向量具有数字d0,...,dl+n-1,算法包括多个迭代i,每个迭代i取输入数据值(ρ)和长度为c的输入向量,输入数据值初始等于所述标量,输入向量具有数字d′i,...,d′i+c-1,其中针对每个j∈{i,...,i+c-1},数字d′j根据以下等式来确定:
Figure BDA0003942659810000021
其中m、L和n是正整数并且每个迭代i包括:
a)通过对第一输入数据(ρ)和输入向量施加第一操作,moduloτ,计算第一中间数据值(u),其中τ为复数;
b)通过对第一输入数据值、输入向量、第一中间数据值(u)和τ施加第二操作,更新第一输入数据值(ρ)的值;以及
c)将输出向量在位置i处的数字(di)设置为等于第一中间数据值(u),
其中迭代次数由密码电路基于停止指标来确定。
在一个实施例中,设备包括存储器以及与存储器耦合的密码电路。密码电路在操作中执行加密操作并保护密码操作的执行,执行密码操作以及保护包括:实施应用于标量的算法,以生成长度为l+n的输出向量,输出向量具有数字d0,...,dl+n-1,算法包括多个迭代i,每个迭代i取输入数据值(ρ)和长度为c的输入向量,输入数据值初始等于所述标量,输入向量具有数字d′i,...,d′i+c-1,其中针对每个j∈{i,...,i+c-1},数字d′j根据以下等式来确定:
Figure BDA0003942659810000031
其中m、L和n是正整数并且每个迭代i包括:
a)通过对第一输入数据(ρ)和输入向量施加第一操作,moduloτ,计算第一中间数据值(u),其中τ为复数;
b)通过对第一输入数据值、输入向量、第一中间数据值(u)和τ施加第二操作,更新第一输入数据值(ρ)的值;以及
c)将输出向量在位置i处的数字(di)设置为等于第一中间数据值(u),
其中迭代次数由密码电路基于停止指标来确定。
在一个实施例中,系统包括主机处理器以及与主机处理器耦合的密码电路。密码电路在操作中执行密码操作并保护密码操作的执行,执行密码操作以及保护包括:实施应用于标量的算法,以生成长度为L+n的输出向量,输出向量具有数字d0,...,dl+-1,算法包括多个迭代i,每个迭代i取输入数据值(ρ)和长度为c的输入向量,输入数据值初始等于所述标量,输入向量具有数字d′i,...,d′i+c-1,其中针对每个j∈{i,...,i+c-1},数字d′j根据以下等式来确定:
Figure BDA0003942659810000032
其中m、L和n是正整数并且每个迭代i包括:
a)通过对第一输入数据(ρ)和输入向量施加第一操作,moduloτ,计算第一中间数据值(u),其中τ为复数;
b)通过对第一输入数据值、输入向量、第一中间数据值(u)和τ施加第二操作,更新第一输入数据值(ρ)的值;以及
c)将输出向量在位置i处的数字(di)设置为等于第一中间数据值(u),
其中迭代次数由密码电路基于停止指标来确定。
附图说明
上述特性和优点以及其他特征和优点将在以下参考附图、以例示和非限制的方式给出的具体实施例的描述中详细描述,其中:
图1示意性地图示了根据本公开的一个实施例的电子设备的示例;
图2是图示了根据一个实施例的执行标量转换方法的操作的流程图;
图3图示了在图2的方法中使用的l位值的初始状态;
图4是图示了根据一个实施例的执行标量转换方法的操作的流程图;
图5图示了在图4的方法中使用的l位值的初始状态;以及
图6是图示了根据本公开的一个实施例的密码方法示例的流程图。
具体实施方式
在各种图中,相同的特征由相同的附图标记来指定。具体地,除非上下文另有指示,否则在各种实施例中公共的结构和/或功能特征可以具有相同的附图标记,并且可以设置相同的结构、尺寸和材料性质。
为了清晰起见,只对理解本文所述实施例有用的操作和元素进行了详细的图示和描述。具体地,椭圆曲线上的点乘标量(标量乘法)的密码操作、Koblitz曲线的性质以及标量表示的各种选择未详细描述。
除非另有说明,否则当引用连接在一起的两个元素时,这表示直接连接,除了导体以外没有任何中间元素,当引用耦合在一起的两个元素时,这表示这两个元素可以被连接,或者它们可以经由一个或多个其他元素耦合。
在以下公开中,除非另有说明,否则当引用绝对位置限定词,诸如术语“前”、“后”、“上”、“下”、“左”、“右”等,或者相对位置限定词,诸如术语“之上”、“之下”、“高”、“低”等,或者取向限定词,诸如“水平”、“竖直垂直”等时,参考图中所示的取向。
除非另有说明,否则表述“约”、“大约”、“大致上”和“…的量级”表示在10%以内、以及5%以内等。
图1示意性地图示了根据一个实施例的设备100。设备100例如是计算机、移动电话或集成电路卡。
设备100例如包括主处理器102(MAIN PROCESSOR)(主处理器102例如是设备100的主机处理器)以及密码协处理器104(CRYPTOGRAPHIC COPROCESSOR)。设备100还包括存储器106(MEMORY),存储器106存储指令108(INSTRUCTIONS)来控制主处理器102和/或密码协处理器104。通信接口110(COMMUNICATIONS INTERFACE)例如被耦合到主处理器102,并且例如允许例如通过LAN(“局域网”,未示出)进行无线通信。如图所示,主机处理器102和密码协处理器104具有相应的内部存储器103、105,诸如寄存器或缓存存储器,它们可以在执行本文所述的一个或多个方法时单独使用,也可以与存储器106组合使用。例如,在主处理器或主机处理器102上实施的应用程序可以全部或部分存储在存储器103中。应用程序可以在密码处理器104上发起密码操作的执行,并且密码操作可以使用存储器105或者存储器106和存储器105的组合来执行。
设备100,特别是密码协处理器104,例如被适配用于执行椭圆曲线密码操作。具体地,密码协处理器104例如被配置为执行属于Koblitz曲线E的点P乘以标量k,其形式如下:
公式(Math)1
E:={(x,y)∈K×K:y2+xy=x3+ax2+1},其中a∈{0,1},并且其中K是形式K=GF(2m)的二元有限域,其中m是质数。
标量的乘法运算例如在数据的加密期间被使用,标量k是加密密钥,并且例如通过实施“倍增相加型(double-and-add type)”算法或其变型(诸如“倍增加减型”)和窗口乘法的泛化运算来执行。在“倍增加减”算法中,标量k的数字可以取值1、-1或0。在累加器上对每个数字进行“倍增”运算,并且对于每个非零数字,当数字为1时,点P被添加到累加器,或者当数字为-1时,点P从累加器中减去。在窗口乘法中,数字属于更大的值集,并且标量乘法的执行类似于倍增加减,不同之处在于每个加减涉及的不是P,而是P的预先计算的小倍数,小倍数取决于数字的值。该类型的算法是迭代型的。每次迭代例如涉及根据标量k的数字,修改被称为累加器的椭圆曲线点的值。在一个示例中,标量k的数字是比特,并且每次迭代涉及通过根据所读取的比特的值对点执行操作,从最高有效比特到最低有效比特,或者反向,处理标量k的对应比特。在从左到右的倍增相加乘法方法中,换言之,倍增相加乘法从最高有效比特开始,一直到最低有效比特来执行,不论所读取的比特的值如何,所谓的倍增运算在累加器上执行,并且然后是所谓的加法运算,只在所读取的比特非空的情况下才向累加器中添加P。
在Koblitz曲线的情况下,倍增运算通常被Frobenius运算所取代,Frobenius运算包含点坐标的平方。Frobenius运算比常规的倍增运算更有优势,因为它的实施速度更快,成本更低。
然而,要使用Frobenius运算,标量k应被转换为τ-adic表示,其中τ是复数,等于
Figure BDA0003942659810000061
其中μ等于(-1)1-a,并且a是以上Koblitz曲线E的系数。在τ-adic表示中,标量k被表示为数字di的序列,使得:
公式2
Figure BDA0003942659810000071
其中系数di例如属于{0,1}或{-1,0,1}。整数M是标量k在τ-adic形式下的长度。标量k可以是整数,也可以是形式为a+bτ的所谓的τ-adic整数,其中a和b为整数。一个困难是整数的τ-adic表示大约是其二进制形式的两倍长。由于长表示法的效率较低,标量k在转换为τ-adic形式之前通常被约简(reduced)。标量k的约简包括使用更小的复数ρ替换k,复数ρ等价于标量k modulo τm-1,其中,如前所述,m借助Koblitz曲线下的有限场K来定义K=GF(2m)。然后,对于所考虑的Koblitz曲线的任意点P,kP=ρP,其中P乘以复数τ通过对点P应用Frobenius自同态来定义。
对标量k执行约简和τ-adic转换的现有方法的缺点是它们往往相对复杂和耗时。此外,在某些情况下,当标量k的大小相对较高时,如果需要较短的表示,则需要在转换操作之前执行几次约简操作。
在本公开中,定义了下列符号:
k是待转换的标量,其可以是整数,也可以是τ-adic整数;以及n是非负整数。
根据本文中描述的实施例,标量k被转换为由数字组(d0,...,dm+n-1)组成的τ-adic表示,其中每个数字属于集合D,并可能根据转换结束后对c个连续数字组持有谓词或关系C(di,...,di+c-1)。
根据一些实施例,标量k被转换为τ-adic非邻接形式(τNAF),其中数字属于D={-1,0,1}并且其中c=2,并且两个连续数字的乘积等于零。换言之,
Figure BDA0003942659810000072
在该情况下,τ-adic转换可以完成,例如,其中n=4。
图2是图示了根据一个实施例的标量约简和转换方法的操作的流程图。图2的方法例如由电子设备100的密码协处理器104来实现。例如,图2的方法被用作椭圆曲线密码学方法中的一个步骤(诸如加密、密钥交换、密钥协议、数字签名或身份验证操作)。
在操作200中(INITIALIZATIONρ=k;i=0;(d0,...,dm+n-1)),当前值i被初始化为例如零。长度为m+n的向量(d0,...,dm+n-1)也被初始化。
图3图示了累加器(d0,...,dm+n)的初始化的示例。在该示例中,所有系数(d0,...,dm+n)均被初始化为零。
在图3中,仅累加器的前m个系数(d0,...,dm-1)被表示。累加器的最后n个系数(dm,...,dm+n-1)例如被初始化为零,并且只在图2的算法结束时被更新。实际上,最后n个系数(dm,...,dm+n-1)在算法迭代中不作为输入数据值提供。
返回到图2,操作200例如进一步包括将当前值ρ初始化为零。
例如,在操作200之后,过程继续执行由操作201到203组成的操作序列(OP SEQ)。
在操作201(u←OP1(ρ;d′i,...;d′i+c-1;τ))中,根据以下内容,中间值u被计算为输入数据值和复数τ的函数:
公式3
Figure BDA0003942659810000081
其中mod返回属于集合D的有效数字u,使得ρ+d′i-u可以被τ整除。mod的下标指示u的确切选择可能取决于数字d′i+1至d′i+c-1。每个数字d′i对应于累加器(d0,...,dm+n-1)的m个较低数字的循环指数化。换言之,如果指数i小于m,则d′i=di,否则d′i=di-m。例如,要获得τNAF表示,对于被表示为a+bτ的所有τ-adic整数,
Figure BDA0003942659810000082
定义如下,其中a和b为整数:
公式4
Figure BDA0003942659810000083
换言之,中间值u例如等于(ρ+di)除以复数τ的欧氏除法的余数。该余数不一定是最小的,并且确切余数的选择例如取决于向量(d′i+1,...,d′i+c-1)的其余部分。
在操作201之后的操作202(ρ←OP2(ρ;di;u;τ))中,当前值例如被更新为由(ρ+di-u)除以复数τ产生的新当前值ρ。
在操作202之后的操作203(di←u)中,中间值u例如被存储到数字di中。
在操作204(停止指标?)中,密码协处理器104例如检查是否达到了停止指标。如果停止指标未达到(分支N),则当前值i(框205,i=i+1 mod m)被更新为i+1modulo m。方法然后返回到操作201。换言之,如果在操作205中,当前值i小于或等于m-2,则它将被更新为i+1。但是,如果当前值i等于m-1,则位置的排名i将被重置为零。因此,算法一个接一个地循环更新数字d0至dm-1,直到达到停止指标。
停止指标例如基于ρ的值和索引i。在一个示例中,当转换标量k的期望表示是τNAF表示,且最高有效数字的数量是n=4时,停止指标为例如:
公式5
ρ=0 or(|ρ|≤2 and i=m-1),其中|ρ|是作为一般复数的值ρ的模运算。
一旦达到停止指标(分支Y),进程例如在操作206(END)中结束。在该阶段,n个最有效数字的值仍然是初始值,例如0。在操作206期间,例如通过对n个数字中的每一个按顺序实施操作201至203,累加器的最后n个系数(dm,...,dm+n-1)被设置为当前值ρ的表示。累加器(d0,...,dm+n-1)然后例如提供方法的输出数据,其中系数d0到dm+3表示标量k的约简和τ-adic转换形式的数字:
公式6
Figure BDA0003942659810000091
在另一示例中,我们设置n=0并且通过输出系数d0至dm+1以及ρ的最终值,方法以混合形式输出约简标量,使得
公式7
Figure BDA0003942659810000092
其中ρ的大小相对较小,且受停止指标的限制。例如,当转换标量k的期望表示是τNAF表示,且最有效数字的数量是n=4时,ρ的模数小于或等于2。
图4是图示了根据一个实施例的标量转换的实现方法的操作的另一流程图。该方法例如由电子设备100的密码协处理器104来实现。
图4的方法具有与图2的方法类似的操作,并且相同的操作已被标记为相同的附图标记。
图4的方法相对于图2的方法的不同之处在于,累加器是长度为l+n的向量(d0,...,dl+n-1),其中l=m+l′是大于整数m的整数,并且l’是大于0的整数。为了避免和数字1混淆,整数1除了被表示为整数L之外,还将被表示为整数L。
此外,在图4的实施例中,累加器的输出数字表示标量k经过τ-adic约简和转换之后的数字,其中约简故意不是最优的。换言之,由于转换是正确的,方法输出τ-adic整数ρ的τ-adic表示,使得ρ≡k(modτm-1),但约简不是最优的,意味着ρ不一定是关于该等价的最小τ-adic整数。
在操作400(INITIALIZATION;i=0;(d0,...,dl+n-1))中,当前值i被初始化为例如零。向量(d0,...,dl+n-1)也被初始化为例如τm-1的倍数的τ-adic表示。
累加器(d0,...,dl+n-1)的初始化示例在图5中图示。当数字集D围绕0对称时,该示例有效,这意味着对于任何数字d∈D,它的相反数-d也属于集合D。
在图5中,仅累加器的前1个系数(d0,...,dl-1)被表示。累加器的最后n个系数(dl,...,dl+n-1)例如被初始化为零,并且仅在图4的算法结束时被更新。实际上,最后n个系数(dl,...,dl+n-1)在算法迭代中不作为输入数据值提供。
累加器的前一个系数(d0,d1,...,dl′-1,d1′,...,dm-1,dm,...,dl-1)被初始化为以τ-adic形式对τm-1的随机或伪随机倍数的数字进行编码。事实上,所考虑的Koblitz曲线上的任意点P乘以标量k得到的结果与点P乘以标量k与τm-1的倍数相加的结果相同。换言之,对于属于Koblitz曲线的任意点P并且对于任何整数或τ-adic整数r
公式8
k.P=(k+r(τm-1)).P.向标量k添加τm-1的随机倍数,允许设备100使用伪随机乘数执行标量乘法,同时保持标量k乘法的预期结果。这使得利用标量k值的功耗分析来攻击标量k值更难成功。
为此目的,给定l’随机系数(r0,...,rl′-1),例如,利用D中的值,值
Figure BDA0003942659810000111
表示随机τ-adic整数。这些l’系数(r0,...,rl′-1)然后被选择为遵循谓词C(di,...,di+c-1,例如,如果输出预期为τNAF,则(r0,...,rl′-1)中的两个连续系数的乘积为空。然后,r乘以τm-1例如具有以下的τ-adic形式:
公式9
Figure BDA0003942659810000112
将累加器的前1个系数(d0,...,dl-1)初始化来对τ-adic形式的τm-1的随机倍数进行编码对应于随机选择例如属于D的l’数字(r0,...,rl′-1)的值并且设置:+
公式10
对于j∈{0,...,l′-1},dj=-rj并且dj+m=rj,以及
对于j∈{l′,..,m-1}.,dj=0
在操作400之后,图4所示的方法继续操作序列(OP SEQ)401、202和203,其中操作202和203在以上关于图2来描述。
操作401(u←OP1(ρ;d′i,...,d′i+c-1;τ)与操作201相似,不同之处在于,从d′i到′i+c-1的数字从累加器(d0,...,dl+n-1)的1个低数字提取。如果索引i严格小于l,则d′i=di,否则d′i=di-m
在操作203之后,方法继续也关于图2描述的验证操作204。在一个示例中,如果未达到停止指标(分支N),则例如由密码协处理器104执行另一验证(框405,i≤l-2?)。如果当前值i小于或等于值l-2(分支Y),则在操作407(i=i+1)中将当前值i设置为值i+1。如果当前值i大于l-1(分支N),则在操作407’(i=i+1-m)中将当前值i设置为i+1-m,并开始后续循环。在操作407之后,方法例如返回到操作201。
在操作407’之后,实施操作408((dl′-c+1,...,dl′-1,ρ)←CORRECT(dl′-c+1,...,dl′,ρ))。操作408根据ρ的值,有条件地修改索引l’前面的c-1数字(d0,...,dl-1)。它包括向函数CORRECT(后面将描述)输入(dl′-c+i,...,dl′,ρ),并将函数输出的向量写入(dl′-c+1,...,dl′-1,ρ)。例如,当谓词通过c个连续数字的组进行验证时,就使用该可选纠正。在操作408之后,方法例如返回到操作201。
CORRECT函数遵循以下三个性质:
(1)值
Figure BDA0003942659810000121
通过应用函数而保持不变;
(2)函数输出的数字di均属于集合D;
(3)函数输出的数字di和新值ρ使得操作201到203的下一次实施生成有效数字dl′∈D,使得谓词C(dl′-c+1,...,dl′)成立。
在一个示例中,算法的输出被期望为τNAF表示,这对应于对于所有索引i,D={-1,0,1},c=2以及
Figure BDA0003942659810000122
在这种情况下,函数CORRECT例如在dl′+ρ≡0(modτ)或dl′-1=0时返回(dl′-1,ρ)不变,并且否则,返回
Figure BDA0003942659810000123
一旦达到停止指标,进程例如在操作206(END)中结束。在这个阶段,累加器的最后n个系数的值仍然是初始值,例如0。在操作206期间,如图2所示,累加器的最后n个系数(d1,...,dl+n-1)被设置为当前值ρ。方法的输出数据是累加器(dl,...,dl+n-1),其中系数d0到dl+n-1表示该值k的约简和-τ-adic转换形式的数字:
公式11
Figure BDA0003942659810000124
在该实施例中,系数d0到dl′-c例如仅取一次作为输入数据值,并进行处理。事实上,一旦系数d0到dl-1中的每一个被作为输入数据值提供一次,则只有累加器的最后m+c-1系数(dl′-c+1,...,dl-1)在算法的每个新循环中一个接一个被作为输入数据值,直到达到停止指标。
关于图2和图4描述的实施例允许基于τi和τimod(m)moduloτm-1的等价性,使用相同的操作序列,将标量k或标量k的等价物一个接一个地约简和转换为τ-adic表示。
图2和/或图4的方法的结果可以例如被用于Koblitz曲线上的点的标量乘法,现在将参考图6更详细地描述。这样的标量乘法可以例如被用作椭圆曲线密码操作的一部分。
图6图示了执行密码操作并保护密码操作的执行的实施例。具体地,图6是图示了根据本公开的实施例的标量乘法示例的流程图。
例如,图6的流程图所示的方法由图1的电子设备100来实现。
例如,在操作600(接收k和P)中,电子设备100例如通过通信接口110来接收与整数或τ-adic整数k和编码数据或待编码明文相对应的数据值。在另一示例中,标量k已被存储在存储器106中,并且仅点经由通信接口110接收。密码密钥k和点然后例如被发送到密码协处理器104。
在操作600之后的操作601(约简和τ-adic转换)中,密码协处理器104根据关于图2描述的实施例或根据关于图4描述的实施例来执行标量k的约简(reduction)和转换,以生成标量k更适当的表示。
在操作601之后的操作602(P的标量乘法)中,密码协处理器104例如执行经修改的标量k与点P的乘法。操作的结果然后根据相关协议而例如在密码操作604中使用。在某些情况下,乘法根据于2021年8月31日提交的专利申请“Protection d’une opérationcryptographique sur une courbe elliptique”中描述的方法来执行,该专利申请以当前申请人的名义提交并且分配的申请编号为FR2109096(律师编号B20909)。
所述实施例的一个优点是,τ-adic可以在标量约简期间一个数字接一个数字动态地进行。此外,经转换的标量的长度不取决于输入标量的大小。
所述实施例的另一优点是,它们使得利用差分功率分析以及相关的攻击变得困难。实际上,在涉及标量k的每个密码操作中,对标量k添加随机倍数τm-1,将改变设备的可见操作。此外,在一些τ-adic表示中,诸如τNAF及其变型,生成随机倍数τm-1包括生成数l’的随机数。
已描述了各种实施例和变型。本领域技术人员将理解这些实施例的某些特征可以被组合并且其他变型对于本领域计数人员将是显而易见的。
最后,本文所述的实施例和变型的实际实现方式基于以上提供的功能描述,在技术人员的能力范围内。具体地,关于随机数字的生成。
一种密码方法可以被总结为包括通过密码电路(104)来实施应用于标量(k)的算法,以生成长度为l+n的输出向量,输出向量具有数字d0,...,dl+n-1,算法包括迭代i,每个迭代i取输入数据值(ρ)和长度为c的输入向量,输入数据值初始等于所述标量,输入向量具有数字d′i,...,d′i+c-1,其中针对每个j∈{i,...,i+c-1},数字d′j使得:
Figure BDA0003942659810000141
其中m是正整数并且每个迭代i包括:a)通过对第一输入数据(ρ)和输入向量施加第一操作,moduloτ,计算第一中间数据值(u),其中τ为复数;b)通过对第一输入数据值、输入向量、第一中间数据值(u)和τ施加第二操作,更新第一输入数据值(ρ)的值;以及c)将输出向量在位置i处的数字(di)更新为等于第一中间数据值(u),其中迭代总次数由密码电路基于停止指标来确定。
每次迭代可以进一步包括d)将i更新到i+1;e)当i=l,将i重置到i-m。
第一整数1可以大于第二整数m,方法进一步包括:在实施迭代l-1的步骤e)之后,将函数(CORRECT)应用于位置j的输出向量(d0,,..dl+n-1)的c-1数字连同第一输入数据值(ρ),其中j属于{l-m-c+1,...,l-m},以及通过应用函数产生的结果,更新输出向量的这些数字以及第一输入数据值(ρ),函数使得与
Figure BDA0003942659810000151
相等的量在函数更新数字之前和之后保持不变,并且经更新的数字dl-m-c+1至dl-m满足谓词C,谓词C取决于base-τ表示。
密码方法可以包括将输出向量的最后n个坐标设置为最后一次迭代的第一输入数据值(ρ)的base-τ表示。
输出向量(d0,...,dl+n-1)的坐标可以对应于标量(k)的约简τ-adic形式的数字。
标量(k)的τ-adic约简转换的长度可能不取决于所述标量的值。
停止指标可以包括第一输入数据值(ρ)足够低,以至于可以以base-τ数字来表示。
第一操作的结果可以是第一输入数据值(ρ)和输入向量(d′i)的第一数字除以复数(τ)的欧氏除法的余数不一定最小。
整数m可以根据Koblitz曲线(E)来定义,Koblitz曲线(E)由以下形式的点集来定义:
公式9
{(x,y)∈K×K:y2+xy=x3+ax2+1},其中a等于0或1,并且K=GF(2m)是基数2m的有限域。
密码方法可以包括将与属于Koblitz曲线(E)的点P相对应的基准点乘以标量(k)的标量乘法。
复数τ可以等于
Figure BDA0003942659810000152
其中μ等于(-1)1-a
标量(k)可以是存储在电子设备存储器中的密码密钥。
整数1可以等于m,并且输出向量可以由m+n个坐标组成,并且,在实施第一次迭代i=0的a)到c)的步骤之前,每个坐标等于0。
第一整数l可以比第二整数m大,并且在实施第一次迭代i=0的步骤a)到c)之前,输出向量(d0,...,dl+n-1)的前1数字可以是τ-adic形式的τm-1倍数的数字。
在实施第一次迭代i=0的步骤a)到c)之前,输出向量(d0,...,dl+n-1)的前1数字使得当j在0到1-m-1之间时,位置j的数字可以与位置m+j的数字相反;并且当j在1-m和m-1之间时,位置j的每个数字可以等于0。
非暂态存储器可以被概括为包括用于实现密码方法的存储指令,当这些指令由密码电路实施时。
电子设备可以被概括为包括被配置用于实现密码方法的密码电路。
在一个实施例中,方法包括执行密码操作以及保护密码操作的执行。执行密码操作以及保护包括:通过密码电路来实施应用于标量的算法,以生成长度为l+n的输出向量,输出向量具有数字d0,...,dl+n-1,算法包括多个迭代i,每个迭代i取输入数据值(ρ)和长度为c的输入向量,输入数据值初始等于所述标量,输入向量具有数字d′i,...,d′i+c-1,其中针对每个j∈{i,...,i+c-1},数字d′j根据以下等式来确定:
Figure BDA0003942659810000161
其中m、l和n是正整数并且每个迭代i包括:
a)通过对第一输入数据(ρ)和输入向量施加第一操作,moduloτ,计算第一中间数据值(u),其中τ为复数;
b)通过对第一输入数据值、输入向量、第一中间数据值(u)和τ施加第二操作,更新第一输入数据值(ρ)的值;以及
c)将输出向量在位置i处的数字(di)设置为等于第一中间数据值(u),
其中迭代次数由密码电路基于停止指标来确定。
在一个实施例中,每次迭代可以包括d)将i更新到i+1;e)当i=l,将i重置到i-m。在一个实施例中,整数l可以大于整数m,并且方法进一步包括:在实施迭代l-1的步骤e)之后,将函数(CORRECT)应用于位置j的输出向量(d0,...dl+n-1)的c-1数字连同第一输入数据值(ρ),其中j属于{l-m-c+1,...,l-m},以及通过应用函数产生的结果,更新输出向量的这些数字以及第一输入数据值(ρ),函数使得与
Figure BDA0003942659810000171
相等的量在函数更新数字之前和之后保持不变,并且经更新的数字dl-m-c+1至dl-m满足谓词C,谓词C取决于base-τ表示。在一个实施例中,方法可以包括将输出向量的最后n个坐标设置为最后一次迭代的第一输入数据值(ρ)的base-τ表示。在一个实施例中,输出向量(d0,...,dl+n-1)的坐标可以对应于标量的约简τ-adic形式的数字。在一个实施例中,标量(k)的τ-adic约简转换的长度可能不取决于所述标量的值。在一个实施例中,停止指标可以在第一输入数据值(ρ)可以以n个base-τ数字表示时被满足。在一个实施例中,第一操作的结果是第一输入数据值(ρ)和输入向量(d′i)的第一数字之和除以复数(τ)的欧氏除法的余数。在一个实施例中,第一操作的结果不是欧氏除法的最小结果。在一个实施例中,整数m根据由具有以下形式的点集定义的Koblitz曲线(E)来定义:{(x,y)∈K×K:y2+xy=x3+ax2+1},其中a等于0或1,并且K=GF(2m)是基数2m的有限域。在一个实施例中,密码方法包括将与属于Koblitz曲线(E)的点P相对应的基准点乘以标量(k)的标量乘法。在一个实施例中,复数τ等于
Figure BDA0003942659810000172
其中μ等于(-1)1-a。在一个实施例中,标量(k)可以是存储在电子设备存储器中的密码密钥。在一个实施例中,整数1可以等于m,并且输出向量(d0,...,dm+n-1)由m+n个坐标组成,并且在实施第一次迭代i=0的a)到c)的步骤之前,每个坐标等于0。在一个实施例中,第一整数l大于第二整数m,并且其中在实施第一次迭代i=0的步骤a)到c)之前,输出向量(d0,...,dl+n-1)的前l数字可以是τ-adic形式的τm-1倍数的数字。在一个实施例中,在实施第一次迭代i=0的步骤a)到c)之前,输出向量(d0,...,dl+n-1)的前l数字满足:当j在0到1-m-1之间时,位置j的数字与位置m+j的数字相反;并且当j在1-m和m-1之间时,位置j的每个数字等于0。
在一个实施例中,非暂态计算机可读介质的内容导致密码电路执行方法,方法包括:执行密码操作以及保护密码操作的执行。执行密码操作以及保护包括:实施应用于标量的算法,以生成长度为l+n的输出向量,输出向量具有数字d0,...,dl+n-1,算法包括多个迭代i,每个迭代i取输入数据值(ρ)和长度为c的输入向量,输入数据值初始等于所述标量,输入向量具有数字d′i,...,d′i+c-1,其中针对每个j∈{i,...,i+c-1},数字d′j根据以下等式来确定:
Figure BDA0003942659810000181
其中m、l和n是正整数并且每个迭代i包括:
a)通过对第一输入数据(ρ)和输入向量施加第一操作,moduloτ,计算第一中间数据值(u),其中τ为复数;
b)通过对第一输入数据值、输入向量、第一中间数据值(u)和τ施加第二操作,更新第一输入数据值(ρ)的值;以及
c)将输出向量在位置i处的数字(di)设置为等于第一中间数据值(u),
其中迭代次数由密码电路基于停止指标来确定。在一个实施例中,每次迭代可以包括d)将i更新到i+1;e)当i=l,将i重置到i-m。在一个实施例中,整数l可以大于整数m,并且方法进一步包括:在实施迭代l-1的步骤e)之后,将函数(CORRECT)应用于位置j的输出向量(d0,...dl+n-1)的c-1数字连同第一输入数据值(ρ),其中j属于{l-m-c+1,...,l-m},以及通过应用函数产生的结果,更新输出向量的这些数字以及第一输入数据值(ρ),函数使得与
Figure BDA0003942659810000182
相等的量在函数更新数字之前和之后保持不变,并且经更新的数字dl-m-c+1至dl-m满足谓词C,谓词C取决于base-τ表示。在一个实施例中,方法可以包括将输出向量的最后n个坐标设置为最后一次迭代的第一输入数据值(ρ)的base-τ表示。在一个实施例中,停止指标可以在第一输入数据值(ρ)可以以n个base-τ数字表示时被满足。在一个实施例中,第一操作的结果是第一输入数据值(ρ)和输入向量(d′i)的第一数字之和除以复数(τ)的欧氏除法的余数。在一个实施例中,整数m根据由具有以下形式的点集定义的Koblitz曲线(E)来定义:{(x,y)∈K×K:y2xy=x3+ax2+1},其中a等于0或1,并且K=GF(2m)是基数2m的有限域。在一个实施例中,复数τ等于
Figure BDA0003942659810000191
其中μ等于(-1)1-a。在一个实施例中,内容包括能够由密码电路实施的指令。
在一个实施例中,设备包括存储器以及与存储器耦合的密码电路。密码电路在操作中执行密码操作并且保护密码操作的执行,执行密码操作以及保护包括:实施应用于标量的算法,以生成长度为l+n的输出向量,输出向量具有数字d0,..,dl+n-1,算法包括多个迭代i,每个迭代i取输入数据值(ρ)和长度为c的输入向量,输入数据值初始等于所述标量,输入向量具有数字d′i,...,d′i+c-1,其中针对每个j∈{i,...,i+c-1},数字d′j根据以下等式来确定:
Figure BDA0003942659810000192
其中m、l和n是正整数并且每个迭代i包括:
a)通过对第一输入数据(ρ)和输入向量施加第一操作,moduloτ,计算第一中间数据值(u),其中τ为复数;
b)通过对第一输入数据值、输入向量、第一中间数据值(u)和τ施加第二操作,更新第一输入数据值(ρ)的值;以及
c)将输出向量在位置i处的数字(di)设置为等于第一中间数据值(u),
其中迭代次数由密码电路基于停止指标来确定。在一个实施例中,每次迭代可以包括:
d)将i更新到i+1;
e)当i=l,将i重置到i-m。
在一个实施例中,整数l大于整数m,并且方法包括:在实施迭代l-1的步骤e)之后,将函数(CORRECT)应用于位置j的输出向量(d0,...dl+n-1)的c-1数字连同第一输入数据值(ρ),其中j属于{l-m-c+1,...,l-m},以及通过应用函数产生的结果,更新输出向量的这些数字以及第一输入数据值(ρ),函数使得:
Figure BDA0003942659810000201
相等的量在函数更新数字之前和之后保持不变,并且
经更新的数字dl-m-c+1至dl+m满足谓词C,
谓词C取决于base-τ表示。
在一个实施例中,密码电路在操作中将输出向量的最后n个坐标设置为最后一次迭代的第一输入数据值(ρ)的base-τ表示。在一个实施例中,停止指标在第一输入数据值(ρ)可以以n个base-τ数字表示时被满足。在一个实施例中,第一操作的结果是第一输入数据值(ρ)和输入向量(d′i)的第一数字之和除以复数(τ)的欧氏除法的余数。在一个实施例中,整数m根据由具有以下形式的点集定义的Koblitz曲线(E)来定义:{(x,y)∈K×K:y2xy=x3+ax2+1},其中a等于0或1,并且K=GF(2m)是基数2m的有限域。在一个实施例中,复数τ等于
Figure BDA0003942659810000202
其中μ等于(-1)1-a
在一个实施例中,系统包括主机处理器以及与主机处理器耦合的密码电路。密码电路在操作中执行密码操作并且保护密码操作的执行,执行密码操作以及保护包括:实施应用于标量的算法,以生成长度为l+n的输出向量,输出向量具有数字d0,...,dl+n-1,算法包括多个迭代i,每个迭代i取输入数据值(ρ)和长度为c的输入向量,输入数据值初始等于所述标量,输入向量具有数字d′i,...,d′i+c-1,其中针对每个j∈{i,...,i+c-1},数字d′j根据以下等式来确定:
Figure BDA0003942659810000203
其中m、l和n是正整数并且每个迭代i包括:
a)通过对第一输入数据(ρ)和输入向量施加第一操作,moduloτ,计算第一中间数据值(u),其中τ为复数;
b)通过对第一输入数据值、输入向量、第一中间数据值(u)和τ施加第二操作,更新第一输入数据值(ρ)的值;以及
c)将输出向量在位置i处的数字(di)设置为等于第一中间数据值(u),
其中迭代次数由密码电路基于停止指标来确定。
在一个实施例中,每次迭代还包括:
d)将i更新到i+1;以及
e)当i=l,将i重置到i-m。
在一个实施例中,在操作中,在主机处理器上实施的应用程序通过密码电路发起密码操作的执行。
一些实施例可以采取或包括计算机程序产品的形式。例如,根据一个实施例,提供了计算机可读介质,计算机可读介质包括被适配用于执行上述一种或多种方法或功能的计算机程序。介质可以是物理存储介质,诸如例如只读存储器(ROM)芯片或者诸如数码多功能磁盘(DVD ROM)的盘、光盘(CD-ROM)、硬盘、存储器、网络或者由适当的驱动装置或经由适当的连接读取的便携式介质制品,包括被编码在一个或多个条形码中或存储在一个或多个计算机可读介质中和被适当的阅读器设备读取的其他相关代码。
此外,在一些实施例中,部分或所有的方法和/或功能可以以其他方式来实现或提供,诸如至少部分地在固件和/或硬件中实现或提供,固件和/或硬件包括但不限于一个或多个专用集成电路(ASIC)、数字信号处理器、分立电路、逻辑门、标准集成电路、控制器(例如,通过实施适当的指令,并且包括微控制器和/或嵌入式控制器)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)等以及采用RFID技术的设备及其各种组合。
以上所述的各种实施例可以被组合来提供进一步的实施例。根据需要,实施例的各方面可以被修改来采用各种专利、应用和出版物的概念来提供进一步的实施例。
可以根据上述详细的描述对实施例进行这些和其他更改。一般而言,在所附权利要求中,所使用的术语不应被解释为将权利要求限制在说明书和权利要求中公开的特定实施例中,而应被解释为包括所有可能的实施例以及权利要求所要求保护的等同物的全部范围。因此,权利要求不受本公开内容的限制。

Claims (35)

1.一种方法,包括:
执行密码操作;以及
保护所述密码操作的执行,所述密码操作的执行以及所述保护包括:
通过密码电路来实施应用于标量的算法,以生成长度为L+n的输出向量,所述输出向量具有数字d0,...,dl+n-1,所述算法包括多次迭代i,每个迭代i取输入数据值(ρ)以及长度为c的输入向量,所述输入数据值初始等于所述标量,所述输入向量具有数字d′i,...,d′i+c-1,其中针对每个j∈{i,...,i+c-1},所述数字d′j根据下式来确定:
Figure FDA0003942659800000011
其中m、L和n是正整数并且每个迭代i包括:
a)通过对所述第一输入数据(ρ)和所述输入向量施加第一操作,modulo τ,计算第一中间数据值(u),其中τ为复数;
b)通过对所述第一输入数据值、所述输入向量、所述第一中间数据值(u)和τ施加第二操作,更新所述第一输入数据值(ρ)的值;以及
c)将所述输出向量在位置i处的数字(di)设置为等于所述第一中间数据值(u),
其中迭代次数由所述密码电路基于停止指标来确定,并且其中所述输出向量(d0,...,dL+n-1)的坐标对应于所述标量以经约简的τ-adic形式的数字。
2.根据权利要求1所述的方法,其中每次迭代还可以包括:
d)将i更新到i+1;以及
e)当i=L,将i重置到i-m。
3.根据权利要求2所述的方法,其中所述整数L大于整数m,所述方法包括:在实施迭代L-1的步骤e)之后,将函数(CORRECT)应用于位置j的输出向量(d0,...dl+n-1)的c-1数字连同所述第一输入数据值(ρ),其中j属于{L-m-c+1,...,L-m},以及通过应用所述函数产生的结果,更新所述输出向量的这些数字以及所述第一输入数据值(ρ),所述函数使得:
Figure FDA0003942659800000021
相等的量在通过所述函数更新所述数字之前和之后保持不变,以及
经更新的数字dl-m-c+1至dl-m满足谓词C;
所述谓词C取决于base-τ表示。
4.根据权利要求1所述的方法,包括:将所述输出向量的最后n个坐标设置为最后一次迭代的所述第一输入数据值(ρ)的base-τ表示。
5.根据权利要求4所述的方法,其中所述标量的τ-adic约简转换的长度不取决于所述标量的值。
6.根据权利要求1所述的方法,其中所述停止指标在所述第一输入数据值(ρ)能够以base-τ数字来表示时被满足。
7.根据权利要求1所述的方法,其中所述第一操作的结果可以是所述第一输入数据值(ρ)和所述输入向量(d′i)的第一数字之和除以所述复数(τ)的欧氏除法的余数。
8.根据权利要求7所述的方法,其中所述第一操作的所述结果不是所述欧氏除法的最小结果。
9.根据权利要求1所述的方法,其中所述整数m根据Koblitz曲线(E)来定义,所述Koblitz曲线(E)由具有以下形式的点集来定义:
{(x,y)∈K×K:y2+xy=x3+ax2+1},其中a等于0或1,并且K=GF(2m)是基数2m的有限域。
10.根据权利要求9所述的方法,包括:将与属于Koblitz曲线(E)的点P相对应的基准点乘以标量(k)的标量乘法。
11.根据权利要求9所述的方法,其中所述复数τ等于
Figure FDA0003942659800000031
其中μ等于(-1)1-a
12.根据权利要求1所述的方法,其中所述标量(k)是存储在电子设备存储器中的密码密钥。
13.根据权利要求1所述的方法,其中所述整数L等于m,并且其中所述输出向量(d0,...,dm+n-1)由m+n个坐标组成,并且在实施第一次迭代i=0的a)到c)的步骤之前,每个坐标等于0。
14.根据权利要求1所述的方法,其中所述整数L大于整数m,并且其中在实施第一次迭代i=0的步骤a)到c)之前,所述输出向量(d0,...,dl+n-1)的前L数字是τ-adic形式的τm-1倍数的数字。
15.根据权利要求14所述的方法,其中在执行所述第一次迭代i=0的步骤a)到c)之前,所述输出向量(d0,...,dl+n-1)的前L数字满足:
当j在0到L-m-1之间时,位置j的数字与位置m+j的数字相反;并且
当j在L-m和m-1之间时,位置j的每个数字等于O。
16.一种具有内容的非暂态计算机可读介质,所述内容使得密码电路执行方法,所述方法包括:
执行密码操作;以及
保护所述密码操作的执行,执行所述密码操作以及所述保护包括:
实施应用于标量的算法,以生成长度为L+n的输出向量,所述输出向量具有数字d0,...,dl+n-1,所述算法包括多次迭代i,每个迭代i取输入数据值(ρ)和长度为c的输入向量,所述输入数据值初始等于所述标量,所述输入向量具有数字d′i,...,d′i+c-1,其中针对每个j∈{i,...,i+c-1},所述数字d′j根据下式来确定:
Figure FDA0003942659800000041
其中m、L和n是正整数并且每个迭代i包括:
a)通过对所述第一输入数据(ρ)和所述输入向量施加第一操作,modulo τ,计算第一中间数据值(u),其中τ为复数;
b)通过对所述第一输入数据值、所述输入向量、所述第一中间数据值(u)和τ施加第二操作,更新所述第一输入数据值(ρ)的值;以及
c)将所述输出向量在位置i处的数字(di)更新为等于所述第一中间数据值(u),
其中迭代次数由所述密码电路基于停止指标来确定,并且其中所述输出向量(d0,...,dL+n-1)的坐标对应于所述标量经约简的τ-adic形式的数字。
17.根据权利要求16所述的非暂态计算机可读介质,其中每次迭代包括:
d)将i更新到i+1;以及
e)当i=L,将i重置到i-m。
18.根据权利要求17所述的非暂态计算机可读介质,其中所述整数L大于所述整数m,并且所述方法包括:在实施迭代L-1的步骤e)之后,将函数(CORRECT)应用于位置j的所述输出向量(d0,...dl+n-1)的c-1数字连同所述第一输入数据值(ρ),其中j属于{L-m-c+1,...,L-m},以及通过应用所述函数产生的结果,更新所述输出向量的这些数字以及所述第一输入数据值(ρ),所述函数使得:
Figure FDA0003942659800000042
相等的量在所述函数更新所述数字之前和之后保持不变,以及
经更新的数字dL-m-c+1至dL-m满足谓词C;
所述谓词C取决于base-τ表示。
19.根据权利要求16所述的非暂态计算机可读介质,其中所述方法包括:将所述输出向量的最后n个坐标设置为最后一次迭代的所述第一输入数据值(ρ)的base-τ表示。
20.根据权利要求16所述的非暂态计算机可读介质,其中所述停止指标在所述第一输入数据值(ρ)能够以base-τ数字来表示时被满足。
21.根据权利要求16所述的非暂态计算机可读介质,其中所述第一操作的结果是所述第一输入数据值(ρ)和所述输入向量(d′i)的第一数字之和除以所述复数(τ)的欧氏除法的余数。
22.根据权利要求16所述的非暂态计算机可读介质,其中所述整数m根据Koblitz曲线(E)来定义,所述Koblitz曲线(E)由具有以下形式的点集来定义:
{(x,y)∈K×K:y2+xy=x3+ax2+1},其中a等于0或1,并且K=GF(2m)是基数2m的有限域。
23.根据权利要求22所述的非暂态计算机可读介质,其中所述复数τ等于
Figure FDA0003942659800000051
其中μ等于(-1)1-a
24.根据权利要求16所述的非暂态计算机可读介质,其中所述内容包括由所述密码电路可实施的指令。
25.一种设备,包括:
存储器,以及
与所述存储器耦合的密码电路,其中所述密码电路在操作中执行密码操作并且保护所述密码操作的执行,执行所述密码操作以及所述保护包括:
实施执行应用于标量的算法,以生成长度为L+n的输出向量,所述输出向量具有数字d0,...,dl+n-1,所述算法包括多次迭代i,每个迭代i取输入数据值(ρ)和长度为c的输入向量,所述输入数据值初始等于所述标量,所述输入向量具有数字d′i,...,d′i+c-1,其中针对每个j∈{i,...,i+c-1},所述数字d′j根据下式来确定:
Figure FDA0003942659800000061
其中m、L和n是正整数并且每个迭代i包括:
a)通过对所述第一输入数据(ρ)和所述输入向量施加第一操作,modulo τ,计算第一中间数据值(u),其中τ为复数;
b)通过对所述第一输入数据值、所述输入向量、所述第一中间数据值(u)和τ施加第二操作,更新所述第一输入数据值(ρ)的值;以及
c)将所述输出向量在位置i处的数字(di)更新为等于所述第一中间数据值(u),
其中迭代次数由所述密码电路基于停止指标来确定,并且其中所述输出向量(d0,...,dL+n-1)的坐标对应于所述标量以经约简的τ-adic形式的数字。
26.根据权利要求25所述的设备,其中每次迭代包括:
d)将i更新到i+1;以及
e)当i=L,将i重置到i-m。
27.根据权利要求26所述的设备,其中所述整数L大于所述整数m,并且所述方法包括:在执行迭代L-1的步骤e)之后,将函数(CORRECT)应用于位置j的所述输出向量(d0,...dl+n-1)的c-1数字连同所述第一输入数据值(ρ),其中j属于{L-m-c+1,...,L-m},以及通过应用所述函数产生的结果,更新所述输出向量的这些数字以及所述第一输入数据值(ρ),所述函数使得:
Figure FDA0003942659800000062
相等的量在所述函数更新所述数字之前和之后保持不变,以及
经更新的数字dL-m-c+1至dL-m满足谓词C;
所述谓词C取决于base-τ表示。
28.根据权利要求25所述的设备,其中所述密码电路在操作中,将所述输出向量的最后n个坐标设置为最后一次迭代的所述第一输入数据值(ρ)的base-τ表示。
29.根据权利要求25所述的设备,其中所述停止指标在所述第一输入数据值(ρ)能够以base-τ数字来表示时被满足。
30.根据权利要求25所述的安保,其中所述第一操作的结果是所述第一输入数据值(ρ)和所述输入向量(d′j)的第一数字之和除以所述复数(τ)的欧氏除法的余数。
31.根据权利要求25所述的设备,其中所述整数m根据Koblitz曲线(E)来定义,所述Koblitz曲线(E)由以下形式的点集来定义:{(x,y)∈K×K:y2+xy=x3+ax2+1},其中a等于0或1,并且K=GF(2m)是基数2m的有限域。
32.根据权利要求31所述的设备,其中所述复数τ等于
Figure FDA0003942659800000071
其中μ等于(-1)1-a
33.一种系统,包括:
主机处理器;以及
与所述主机处理器耦合的密码电路,其中所述密码电路在操作中执行密码操作以及保护所述密码操作的执行,执行所述密码操作以及所述保护包括:
实施应用于标量的算法,以生成长度为L+n的输出向量,所述输出向量具有数字d0,...,dl+n-1,所述算法包括多次迭代i,每个迭代i取输入数据值(ρ)和长度为c的输入向量,所述输入数据值初始等于所述标量,所述输入向量具有数字d′i,...,d′i+c-1,其中针对每个j∈{i,...,i+c-1},所述数字d′j根据下式来确定:
Figure FDA0003942659800000072
其中m、L和n是正整数并且每个迭代i包括:
a)通过对所述第一输入数据(ρ)和所述输入向量施加第一操作,modulo τ,计算第一中间数据值(u),其中τ为复数;
b)通过对所述第一输入数据值、所述输入向量、所述第一中间数据值(u)和τ施加第二操作,更新所述第一输入数据值(ρ)的值;以及
c)将所述输出向量在位置i处的数字(di)更新为等于所述第一中间数据值(u),
其中迭代次数由所述密码电路基于停止指标来确定,并且其中所述输出向量(d0,...,dL+n-1)的坐标对应于所述标量经约简的τ-adic形式的数字。
34.根据权利要求33所述的系统,其中每次迭代包括:
d)将i更新到i+1;以及
e)当i=L,将i重置到i-m。
35.根据权利要求33所述的系统,其中在操作中,在所述主机处理器上实施的应用程序通过所述密码电路发起所述密码操作的执行。
CN202211419894.9A 2021-11-15 2022-11-14 标量到陶氏表示法的约简和转换 Pending CN116127534A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
FR2112052A FR3129262A1 (fr) 2021-11-15 2021-11-15 Réduction et conversion d'un scalaire en une représentation tau-adique
FR2112052 2021-11-15
US17/981,200 US20230155828A1 (en) 2021-11-15 2022-11-04 Reduction and conversion of a scalar to a tau-adic representation
US17/981,200 2022-11-04

Publications (1)

Publication Number Publication Date
CN116127534A true CN116127534A (zh) 2023-05-16

Family

ID=86306954

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211419894.9A Pending CN116127534A (zh) 2021-11-15 2022-11-14 标量到陶氏表示法的约简和转换

Country Status (1)

Country Link
CN (1) CN116127534A (zh)

Similar Documents

Publication Publication Date Title
JP5301989B2 (ja) 楕円曲線点乗算
US9520995B2 (en) Efficient prime-number check
CN109791517B (zh) 保护并行乘法运算免受外部监测攻击
JP2008293034A (ja) タイミング攻撃を阻止する標準化されたモジュラべき乗を計算することにより復号メカニズムを実行する方法と装置
US9886597B2 (en) Method for encoding data on a chip card by means of constant-weight codes
JP5327380B2 (ja) 暗号処理装置および暗号処理方法
JP2020515093A (ja) 符号化加算のための計算デバイス
US11502836B2 (en) Method for performing cryptographic operations on data in a processing device, corresponding processing device and computer program product
Márquez-Corbella et al. Computational aspects of retrieving a representation of an algebraic geometry code
US10833868B2 (en) Direct anonymous attestation-based apparatus and method
CN108809323B (zh) 循环冗余校验码的生成方法和装置
CN116127534A (zh) 标量到陶氏表示法的约简和转换
US11985221B2 (en) Efficient masking of secure data in ladder-type cryptographic computations
Kim et al. Layered ROLLO-I: faster rank-metric code-based KEM using ideal LRPC codes
CN116225369A (zh) Sm2算法标量乘运算优化方法及系统
CN114124107A (zh) 一种循环冗余校验的计算方法和装置
US20230155828A1 (en) Reduction and conversion of a scalar to a tau-adic representation
JP2004125891A (ja) べき乗剰余演算器
CN112613879A (zh) 一种基于grs码的金融交易数据处理方法
RU2401513C2 (ru) Способ формирования и проверки подлинности электронной цифровой подписи, заверяющей электронный документ
JP2018538620A (ja) 計算デバイス及び方法
Hazmi et al. Systolic design space exploration of polynomial division over GF (m 2)
RU2382505C1 (ru) Способ формирования и проверки подлинности электронной цифровой подписи, заверяющей электронный документ
CN114448634A (zh) 用于椭圆曲线加密的密钥
JP5157018B2 (ja) ガロア体上の元の除算演算回路

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