B.2 SM2橢圓曲線密鑰交換協議
B.2 SM2橢圓曲線密鑰交換協議
橢圓曲線方程為:y2 = x3 + ax + b
示例1: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
余因子h:1
基點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
用戶A的私鑰dA:81EB26E9 41BB5AF1 6DF11649 5F906952 72AE2CD6 3D6C4AE1 678418BE 48230029
用戶A的公鑰PA = (xA ,yA):
坐標xA:160E1289 7DF4EDB6 1DD812FE B96748FB D3CCF4FF E26AA6F6 DB9540AF 49C94232
坐標yA:4A7DAD08 BB9A4595 31694BEB 20AA489D 6649975E 1BFCF8C4 741B78B4 B223007F
用戶B的私鑰dB:78512991 7D45A9EA 5437A593 56B82338 EAADDA6C EB199088 F14AE10D EFA229B5
用戶B的公鑰PB = (xB ,yB):
坐標xB:6AE848C5 7C53C7B1 B5FA99EB 2286AF07 8BA64C64 591B8B56 6F7357D5 76F16DFB
坐標yB:EE489D77 1621A27B 36C5C799 2062E9CD 09A92643 86F3FBEA 54DFF693 05621C4D
雜湊值ZA= H256(ENTLA||IDA||a||b||xG||yG||xA||yA)。
ZA:3B85A571 79E11E7E 513AA622 991F2CA7 4D1807A0 BD4D4B38 F90987A1 7AC245B1
雜湊值ZB= H256(ENTLB||IDB||a||b||xG||yG||xB||yB)。
ZB:79C988D6 3229D97E F19FE02C A1056E01 E6A7411E D24694AA 8F834F4A 4AB022F7
密鑰交換A1-A3步驟中的有關值:
產生隨機數rA:D4DE1547 4DB74D06 491C440D 305E0124 00990F3E 390C7E87 153C12DB 2EA60BB3
計算橢圓曲線點RA = [rA]G = (x1, y1):
坐標x1:64CED1BD BC99D590 049B434D 0FD73428 CF608A5D B8FE5CE0 7F150269 40BAE40E
坐標y1:376629C7 AB21E7DB 26092249 9DDB118F 07CE8EAA E3E7720A FEF6A5CC 062070C0
密鑰交換B1-B9步驟中的有關值:
產生隨機數rB:7E071248 14B30948 9125EAED 10111316 4EBF0F34 58C5BD88 335C1F9D 596243D6
計算橢圓曲線點RB = [rB]G = (x2, y2):
坐標x2:ACC27688 A6F7B706 098BC91F F3AD1BFF 7DC2802C DB14CCCC DB0A9047 1F9BD707
坐標y2:2FEDAC04 94B2FFC4 D6853876 C79B8F30 1C6573AD 0AA50F39 FC87181E 1A1B46FE
取 :FDC2802C DB14CCCC DB0A9047 1F9BD707
計算 :
D0429637 F5A6D5D1 E6C54523 5169DF85 23116306 0A654ECB A0F657FD 629E8DD9
取 :CF608A5D B8FE5CE0 7F150269 40BAE40E
計算橢圓曲線點[ ]RA = (xA0 , yA0):
坐標xA0:8D62DAF7 DC084E4A 85D32214 68605854 5837BDC2 2D6E9AFE 015828A8 E1094EC2
坐標yA0:564DC0FA 639B2967 E65F3448 CA06627E F3FE67C2 1561C5BE BB399552 29A84760
計算橢圓曲線點PA+[ ]RA = (xA1, yA1):
坐標xA1:85C40F88 CECA80E3 8172093F C4BA4581 88E7C58A F81CF2AF 454EC431 43E55615
坐標yA1:8C152CB0 A131C958 C279DEBE CC6AB739 6A7BC875 FC801BB2 94C284F4 7F65F6ED
計算 :
坐標xV:C558B44B EE5301D9 F52B44D9 39BB5958 4D75B903 4DD6A9FC 82687210 9A65739F
坐標yV:3252B35B 191D8AE0 1CD122C0 25204334 C5EACF68 A0CB4854 C6A7D367 ECAD4DE7
計算KB = KDF(xV||yV||ZA||ZB, klen):
xV||yV||ZA||ZB:
C558B44B EE5301D9 F52B44D9 39BB5958 4D75B903 4DD6A9FC 82687210 9A65739F 3252B35B
191D8AE0 1CD122C0 25204334 C5EACF68 A0CB4854 C6A7D367 ECAD4DE7 3B85A571 79E11E7E
513AA622 991F2CA7 4D1807A0 BD4D4B38 F90987A1 7AC245B1 79C988D6 3229D97E F19FE02C
A1056E01 E6A7411E D24694AA 8F834F4A 4AB022F7
klen = 128
共享密鑰KB:6C893473 54DE2484 C60B4AB1 FDE4C6E5
計算選項SB = Hash(0x02||yV||Hash(xV||ZA||ZB||x1||y1||x2||y2)):
xV||ZA||ZB||x1||y1||x2||y2:
C558B44B EE5301D9 F52B44D9 39BB5958 4D75B903 4DD6A9FC 82687210 9A65739F 3B85A571
79E11E7E 513AA622 991F2CA7 4D1807A0 BD4D4B38 F90987A1 7AC245B1 79C988D6 3229D97E
F19FE02C A1056E01 E6A7411E D24694AA 8F834F4A 4AB022F7 64CED1BD BC99D590 049B434D
0FD73428 CF608A5D B8FE5CE0 7F150269 40BAE40E 376629C7 AB21E7DB 26092249 9DDB118F
07CE8EAA E3E7720A FEF6A5CC 062070C0 ACC27688 A6F7B706 098BC91F F3AD1BFF 7DC2802C
DB14CCCC DB0A9047 1F9BD707 2FEDAC04 94B2FFC4 D6853876 C79B8F30 1C6573AD 0AA50F39
FC87181E 1A1B46FE
Hash(xV||ZA||ZB||x1||y1||x2||y2):
90E2A628 E4F57ABD 78339EA3 3F967D11 A154117B EA442F7B 627D4F4D D047B7F6
0x02||yV||Hash(xV||ZA||ZB||x1||y1||x2||y2):
02 3252B35B 191D8AE0 1CD122C0 25204334 C5EACF68 A0CB4854 C6A7D367 ECAD4DE7
90E2A628 E4F57ABD 78339EA3 3F967D11 A154117B EA442F7B 627D4F4D D047B7F6
選項SB:D3A0FE15 DEE185CE AE907A6B 595CC32A 266ED7B3 367E9983 A896DC32 FA20F8EB
密鑰交換A4-A10步驟中的有關值:
取 :CF608A5D B8FE5CE0 7F150269 40BAE40E
計算 :3D68C0C0 6DC40F17 B9DDFE00 93D3C0E4 969ED112 4A187FA8
AD02F81E 3C11CCE6
取 : FDC2802C DB14CCCC DB0A9047 1F9BD707
計算橢圓曲線點[ ]RB = (xB0 , yB0):
坐標xB0:DA68EF84 FE616D92 438BBE69 BCC52DB9 CE5CBEA9 93944CBC 331BA26D 6082E912
坐標yB0:4831E862 898B4356 32D8FFA0 1869CD65 645822BD D3B4E9E0 46BCAB85 6F02F110
計算橢圓曲線點PB+[ ]RB = (xB1, yB1):
坐標xB1:FE7C111C C3E628E3 FE709DF2 E6E331CD C2A3A30E EA0CDC3C D10C0759 EAB15199
坐標yB1:12D6F496 361948C9 EC67E603 DF93C008 86EFAEEA C591C2D5 D16B67F2 FE1AD77E
計算 :
坐標xU:C558B44B EE5301D9 F52B44D9 39BB5958 4D75B903 4DD6A9FC 82687210 9A65739F
坐標yU:3252B35B 191D8AE0 1CD122C0 25204334 C5EACF68 A0CB4854 C6A7D367 ECAD4DE7
計算KA = KDF(xU||yU||ZA||ZB, klen):
xU||yU||ZA||ZB:
C558B44B EE5301D9 F52B44D9 39BB5958 4D75B903 4DD6A9FC 82687210 9A65739F 3252B35B
191D8AE0 1CD122C0 25204334 C5EACF68 A0CB4854 C6A7D367 ECAD4DE7 3B85A571 79E11E7E
513AA622 991F2CA7 4D1807A0 BD4D4B38 F90987A1 7AC245B1 79C988D6 3229D97E F19FE02C
A1056E01 E6A7411E D24694AA 8F834F4A 4AB022F7
klen = 128
共享密鑰KA:6C893473 54DE2484 C60B4AB1 FDE4C6E5
計算選項S1 = Hash(0x02||yU||Hash(xU||ZA||ZB||x1||y1||x2||y2)):
xU||ZA||ZB||x1||y1||x2||y2:
C558B44B EE5301D9 F52B44D9 39BB5958 4D75B903 4DD6A9FC 82687210 9A65739F 3B85A571
79E11E7E 513AA622 991F2CA7 4D1807A0 BD4D4B38 F90987A1 7AC245B1 79C988D6 3229D97E
F19FE02C A1056E01 E6A7411E D24694AA 8F834F4A 4AB022F7 64CED1BD BC99D590 049B434D
0FD73428 CF608A5D B8FE5CE0 7F150269 40BAE40E 376629C7 AB21E7DB 26092249 9DDB118F
07CE8EAA E3E7720A FEF6A5CC 062070C0 ACC27688 A6F7B706 098BC91F F3AD1BFF 7DC2802C
DB14CCCC DB0A9047 1F9BD707 2FEDAC04 94B2FFC4 D6853876 C79B8F30 1C6573AD 0AA50F39
FC87181E 1A1B46FE
Hash(xU||ZA||ZB||x1||y1||x2||y2):90E2A628 E4F57ABD 78339EA3 3F967D11 A154117B EA442F7B 627D4F4D D047B7F6
0x02||yU||Hash(xU||ZA||ZB||x1||y1||x2||y2):
02 3252B35B 191D8AE0 1CD122C0 25204334 C5EACF68 A0CB4854 C6A7D367 ECAD4DE7
90E2A628 E4F57ABD 78339EA3 3F967D11 A154117B EA442F7B 627D4F4D D047B7F6
選項S1:D3A0FE15 DEE185CE AE907A6B 595CC32A 266ED7B3 367E9983 A896DC32 FA20F8EB
計算選項SA = Hash(0x03||yU||Hash(xU||ZA||ZB||x1||y1||x2||y2)):
xU||ZA||ZB||x1||y1||x2||y2:
C558B44B EE5301D9 F52B44D9 39BB5958 4D75B903 4DD6A9FC 82687210 9A65739F 3B85A571
79E11E7E 513AA622 991F2CA7 4D1807A0 BD4D4B38 F90987A1 7AC245B1 79C988D6 3229D97E
F19FE02C A1056E01 E6A7411E D24694AA 8F834F4A 4AB022F7 64CED1BD BC99D590 049B434D
0FD73428 CF608A5D B8FE5CE0 7F150269 40BAE40E 376629C7 AB21E7DB 26092249 9DDB118F
07CE8EAA E3E7720A FEF6A5CC 062070C0 ACC27688 A6F7B706 098BC91F F3AD1BFF 7DC2802C
DB14CCCC DB0A9047 1F9BD707 2FEDAC04 94B2FFC4 D6853876 C79B8F30 1C6573AD 0AA50F39
FC87181E 1A1B46FE
Hash(xU||ZA||ZB||x1||y1||x2||y2):90E2A628 E4F57ABD 78339EA3 3F967D11 A154117B EA442F7B
627D4F4D D047B7F6
0x03||yU||Hash(xU||ZA||ZB||x1||y1||x2||y2):
03 3252B35B 191D8AE0 1CD122C0 25204334 C5EACF68 A0CB4854 C6A7D367 ECAD4DE7
選項SA:18C7894B 3816DF16 CF07B05C 5EC0BEF5 D655D58F 779CC1B4 00A4F388 4644DB88
密鑰交換B10步驟中的有關值:
計算選項S2 = Hash(0x03||yV||Hash(xV||ZA||ZB||x1||y1||x2||y2)):
xV||ZA||ZB||x1||y1||x2||y2:
C558B44B EE5301D9 F52B44D9 39BB5958 4D75B903 4DD6A9FC 82687210 9A65739F 3B85A571
79E11E7E 513AA622 991F2CA7 4D1807A0 BD4D4B38 F90987A1 7AC245B1 79C988D6 3229D97E
F19FE02C A1056E01 E6A7411E D24694AA 8F834F4A 4AB022F7 64CED1BD BC99D590 049B434D
0FD73428 CF608A5D B8FE5CE0 7F150269 40BAE40E 376629C7 AB21E7DB 26092249 9DDB118F
07CE8EAA E3E7720A FEF6A5CC 062070C0 ACC27688 A6F7B706 098BC91F F3AD1BFF 7DC2802C
DB14CCCC DB0A9047 1F9BD707 2FEDAC04 94B2FFC4 D6853876 C79B8F30 1C6573AD 0AA50F39
FC87181E 1A1B46FE
Hash(xV||ZA||ZB||x1||y1||x2||y2):90E2A628 E4F57ABD 78339EA3 3F967D11 A154117B EA442F7B
627D4F4D D047B7F6
0x03||yV||Hash(xV||ZA||ZB||x1||y1||x2||y2):
03 3252B35B 191D8AE0 1CD122C0 25204334 C5EACF68 A0CB4854 C6A7D367 ECAD4DE7
90E2A628 E4F57ABD 78339EA3 3F967D11 A154117B EA442F7B 627D4F4D D047B7F6
GB/T 329185-2017 信息安全技術 SM2橢圓曲線公鑰密碼算法 第5部分:參數定義
推薦文章: