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 |
圖1.用于模冪的偽代碼。
圖2.用于對模塊化冪計算進行計時的偽代碼。
審核編輯:郭婷
-
微控制器
+關注
關注
48文章
7496瀏覽量
151087 -
加速器
+關注
關注
2文章
795瀏覽量
37773 -
定時器
+關注
關注
23文章
3241瀏覽量
114520
發布評論請先 登錄
相關推薦
評論