如何解答DS5250微控制器的模幂运算时序

元器件信息   2023-09-08 14:41   143   0  

DS5250 点击型号查看芯片规格书

Analog Devices(亚德诺)芯片规格书大全

芯片规格书搜索工具-icspec


模幂运算在许多密码算法中都有应用。任何实现这些算法之一的人都必须知道操作大约需要多长时间。本应用笔记描述了如何在DS5250高速安全微控制器上进行模幂运算。它列出了运行各种表达式的典型时间,并描述了获取时间的代码流。

MAA基本操作

模幂是函数,(底(指数))模模。例如,(2(9)mod 10)等于(512 mod 10),即等于2。答案总是介于0和模数-1之间的数。

DS5250上的MAA(模算术加速器)总是使用MAA寄存器“a”作为基数,MAA寄存器“e”作为指数,MAA寄存器“m”作为模数。MAA寄存器“b”在操作前初始化为1,并包含操作后的结果。MAA大小寄存器(A2h和A1h的MAS1和MAS0)告诉MAA这些寄存器中的最大位数。寄存器m必须设置最高位才能工作。大小寄存器的值可以从2到4096。

模运算加速器控制寄存器(MACT at A3h)包含用于控制MAA操作的位。计算配置位(MACT寄存器的CLC1和CLC0)决定要执行四个操作中的哪一个。运算可以是模乘;模平方;模平方和乘法;这里讨论的运算,模幂。

模幂运算是用重复的平方和乘来计算的。对指数中的每一位进行平方运算。只有当指数中相应的位被设置时,才需要进行乘法运算。图1给出了模求幂运算的伪代码。优化计算控制位(MACT寄存器的OCALC)决定是否对每个位进行乘法运算。当启用OCALC位时,每次在指数中找到1位时,就执行乘法操作。当OCALC位被禁用时,对指数中的每个位(0或1)进行乘法,从而为任何特定模量大小提供类似的时间计算。所有私钥计算都应该使用OCALC=0(禁用)以及从环运行(RNGSEL=1)来完成,以避免定时攻击。

24083_s33n_5028.gif

图1所示、模求幂的伪代码

MAA可以使用系统时钟运行,也可以从环运行。当选择此选项时,MAA以系统时钟速度的一半运行。因此,对于22.1MHz晶体,MAA将运行在10.05MHz。当从系统时钟运行时,执行相同的值将花费相同的时间。当MAA从环上运行时,执行时间可能会根据电压、温度和环的固有速度而变化,这些速度会因部分而异。MAA以环的全速运行。在表1和表2所示的典型数据中,环运行在22Mhz附近。环形振荡器选择(RNGSEL)的MACT寄存器控制哪个时钟用于模幂运算。


优化上
时钟脉冲源
优化了
时钟脉冲源
模量大小22.1 mhz Osc11.1 mhz Osc22.1 mhz Osc11.1 mhz Osc
25612.3826.2851.4416.3334.7969.55
51274.98155.43312.0698.18208.79416.91
768225.44468.50943.04296.10626.891252 .23
1024507.391050 .53点2079 .01点664.201397 .87点2793 .32
1280958.411967 .81点3922 .171248 .332629 .905258点
15361611年。083321 .946623 .292112 .68点4421 .998833 .31
17922520 .53点5176 .4610311 .88点3295 .64点6889 .75点13771点
20483729点7573 .35点15199点4863年1010143 .3120249 .51
23045251 .2610773 .81点21372 .706852 .96点14276 .87点28532 .62
25607159 .86点14557点29079 .79932819392 .38点38761 .51
28169434 .47点19216 .24点38474 .44点12334 .35点25636 .24点51189 .86点
307212152 .6224807 .5549631年3615930 .1333070 .91点66018 .62
332815360 .1631377 .07点62436 .28点20147 .92点41818 .9083544 .01点
358419138 .1038988 .81点78039 .69点25073 .03点51951 .35点103848 .07点
384023445年。0847678 .86点95490 .03点30691 .8563689 .30127205 .55
409628327 .98点57649 .65点11529537128 .98点76965 .83点153828 .69点

优化上
时钟脉冲源
优化了
时钟脉冲源
模量大小22.1 mhz Osc11.1 mhz Osc22.1 mhz Osc11.1 mhz Osc
2560.651.352.7015.8732.6265.15
5121.873.887.7298.02200.88401.50
7683.717.6615.29294.26611.731222 .39点
10246.1612.7025.35660.951371 .87点2741 .38点
12809.2018.9737.891248 .98点2587 .995171 .69点
153612.8826.4952.932110点4366 .96点8726 .72点
179217.1635.2770.553297 .846815 .56点13619 .78点
204822.0345.3390.514862 .39点10040年3620064 .18
230427.5556.60113.066856 .06点14148 .38点28273 .26
256033.6769.14138.269332 .14点19246 .1638460 .11点
281640.4182.91165.7012342 .92点25440点50838点
307247.7497.92195.7915933点32838 .1965621点
登录icspec成功后,会自动跳转查看全文
博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。