0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

DS5250微控制器的模幂时序

星星科技指导员 作者:ADI 2023-01-11 16:02 次阅读

DS5250高速、安全微控制器具有MAA(模块化算术加速器)。本应用笔记解释了MAA的幂法配置,讨论了执行时间的权衡,并显示了典型的执行时间。

介绍

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

基本 MAA 操作

模幂是函数,(基数指数) 模量。例如,(29mod 10) 等于 (512 mod 10),等于 2。答案始终是介于 0 和模数 1 之间的数字。

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

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

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

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

典型的 MAA 时序

已收集的时间分为两组。第一组查看每个模数、基数和指数中的大数。第二组查看使用仅设置了 2 位的小指数(具体而言,值 10001h)时的时序。此数字有时用作 RSA 算法中的公共指数。在每个组中,有两半。前半部分已启用优化 (OCALC=1),后半部分禁用了优化。在每一半内,列出不同时钟源的典型定时值。这些计时均以毫秒 (ms) 为单位显示。

表中给出的典型时序值是使用每个寄存器中的随机值进行十种不同计算的平均值。模数是随机的,直到最高有效数字,始终为 1。通常,在每个参数中设置了大约一半的位。

每次计算的时序都是使用定时器0作为12分频时钟来测量的。当 16 位定时器 0 滚动更新时,将发生中断,并将 1 添加到六个外部计数字节中。在计算结束时,计时器停止,外部计数字节和 16 位计时器计数显示为 64 位数字,用于给出计算的长度。22.1MHz振荡器每个定时器的分辨率为543ns。分辨率在11.0592MHz时为1.085μs。图 2 包含用于对 MAA 计算进行计时的伪代码。

表 1.以毫秒为单位的模幂时间
(a、e 和 m 是随机值)

时钟源优化
优化关断
时钟源
Modulus Size Ring 22.1MHz Osc 11.1MHz Osc Ring 22.1MHz Osc 11.1MHz Osc
256 12.38 26.28 51.44 16.33 34.79 69.55
512 74.98 155.43 312.06 98.18 208.79 416.91
768 225.44 468.50 943.04 296.10 626.89 1,252.23
1024 507.39 1,050.53 2,079.01 664.20 1,397.87 2,793.32
1280 958.41 1,967.81 3,922.17 1,248.33 2,629.90 5,258.52
1536 1,611.08 3,321.94 6,623.29 2,112.68 4,421.99 8,833.31
1792 2,520.53 5,176.46 10,311.88 3,295.64 6,889.75 13,771.52
2048 3,729.76 7,573.35 15,199.66 4,863.27 10,143.31 20,249.51
2304 5,251.26 10,773.81 21,372.70 6,852.96 14,276.87 28,532.62
2560 7,159.86 14,557.57 29,079.79 9,328.25 19,392.38 38,761.51
2816 9,434.47 19,216.24 38,474.44 12,334.35 25,636.24 51,189.86
3072 12,152.62 24,807.55 49,631.36 15,930.13 33,070.91 66,018.62
3328 15,360.16 31,377.07 62,436.28 20,147.92 41,818.90 83,544.01
3584 19,138.10 38,988.81 78,039.69 25,073.03 51,951.35 103,848.07
3840 23,445.08 47,678.86 95,490.03 30,691.85 63,689.30 127,205.55
4096 28,327.98 57,649.65 115,295.25 37,128.98 76,965.83 153,828.69

表 2.以毫秒为单位的模幂时间

(e = 10001h;a 和 m 是随机值)

时钟源优化
优化关断
时钟源
Modulus Size Ring 22.1MHz Osc 11.1MHz Osc Ring 22.1MHz Osc 11.1MHz Osc
256 0.65 1.35 2.70 15.87 32.62 65.15
512 1.87 3.88 7.72 98.02 200.88 401.50
768 3.71 7.66 15.29 294.26 611.73 1,222.39
1024 6.16 12.70 25.35 660.95 1,371.87 2,741.38
1280 9.20 18.97 37.89 1,248.98 2,587.99 5,171.69
1536 12.88 26.49 52.93 2,110.76 4,366.96 8,726.72
1792 17.16 35.27 70.55 3,297.84 6,815.56 13,619.78
2048 22.03 45.33 90.51 4,862.39 10,040.36 20,064.18
2304 27.55 56.60 113.06 6,856.06 14,148.38 28,273.26
2560 33.67 69.14 138.26 9,332.14 19,246.16 38,460.11
2816 40.41 82.91 165.70 12,342.92 25,440.42 50,838.52
3072 47.74 97.92 195.79 15,933.52 32,838.19 65,621.43
3328 55.70 114.25 228.36 20,158.79 41,545.91 83,022.64
3584 64.28 131.83 263.28 25,083.32 51,670.49 103,254.99
3840 73.45 150.57 300.69 30,747.58 63,318.76 126,532.11
4096 83.27 170.62 340.98 37,183.65 76,597.28 153,067.16

poYBAGO-bS6APXugAAAK_r35dtw024.gif

图1.用于模幂的伪代码。

pYYBAGO-bS6AZLRBAAAaa37McuY953.gif

图2.用于对模块化幂计算进行计时的伪代码。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    7548

    浏览量

    151371
  • 加速器
    +关注

    关注

    2

    文章

    799

    浏览量

    37855
  • 定时器
    +关注

    关注

    23

    文章

    3247

    浏览量

    114754
收藏 人收藏

    评论

    相关推荐

    高速安全微控制器DS5250电子资料

    概述:DS5250是Maxim公司生产的一款安全微控制器,它是该系列中的一款高度安全、4时钟每机器周期、100%兼容8051指令集的微控制器DS5250设计用作加密引擎,应用于密码键
    发表于 04-21 06:26

    DS5250 pdf datasheet

    GENERAL DESCRIPTIONThe DS5250 is a highly secure, 4 clocks-per-machinecycle, 100
    发表于 07-25 01:23 89次下载

    DS5250中文资料 (高速安全微控制器)

    DS5250是Maxim安全微控制器系列中的一款高度安全、4时钟每机器周期、100%兼容8051指令集的微控制器DS5250设计用作加密引擎,应用于密码键盘、金融终端及其它数据安全性
    发表于 05-11 09:37 162次下载

    DS5250与磁卡读卡的连接

    摘要:本应用笔记阐述了在DS5250安全微控制器上轻松实现磁卡读卡和解码操作的设计。文章还演示了开发同时具有磁卡读卡功能和安全微控制器高级加密功能的实际应用。这一实例
    发表于 04-23 10:34 1863次阅读
    <b class='flag-5'>DS5250</b>与磁卡读卡<b class='flag-5'>器</b>的连接

    利用DS5250产生RSA密钥

    摘要:DS5250微控制器评估(EV)板是经过验证的用于评估这款高速微控制器的平台,本应用笔记介绍了如何设置评估板,并根据应用的位长需要产生RSA密钥的方法。采用Keil µVision2&re
    发表于 04-23 17:46 1238次阅读

    DS5250与磁条读卡接口

    本应用笔记解释了如何在DS5250安全微控制器上轻松实现磁条卡读取和解码。本文还演示了如何开发将磁条卡读取功能与安全微控制器的更高级别安全性和加密功能相结合的应用。本例使用DS5250
    的头像 发表于 01-11 09:49 1206次阅读
    <b class='flag-5'>DS5250</b>与磁条读卡<b class='flag-5'>器</b>接口

    利用DS5250产生RSA密钥

    DS5250微控制器评估(EV)板是经过验证的用于评估这款高速微控制器的平台,本应用笔记介绍了如何设置评估板,并根据应用的位长需要产生RSA密钥的方法。采用Keil µVision2®编译
    的头像 发表于 02-09 15:39 619次阅读
    利用<b class='flag-5'>DS5250</b>产生RSA密钥

    数据指针递减功能简化了重叠内存缓冲区的复制操作

    利用Maxim高速微控制器系列中的数据指针递减功能,可以简化存储管理。本应用笔记探讨了该系列微控制器DS80C400、DS5250
    的头像 发表于 02-20 09:27 477次阅读
    数据指针递减功能简化了重叠内存缓冲区的复制操作

    将电源管理与高速微控制器结合使用

    本应用笔记讨论了采用微控制器的电池备份系统的功耗。大多数Maxim高速微控制器,包括DS87C520、DS89C450、DS80C400和
    发表于 03-01 13:49 532次阅读
    将电源管理与高速<b class='flag-5'>微控制器</b>结合使用

    DS89C430/DS89C450超高速闪存微控制器存储接口时序

    达拉斯半导体DS89C430超高速微控制器是一款每机器周期1时钟的器件。DS89C430可直接替代旧的8051架构设计。但是,必须评估内存接口时序。本应用笔记介绍了使用
    的头像 发表于 03-01 14:31 1744次阅读
    <b class='flag-5'>DS</b>89C430/<b class='flag-5'>DS</b>89C450超高速闪存<b class='flag-5'>微控制器</b>存储<b class='flag-5'>器</b>接口<b class='flag-5'>时序</b>

    基于SRAM的微控制器优化了安全性

    SRAM的易失性,这些传感将擦除加密密钥作为响应。密码键盘等金融应用依靠自动程序和数据存储加密功能来保护数据。DS5250是一款高性能、安全的8051微控制器,利用安全SRAM的独
    的头像 发表于 03-01 16:16 891次阅读
    基于SRAM的<b class='flag-5'>微控制器</b>优化了安全性

    使用DS5250作为DS5002的直接升级

    DS5250高速安全微控制器采用80引脚四方扁平封装(QFP),是DS5002FP的引脚兼容、高性能升级版。从DS5002FP升级到DS5250
    的头像 发表于 03-01 16:29 1354次阅读
    使用<b class='flag-5'>DS5250</b>作为<b class='flag-5'>DS</b>5002的直接升级

    使用Keil C编译处理DS5250

    本应用笔记介绍如何使用Keil μVision2工具套件为DS5240或DS5250高速安全微控制器创建和编译C应用。还描述了使用 ROM 引导加载程序和微控制器工具包将编译的应用程序
    的头像 发表于 03-01 17:10 1055次阅读
    使用Keil C编译<b class='flag-5'>器</b>处理<b class='flag-5'>DS5250</b>

    通过将DS5250用作安全协处理来提高系统安全性

    本应用笔记介绍如何将Maxim DS5250高速安全微处理器用作安全协处理,以保护密码、PIN、加密密钥和其他关键数据。DS5250采用三路DES总线加密、精心设计的篡改传感和电池
    的头像 发表于 03-02 13:57 855次阅读
    通过将<b class='flag-5'>DS5250</b>用作安全协处理<b class='flag-5'>器</b>来提高系统安全性

    将Keil μVision调试DS52x0安全微控制器配合使用

    本应用笔记介绍如何使用Keil μVision2工具套件调试DS5250高速安全微控制器的应用。该过程包括将调试监视应用程序加载到DS5250中,
    的头像 发表于 06-13 17:22 992次阅读
    将Keil μVision调试<b class='flag-5'>器</b>与<b class='flag-5'>DS</b>52x0安全<b class='flag-5'>微控制器</b>配合使用