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

    文章

    6813

    浏览量

    147669
  • 加速器
    +关注

    关注

    2

    文章

    746

    浏览量

    36600
  • 定时器
    +关注

    关注

    23

    文章

    3148

    浏览量

    112060
收藏 人收藏

    评论

    相关推荐

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

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

    NXP的哪个微控制器与SPC560P50L5微控制器一样呢?

    NXP 的哪个微控制器与(ST)的 SPC560P50L5 微控制器一样?
    发表于 12-16 07:52

    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 1759次阅读
    <b class='flag-5'>DS5250</b>与磁卡读卡器的连接

    电源管理与使用的高速微控制器-Using Power Man

    in this application note. Most Dallas Semiconductor high-speed microcontrollers, including the DS87C520, DS89C450, DS
    发表于 04-23 15:36 2338次阅读
    电源管理与使用的高速<b class='flag-5'>微控制器</b>-Using Power Man

    利用DS5250产生RSA密钥

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

    DS5250与磁条读卡器接口

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

    利用DS5250产生RSA密钥

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

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

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

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

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

    使用DS5250作为DS5002的直接升级

    DS5250高速安全微控制器采用80引脚四方扁平封装(QFP),是DS5002FP的引脚兼容、高性能升级版。从DS5002FP升级到DS5250
    的头像 发表于 03-01 16:29 920次阅读
    使用<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 742次阅读
    使用Keil C编译器处理<b class='flag-5'>DS5250</b>

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

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

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

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