MAXQ30 点击型号查看芯片规格书
模幂运算在许多加密算法中都有应用,特别是RSA公钥算法和椭圆曲线数字签名算法(ECDSA)。它也用于发现素数和求模逆。本应用笔记描述了什么是模块化幂运算,提供了MAA的概述,并列出了执行各种大小的幂运算的典型时间。
MAXQ30架构使用精简指令集计算机(RISC),其中所有指令长度为16位,并在单个周期内执行。32位算术和逻辑单元(ALU)在连接到32位总线时处理32位寄存器和值。
模幂由方程描述:
结果=基数(指数)模模。
例如:9 = 7(2)mod 10。
在这个例子中,9是结果,7是底数,2是指数,10是模数。在这种情况下,由于模10在二进制中是4位长,因此大小为4。
MAA执行模加法、减法、乘法、平方、平方后的乘法和模幂运算。所有这些操作都可以在长度为2048位的模数大小下完成。
MAA从加密时钟操作。这个时钟可以来自系统时钟,由外部晶体频率决定,也可以来自加密环。DeepCover 安全微控制器(MAXQ1050和MAXQ1850)的内部加密环运行范围为55MHz至75MHz,典型速度为65MHz。DeepCover安全微控制器(MAXQ1103)的内部加密环可以以45MHz到65MHz的速度运行,典型速度为55MHz。
MAXQ1050和MAXQ1850上的MAA是相同的,因此从加密环运行时的计时是相同的。这两个部件上的MAA使用32 × 16位乘法器和32位数据总线。MAA在MAXQ1103上的实现具有64 × 32位乘法器和64位数据总线。MAXQ1103上的MAA执行速度更快,但代价是使用更多的硅面积。
功率分析攻击,如简单功率分析(SPA)和差分功率分析(DPA),可能能够在启用优化的情况下提取指数信息。建议总是使用私钥进行非优化计算。
表1到表3中显示的数据是典型的运行时。每个条目都是使用基数、模数和指数的均匀随机数进行400次计算的平均时间,在模数中设置最有效位。在公钥计算的情况下,使用十六进制值0x10001而不是随机数。这是RSA中公共指数的典型值。计算的时间是从操作开始到操作完成。不包括将值加载到内存中进行计算的时间。
利用中国剩余定理(CRT)可以显著提高模指数运算的速度。使用CRT需要两个较小的模幂运算,而不是一个较大的。模指数计算不是对大模量进行模指数计算,而是对模量的两个因子进行模指数计算。例如,在RSA中,模是两个素数p和q的乘积。如果p和q都是1024位,使用MAXQ1103对它们进行两次模指数运算将花费大约165ms。如果没有CRT,则需要2048位的模指数运算,并且将花费大约557ms。CRT算法需要额外的计算,这将增加总时间,但预计将比两倍快。
表1左侧的数据是最有趣的。这些是在非优化模式下从加密环运行时执行模幂运算的典型耗时。使用优化和公钥的典型运行时间在右边的两列中。
从加密环运行MAA(以毫秒为单位) | ||||||||
私钥 | 公钥= 0x10001 | |||||||
可行 | 优化 | 可行 | 优化 | |||||
大小 | MAXQ1050/MAXQ1850 65MHz | MAXQ1103在55MHz | MAXQ1050/MAXQ1850 65MHz | MAXQ1103在55MHz | MAXQ1050/MAXQ1850 65MHz | MAXQ1103在55MHz | MAXQ1050/MAXQ1850 65MHz | MAXQ1103在55MHz |
160 | 1.89 | 1.07 | 1.42 | 0.809 | 0.21 | 0.123 | 0.116 | 0.0723 |
192 | 2.91 | 1.36 | 2.19 | 1.02 | 0.26 | 0.130 | 0.147 | 0.0768 |
224 | 4.22 | 2.16 | 3.18 | 1.62 | 0.32 | 0.173 | 0.182 | 0.101 |
256 | 5.87 | 2.59 | 4.41 | 1.95 | 0.39 | 0.183 | 0.220 | 0.107 |
384 | 16.5 | 6.72 | 12.4 | 5.05 | 0.73 | 0.310 | 0.404 | 0.178 |
512 | 35.2 | 13.6 | 26.4 | 10.2 | 1.16 | 0.466 | 0.642 | 0.266 |
640 | 64.4 | 24.0 | 48.3 | 18.0 | 1.69 | 0.650 | 0.933 | 0.368 |
768 | 106.0 | 38.5 | 79.7 | 28.9 | 2.32 | 0.864 | 1.28 | 0.487 |
1024 | 237.0 | 82.5 | 178.0 | 61.9 | 3.86 | 1.38 | 2.12 | 0.772 |
1536 | 750.0 | 249.0 | 563.0 | 187.0 | 8.12 | 2.75 | 4.46 | 1.53 |
2048 | 1720 .0 | 557.0 | 1290 .0 | 418.0 | 13.9 | 4.58 | 7.64 | 2.54 |
表2列出了在优化和非优化模式下对私钥数据执行模幂运算的典型时间。表3列出了这三个部分在优化和非优化模式下使用公钥执行模求幂的典型时间。
MAA从系统时钟开始运行(以毫秒为单位) | ||||||
私钥/可行 | 公钥/优化 | |||||
大小 | MAXQ1050在25MHz | MAXQ1850在16MHz | MAXQ1103在25MHz | MAXQ1050在25MHz | MAXQ1850在16MHz | MAXQ1103在25MHz |
160 | 4.93 | 7.68 | 2.37 | 3.71 | 5.78 | 1.79 |
192 | 7.58 | 11.8 | 3.00 | 5.70 | 8.88 | 2.26 |
224 | 11.0 | 17.2 | 4.75 | 8.27 | 12.9 | 3.58 |
256 | 15.3 | 23.9 | 5.71 | 11.5 | 17.9 | 4.29 |
384 | 42.9 | 67.0 | 14.8 | 32.2 | 50.3 | 11.1 |
512 | 91.7 | 143.0 | 30.0 | 68.9 | 107.0 | 22.5 |
640 | 167.0 | 262.0 | 52.9 | 126.0 | 196.0 | 39.6 |
768 | 276.0 | 432.0 | 84.8 | 208.0 | 324.0 | 63.6 |
1024 | 617.0 | 964.0 | 182.0 | 463.0 | 722.0 | 136.0 |
1536 | 1950 .0 | 3050 .0 | 549.0 | 1460 .0 | 2290 .0 | 412.0 |
2048 | 4480 .0 | 6990 .0 | 1230 .0 | 3360 .0 | 5250 .0 | 921.0 |
<td style="box-sizing:border-box;margin:0px;padding:10px 7px;border-top-width:2px;border-top-color:rgb(255,255,255);border-right-width:2px;border-right-color:rgb(255,255,255);color:rgb(255,255,255);font-weight:bold;text-align:center;vertical-ali
MAA从系统时钟开始运行(以毫秒为单位) | ||||||
公钥= 0x10001/未优化 |
登录icspec成功后,会自动跳转查看全文
博客评论
还没有人评论,赶紧抢个沙发~
发表评论
|