<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    C.2 SM2橢圓曲線消息加解密

    C.2 SM2橢圓曲線消息加解密

    <!-- /* Font Definitions */ @font-face {font-family:宋體; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 680460288 22 0 262145 0;} @font-face {font-family:黑體; panose-1:2 1 6 9 6 1 1 1 1 1; mso-font-alt:SimHei; mso-font-charset:134; mso-generic-font-family:modern; mso-font-pitch:fixed; mso-font-signature:-2147482945 953122042 22 0 262145 0;} @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:0; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:-536869121 1107305727 33554432 0 415 0;} @font-face {font-family:NimbusMonL-Regu; panose-1:0 0 0 0 0 0 0 0 0 0; mso-font-alt:"Times New Roman"; mso-font-charset:0; mso-generic-font-family:auto; mso-font-format:other; mso-font-pitch:auto; mso-font-signature:3 0 0 0 1 0;} @font-face {font-family:"\@宋體"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 680460288 22 0 262145 0;} @font-face {font-family:"\@黑體"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:modern; mso-font-pitch:fixed; mso-font-signature:-2147482945 953122042 22 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin:0cm; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:12.0pt; font-family:"Times New Roman",serif; mso-fareast-font-family:宋體; mso-font-kerning:1.0pt;} p.MsoPlainText, li.MsoPlainText, div.MsoPlainText {mso-style-unhide:no; mso-style-link:"純文本 Char"; margin:0cm; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; font-family:宋體; mso-hansi-font-family:"Courier New"; mso-bidi-font-family:"Courier New"; mso-font-kerning:1.0pt;} p.a, li.a, div.a {mso-style-name:; mso-style-unhide:no; mso-style-parent:""; mso-style-link:"段 Char"; margin:0cm; text-align:justify; text-justify:inter-ideograph; text-indent:21.0pt; mso-char-indent-count:2.0; mso-pagination:widow-orphan; tab-stops:center 210.05pt right dotted 464.9pt; text-autospace:none; font-size:10.5pt; mso-bidi-font-size:10.0pt; font-family:宋體; mso-hansi-font-family:"Times New Roman"; mso-bidi-font-family:"Times New Roman"; mso-no-proof:yes;} span.Char {mso-style-name:"段 Char"; mso-style-unhide:no; mso-style-locked:yes; mso-style-link:; mso-ansi-font-size:10.5pt; font-family:宋體; mso-ascii-font-family:宋體; mso-no-proof:yes;} span.a0 {mso-style-name:"純文本 字符"; mso-style-noshow:yes; mso-style-unhide:no; mso-ansi-font-size:10.5pt; mso-bidi-font-size:12.0pt; font-family:等線; mso-ascii-font-family:等線; mso-ascii-theme-font:minor-fareast; mso-fareast-font-family:等線; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:"Courier New"; mso-bidi-font-family:"Courier New"; mso-font-kerning:1.0pt;} span.Char0 {mso-style-name:"純文本 Char"; mso-style-unhide:no; mso-style-locked:yes; mso-style-link:純文本; mso-ansi-font-size:10.5pt; mso-bidi-font-size:10.5pt; font-family:宋體; mso-ascii-font-family:宋體; mso-hansi-font-family:"Courier New"; mso-bidi-font-family:"Courier New"; mso-font-kerning:1.0pt;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; font-size:10.0pt; mso-ansi-font-size:10.0pt; mso-bidi-font-size:10.0pt; mso-ascii-font-family:"Times New Roman"; mso-fareast-font-family:宋體; mso-hansi-font-family:"Times New Roman"; mso-font-kerning:0pt;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page WordSection1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:36.0pt; mso-footer-margin:36.0pt; mso-paper-source:0;} div.WordSection1 {page:WordSection1;} -->   

    橢圓曲線方程為:y^2 ^= x^3^ + ax + b

    示例:*Fp *-256

    素數p:FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFF

    系數a:FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFC

    系數b:28E9FA9E 9D9F5E34 4D5A9E4B CF6509A7 F39789F5 15AB8F92 DDBCBD41 4D940E93

    基點G = (xG *, *yG),其階記為n

    坐標xG:32C4AE2C 1F198119 5F990446 6A39C994 8FE30BBF F2660BE1 715A4589 334C74C7

    坐標yG: BC3736A2 F4F6779C 59BDCEE3 6B692153 D0A9877C C62A4740 02DF32E5 2139F0A0

    n: FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF 7203DF6B 21C6052B 53BBF409 39D54123

    待加密的消息M:encryption standard

    消息M的16進制表示:656E63 72797074 696F6E20 7374616E 64617264

    私鑰dB:3945208F 7B2144B1 3F36E38A C6D39F95 88939369 2860B51A 42FB81EF 4DF7C5B8

    公鑰PB=(xB, yB)為:

    坐標xB:09F9DF31 1E5421A1 50DD7D16 1E4BC5C6 72179FAD 1833FC07 6BB08FF3 56F35020

    坐標yB:CCEA490C E26775A5 2DC6EA71 8CC1AA60 0AED05FB F35E084A 6632F607 2DA9AD13

    加密各步驟中的有關值:

    產生隨機數k:59276E27 D506861A 16680F3A D9C02DCC EF3CC1FA 3CDBE4CE 6D54B80D EAC1BC21

    計算橢圓曲線點C1=[k]G=(x1, y1):

    坐標x1:04EBFC71 8E8D1798 62043226 8E77FEB6 415E2EDE 0E073C0F 4F640ECD 2E149A73

    坐標y1:E858F9D8 1E5430A5 7B36DAAB 8F950A3C 64E6EE6A 63094D99 283AFF76 7E124DF0

    在此C1選用未壓縮的表示形式,點轉換成字節串的形式為PC||x1||y1,其中PC為單一字節且PC=04,仍記為C1

    計算橢圓曲線點[k]PB=(x2,y2):

    坐標x2:335E18D7 51E51F04 0E27D468 138B7AB1 DC86AD7F 981D7D41 6222FD6A B3ED230D

    坐標y2:AB743EBC FB22D64F 7B6AB791 F70658F2 5B48FA93 E54064FD BFBED3F0 BD847AC9

    消息M的比特長度klen=152

    計算t=KDF(x2||y2klen):44E60F DBF0BAE8 14376653 74BEF267 49046C9E

    計算C~2 ~=M ⊕*t *:21886C A989CA9C 7D580873 07CA9309 2D651EFA

    計算C3 ~=Hash(x2||M||y2~):

    x2||M|| y2

    335E18D7 51E51F04 0E27D468 138B7AB1 DC86AD7F 981D7D41 6222FD6A B3ED230D

    656E6372 79707469 6F6E2073 74616E64 617264AB 743EBCFB 22D64F7B 6AB791F7

    0658F25B 48FA93E 54064FDB FBED3F0B D847AC9

    C3:59983C18 F809E262 923C53AE C295D303 83B54E39 D609D160 AFCB1908 D0BD8766

    輸出密文M=C1||C3||C2

    04 04EBFC71 8E8D1798 62043226 8E77FEB6 415E2EDE 0E073C0F 4F640ECD 2E149A73

    E858F9D8 1E5430A5 7B36DAAB 8F950A3C 64E6EE6A 63094D99 283AFF76 7E124DF0

    59983C18 F809E262 923C53AE C295D303 83B54E39 D609D160 AFCB1908 D0BD8766

    21886CA9 89CA9C7D 58087307 CA93092D 651EFA

    解密各步驟中的有關值**:**

    計算橢圓曲線點[dB]C1=(x2 ,y2):

    坐標x2:335E18D7 51E51F040 E27D4681 38B7AB1D C86AD7F9 81D7D416 222FD6AB 3ED230D

    坐標y2:AB743EBC FB22D64F 7B6AB791 F70658F2 5B48FA93 E54064FD BFBED3F0 BD847AC9

    計算t=KDF(x2||y2klen):44E60F DBF0BAE8 14376653 74BEF267 49046C9E

    計算M’=C2⊕*t *:656E63 72797074 696F6E20 7374616E 64617264

    計算u= Hash(x2||M’||y2 ):

    59983C18 F809E262 923C53AE C295D303 83B54E39 D609D160 AFCB1908 D0BD8766

    明文M’: 656E63 72797074 696F6E20 7374616E 64617264,即為:encryption standard

    本文章首發在 網安wangan.com 網站上。

    上一篇 下一篇
    討論數量: 0
    只看當前版本


    暫無話題~
    亚洲 欧美 自拍 唯美 另类