那些年我们踩过的坑——0010/35275勘误

admin 2026-06-04 04:11:23 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文对GM/T0010-2023SM2密码算法标准中的数据类型规范进行勘误,指出签名数据、数字信封、签名及数字信封、加密数据、密钥协商等核心数据结构的编码错误,并提供修正后的完整示例代码。文档重点强调了标准实施过程中容易出现的编码格式问题,为密码算法开发人员提供了重要的技术参考和错误规避指导。 综合评分: 78 文章分类: 技术标准,安全开发,密码学,应用安全


cover_image

那些年我们踩过的坑——0010/35275 勘误

原创

利刃信安 利刃信安

利刃信安

2026年6月2日 12:12 北京

在小说阅读器读本章

去阅读

那些年我们踩过的坑——0010/35275 勘误


一、GM/T 0010-2023 SM2密码算法加密签名消息语法规范

本标准中数据类型定义和后面附录是一致的,不需要勘误。

签名数据类型 signedData

3082043B060A2A811CCF550601040202A082042B30820427020101310F300D06092A811CCF550183110105003028060A2A811CCF550601040201A01A0418716577727177657231323334313233717765727161736466A08202FC308202F83082029CA0030201020212210570340F6D3245178F0C10E56191886DBF300C06082A811CCF5501837505003062310B300906035504060C02434E310D300B060355040A0C0454657374311B3019060355040B0C123132313430303030343035373033333435513127302506035504030C1E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E301E170D3139303332373035353234355A170D3139313031333035353234355A3034310B300906035504060C02434E310A3008060355040A0C014F310C300A060355040B0C03303031310B300906035504030C0231323059301306072A8648CE3D020106082A811CCF5501822D034200040777FC9242CF154606D37E1D3054CD106E33F7B43A589FB90C339FC0CEFE1EFA6ACC87539BC9A13D7C0F4363C080D9E35A119EA71348A1D1A2F286A6FA8CC1A1A382015C30820158300B0603551D0F0404030205E030090603551D130402300030130603551D25040C300A06082B060105050703033081910603551D1F048189308186303DA03BA0398637687474703A2F2F3132372E302E302E313A373037302F63726C2F55747275737453656343412F55747275737453656343415F302E63726C3045A043A041863F687474703A2F2F3132372E302E302E313A373037302F63726C2F55747275737453656343412F696E632F55747275737453656343415F696E635F302E63726C301D0603551D0E041604140A2EABD92DECA9B32CE403380763D24E58E24B63301F0603551D23041830168014CC6724421AC3F8AD27ACD2F2E584811FE9C52FAE30550603551D20044E304C304A060A2A811C86EF3206040101303C303A06082B06010505070201162E687474703A2F2F3132372E302E302E313A373037302F6370732F55747275737453656343412F6370732E68746D6C300C06082A811CCF550183750500034800304502210087AB1DE65106E98EA4EED81B90C20E87101539DCB7B44939D279A279F4A8F591022074137297ABA4CC38020652971662B2216B4A81D96E8AD0EAD972F17C910C52CF3181E63081E302010130783062310B300906035504060C02434E310D300B060355040A0C0454657374311B3019060355040B0C123132313430303030343035373033333435513127302506035504030C1E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E0212210570340F6D3245178F0C10E56191886DBF300D06092A811CCF55018311010500300D06092A811CCF5501822D010500044630440220711AB6795FE797A8C6668113BC551078944A7EB90E54EB6DF451740A87A6A130022078445EFB53B6ABD7CD27BA61EBC1F546D61CB9489C0C8FE2ADB7D74E18E55A3A

数字信封数据类型 envelopedData

3082013D060A2A811CCF550601040203A082012D308201290201013181E53081E202010130523044310B300906035504061302434E310D300B060355040A0C0454657374310D300B060355040B0C04546573743117301506035504030C0E4265696A696E6720534D32204341020A1A10000000000005B32B300D06092A811CCF5501822D030500047A3078022037901CFEB5A4161D2C347B01A8FD9949BACA2E465C34DD3759206B790E093D4F02206F2FCDB0B58008E417A062E8081EA1462D6957E754DD98697E939285F5F0057F04207BAFA05277947F6E71CD76F81DB3E3CA20F90536F543B7F9074D7879C825C23D0410CB549EC613C7B7B31D1BED9EBC9A119D303C060A2A811CCF550601040201301C06082A811CCF5501680204105B10A3840015BD11F62EE37F5C79B41B80109D13CEE501B79087894B640BC6F9C03F

签名及数字信封数据类型 signedAndEnvelopedData

3082054D060A2A811CCF550601040204A082053D308205390201013181D73081D402010030433037310B300906035504061302434E3110300E060355040B13074245494A494E473116301406035504030C0D544553545F534D325F524F4F54020810300370156733CF300D06092A811CCF5501822D030500047B307902206B0D061554A74FAD4B0A8A963356B0ADF698E77A5BCCF98EB2347316591B830B022100F422FB719633F5185D8EE9F26B8C1E935F1B9AB301C9F51C7DF357E849DB52DC04201A9973D965C90F63BF5DBA3EF174CDC217C895720CAD5B4FE18AC62EA150ADF90410E4288625BA1173511FFE1ABD08C0CCB4310F300D06092A811CCF55018311010500303B060A2A811CCF55060104020A301B06072A811CCF5501680410094C5DEB97BDA3A05CCE0BBA73BA2907801083422AFF57E69470E11AD5CDCB9A5C1EA082035A3082017C30820128A003020102020810300370156733CF300C06082A811CCF5501822D05003037310B300906035504061302434E3110300E060355040B13074245494A494E473116301406035504030C0D544553545F534D325F524F4F54301E170D3235303732323038353230305A170D3236303732323038353230305A3044310B300906035504061302434E3110300E06035504080C074265694A696E673110300E060355040B13074245494A494E473111300F06035504030C08544553545F534D323059301306072A8648CE3D020106082A811CCF5501822D034200042FACCCCAAC8A4866D0BC7960A34A541ED7ED0CBBFBF9C68C7F201131286833B99CB00C5ADCD53352FA8AEBDEA708ED792C05EE3770075E36BD5BB60DCC4433E9A30F300D300B30090603551D1304023000300A06082A811CCF5501822D034200231126BC39AA67B0EC3FB4A2F90AB977838A805A995D2C13E45B3E2450D7E9110095A53208323EDF3B354649D5BAB4D210432C1ADCF08976F68F3E8587B453C4A1308201D630820181A003020102020810300370156733CF300A06082A811CCF5501822D3037310B300906035504061302434E3110300E060355040B13074245494A494E473116301406035504030C0D544553545F534D325F524F4F54301E170D3235303732323038353230305A170D3236303732323038353230305A3032310B300906035504061302434E3110300E060355040B13074245494A494E473111300F06035504030C08544553545F534D323059301306072A8648CE3D020106082A811CCF5501822D03420004BA6CB383FC5F0525EEBCD237FD0B47DA82002E5B4CA8276A2B0A045219E06E35E01C73D8FEA0113FB767D7D2863950F4F754C562A52FCA54DB4CD1966EFE7DA8A37C307A301D0603551D0E041604145088E83036E0678A25E15CC550A857705D92658F30090603551D1304023000300A0603551D0F040303019C301006096086480186F842010104030301FF301D0603551D250416301406082B0601050507030106082B060105050703023011060A6086480186F84203020204030C0131300C06082A811CCF5501822D05000341003409D4F054E8E6A82CC11A5E465A2086A511A2E138C4E96CD13FA8FFEF91BD5E2B9EF3350AEE573C7A3064899DE819A1103538703CC4FE28504FA5F90113484B3181AD02010130433037310B300906035504061302434E3110300E060355040B13074245494A494E473116301406035504030C0D544553545F534D325F524F4F54020810300370156733CF300B06092A811CCF5501831101300D06092A811CCF5501822D01050004473045022100B054787DDDFD3E49C626B481F637DA544F2CA7964B375AC705E6B3F9D68A108802200F3D0A3E53ABDF2A5FDA0D0DC1FBDEAB5647861A59D881F9A8188D53F3C365CC

加密数据类型 encryptedData

3061060A2A811CCF550601040205A0533051020101304C060A2A811CCF550601040201301C06082A811CCF5501680204105D6F430A9FAFD47CDAD63D4D561C157E8020B6E661AC2C6E10917D939C9B3BE47E94054F30C613EDB635B4571A7A59F28AC8

密钥协商类型 keyAgreementInfo

30820260060A2A811CCF550601040206A08202503082024C02010103420004E2B03C32605A6A922307685D550AC0D91532D272394362B6AF40171CC5672AAFEF1F88C35CDC51626AF560064DA568A1281219CB9D6AA4A97F56DC62E046C651A08201EF30820194A00302010202096C6BDB1FA237D978BE300C06082A811CCF5501837505003047310B300906035504061302434E310D300B060355040A0C04524F4F54310D300B060355040B0C04524F4F54311A301806035504030C115075626C696354727573744341303030313022170F32343033323032303039313635395A170F32343033323032313039313635395A3030310B300906035504061302434E3110300E06035504080C074265694A696E67310F300D06035504030C067573726372743059301306072A8648CE3D020106082A811CCF5501822D03420004BA6CB383FC5F0525EEBCD237FD0B47DA82002E5B4CA8276A2B0A045219E06E35E01C73D8FEA0113FB767D7D2863950F4F754C562A52FCA54DB4CD1966EFE7DA8A37A301D0603551D0E041604145088E83036E0678A25E15CC550A857705D92658F30090603551D1304023000300B0603551D0F04040302009C301106096086480186F84201010404030200FF301D0603551D250416301406082B0601050507030106082B06010505070302300F06086086480186F8440204030C0131300C06082A811CCF550183750500034700304402203409D4F054E8E6A82CC11A5E465A2086A511A2E138C4E96CD13FA8FFEF91BD5E02202B9EF3350AEE573C7A3064899DE819A1103538703CC4FE28504FA5F90113484B041031323334353637383132333435363738

二、GB/T 35275-2026 网络安全技术 SM2密码算法加密签名消息格式

本标准中签名数据类型 SignedData 、鉴别数字信封数据类型 AuthEnvelopedData 定义与附录中的示例数据不符,导致读者看起来比较困惑。

签名数据类型 SignedData

3082043B060A2A811CCF550601040202A082042B30820427020101310F300D06092A811CCF550183110105003028060A2A811CCF550601040201A01A0418716577727177657231323334313233717765727161736466A08202FC308202F83082029CA0030201020212210570340F6D3245178F0C10E56191886DBF300C06082A811CCF5501837505003062310B300906035504060C02434E310D300B060355040A0C0454657374311B3019060355040B0C123132313430303030343035373033333435513127302506035504030C1E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E301E170D3139303332373035353234355A170D3139313031333035353234355A3034310B300906035504060C02434E310A3008060355040A0C014F310C300A060355040B0C03303031310B300906035504030C0231323059301306072A8648CE3D020106082A811CCF5501822D034200040777FC9242CF154606D37E1D3054CD106E33F7B43A589FB90C339FC0CEFE1EFA6ACC87539BC9A13D7C0F4363C080D9E35A119EA71348A1D1A2F286A6FA8CC1A1A382015C30820158300B0603551D0F0404030205E030090603551D130402300030130603551D25040C300A06082B060105050703033081910603551D1F048189308186303DA03BA0398637687474703A2F2F3132372E302E302E313A373037302F63726C2F55747275737453656343412F55747275737453656343415F302E63726C3045A043A041863F687474703A2F2F3132372E302E302E313A373037302F63726C2F55747275737453656343412F696E632F55747275737453656343415F696E635F302E63726C301D0603551D0E041604140A2EABD92DECA9B32CE403380763D24E58E24B63301F0603551D23041830168014CC6724421AC3F8AD27ACD2F2E584811FE9C52FAE30550603551D20044E304C304A060A2A811C86EF3206040101303C303A06082B06010505070201162E687474703A2F2F3132372E302E302E313A373037302F6370732F55747275737453656343412F6370732E68746D6C300C06082A811CCF550183750500034800304502210087AB1DE65106E98EA4EED81B90C20E87101539DCB7B44939D279A279F4A8F591022074137297ABA4CC38020652971662B2216B4A81D96E8AD0EAD972F17C910C52CF3181E63081E302010230783062310B300906035504060C02434E310D300B060355040A0C0454657374311B3019060355040B0C123132313430303030343035373033333435513127302506035504030C1E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E0212210570340F6D3245178F0C10E56191886DBF300D06092A811CCF55018311010500300D06092A811CCF5501822D010500044630440220711AB6795FE797A8C6668113BC551078944A7EB90E54EB6DF451740A87A6A130022078445EFB53B6ABD7CD27BA61EBC1F546D61CB9489C0C8FE2ADB7D74E18E55A3A

数字信封数据类型 EnvelopedData

3082013D060A2A811CCF550601040203A082012D308201290201023181E53081E202010130523044310B300906035504061302434E310D300B060355040A0C0454657374310D300B060355040B0C04546573743117301506035504030C0E4265696A696E6720534D32204341020A1A10000000000005B32B300D06092A811CCF5501822D030500047A3078022037901CFEB5A4161D2C347B01A8FD9949BACA2E465C34DD3759206B790E093D4F02206F2FCDB0B58008E417A062E8081EA1462D6957E754DD98697E939285F5F0057F04207BAFA05277947F6E71CD76F81DB3E3CA20F90536F543B7F9074D7879C825C23D0410CB549EC613C7B7B31D1BED9EBC9A119D303C060A2A811CCF550601040201301C06082A811CCF5501680204105B10A3840015BD11F62EE37F5C79B41B80109D13CEE501B79087894B640BC6F9C03F

摘要数据类型 DigestedData

不定长

3080020101300B06092A811CCF55018311013080060A2A811CCF55060104020AA0800410313233347177657231323334717765720000000004206B8395AB5AD3C6FA8B685BEC562DDA1170FB3E5BE012080DEF614D78E031A1C10000

定长

3054020101300B06092A811CCF55018311013020060A2A811CCF55060104020AA01204103132333471776572313233347177657204206B8395AB5AD3C6FA8B685BEC562DDA1170FB3E5BE012080DEF614D78E031A1C1

加密数据类型 EncryptedData

3061060A2A811CCF550601040205A0533051020102304C060A2A811CCF550601040201301C06082A811CCF5501680204105D6F430A9FAFD47CDAD63D4D561C157E8020B6E661AC2C6E10917D939C9B3BE47E94054F30C613EDB635B4571A7A59F28AC8

鉴别数字信封数据类型 AuthEnvelopedData

不定长

30800201013181E402010130583042310B300906035504061302434E310D300B060355040A0C0458584341310D300B060355040B0C04585843413115301306035504030C0C696E69745365636F6E644341021210020203241226160D72878355D71EBE434B06082A811CCF5501822D047B3079022100C79C0435501A7C23F9CF2EB1A8E0ABCA328406CE8CA0582C7F1734677B84DF4B02206051674AE748A4779CFAA08FC98001809BA87B2F7ADF72DABD8E401A688115920420728D05D77A6232EB6F5CF961D99B76A75662FF3068044A2E33E93C18CAC1C0BB0410564C0C8D232CB9C7A09694F79F8CFFA33080060A2A811CCF55060104020B300A06082A811CCF5501680A0000A11E301C06092A864886F70D010905310F170D3234313233313138343232325A04106CF92286519489A3689F92E6FB97E8020000

定长

308201360201013181E402010130583042310B300906035504061302434E310D300B060355040A0C0458584341310D300B060355040B0C04585843413115301306035504030C0C696E69745365636F6E644341021210020203241226160D72878355D71EBE434B06082A811CCF5501822D047B3079022100C79C0435501A7C23F9CF2EB1A8E0ABCA328406CE8CA0582C7F1734677B84DF4B02206051674AE748A4779CFAA08FC98001809BA87B2F7ADF72DABD8E401A688115920420728D05D77A6232EB6F5CF961D99B76A75662FF3068044A2E33E93C18CAC1C0BB0410564C0C8D232CB9C7A09694F79F8CFFA33018060A2A811CCF55060104020B300A06082A811CCF5501680AA11E301C06092A864886F70D010905310F170D3234313233313138343232325A04106CF92286519489A3689F92E6FB97E802

密钥协商类型 KeyAgreementInfo

30820260060A2A811CCF550601040206A08202503082024C02010103420004E2B03C32605A6A922307685D550AC0D91532D272394362B6AF40171CC5672AAFEF1F88C35CDC51626AF560064DA568A1281219CB9D6AA4A97F56DC62E046C651A08201EF30820194A00302010202096C6BDB1FA237D978BE300C06082A811CCF5501837505003047310B300906035504061302434E310D300B060355040A0C04524F4F54310D300B060355040B0C04524F4F54311A301806035504030C115075626C696354727573744341303030313022170F32343033323032303039313635395A170F32343033323032313039313635395A3030310B300906035504061302434E3110300E06035504080C074265694A696E67310F300D06035504030C067573726372743059301306072A8648CE3D020106082A811CCF5501822D03420004BA6CB383FC5F0525EEBCD237FD0B47DA82002E5B4CA8276A2B0A045219E06E35E01C73D8FEA0113FB767D7D2863950F4F754C562A52FCA54DB4CD1966EFE7DA8A37A301D0603551D0E041604145088E83036E0678A25E15CC550A857705D92658F30090603551D1304023000300B0603551D0F04040302009C301106096086480186F84201010404030200FF301D0603551D250416301406082B0601050507030106082B06010505070302300F06086086480186F8440204030C0131300C06082A811CCF550183750500034700304402203409D4F054E8E6A82CC11A5E465A2086A511A2E138C4E96CD13FA8FFEF91BD5E02202B9EF3350AEE573C7A3064899DE819A1103538703CC4FE28504FA5F90113484B041031323334353637383132333435363738

签名及数字信封数据类型 SignedAndEnvelopedData

3082054D060A2A811CCF550601040204A082053D308205390201013181D73081D402010030433037310B300906035504061302434E3110300E060355040B13074245494A494E473116301406035504030C0D544553545F534D325F524F4F54020810300370156733CF300D06092A811CCF5501822D030500047B307902206B0D061554A74FAD4B0A8A963356B0ADF698E77A5BCCF98EB2347316591B830B022100F422FB719633F5185D8EE9F26B8C1E935F1B9AB301C9F51C7DF357E849DB52DC04201A9973D965C90F63BF5DBA3EF174CDC217C895720CAD5B4FE18AC62EA150ADF90410E4288625BA1173511FFE1ABD08C0CCB4310F300D06092A811CCF55018311010500303B060A2A811CCF55060104020A301B06072A811CCF5501680410094C5DEB97BDA3A05CCE0BBA73BA2907801083422AFF57E69470E11AD5CDCB9A5C1EA082035A3082017C30820128A003020102020810300370156733CF300C06082A811CCF5501822D05003037310B300906035504061302434E3110300E060355040B13074245494A494E473116301406035504030C0D544553545F534D325F524F4F54301E170D3235303732323038353230305A170D3236303732323038353230305A3044310B300906035504061302434E3110300E06035504080C074265694A696E673110300E060355040B13074245494A494E473111300F06035504030C08544553545F534D323059301306072A8648CE3D020106082A811CCF5501822D034200042FACCCCAAC8A4866D0BC7960A34A541ED7ED0CBBFBF9C68C7F201131286833B99CB00C5ADCD53352FA8AEBDEA708ED792C05EE3770075E36BD5BB60DCC4433E9A30F300D300B30090603551D1304023000300A06082A811CCF5501822D034200231126BC39AA67B0EC3FB4A2F90AB977838A805A995D2C13E45B3E2450D7E9110095A53208323EDF3B354649D5BAB4D210432C1ADCF08976F68F3E8587B453C4A1308201D630820181A003020102020810300370156733CF300A06082A811CCF5501822D3037310B300906035504061302434E3110300E060355040B13074245494A494E473116301406035504030C0D544553545F534D325F524F4F54301E170D3235303732323038353230305A170D3236303732323038353230305A3032310B300906035504061302434E3110300E060355040B13074245494A494E473111300F06035504030C08544553545F534D323059301306072A8648CE3D020106082A811CCF5501822D03420004BA6CB383FC5F0525EEBCD237FD0B47DA82002E5B4CA8276A2B0A045219E06E35E01C73D8FEA0113FB767D7D2863950F4F754C562A52FCA54DB4CD1966EFE7DA8A37C307A301D0603551D0E041604145088E83036E0678A25E15CC550A857705D92658F30090603551D1304023000300A0603551D0F040303019C301006096086480186F842010104030301FF301D0603551D250416301406082B0601050507030106082B060105050703023011060A6086480186F84203020204030C0131300C06082A811CCF5501822D05000341003409D4F054E8E6A82CC11A5E465A2086A511A2E138C4E96CD13FA8FFEF91BD5E2B9EF3350AEE573C7A3064899DE819A1103538703CC4FE28504FA5F90113484B3181AD02010230433037310B300906035504061302434E3110300E060355040B13074245494A494E473116301406035504030C0D544553545F534D325F524F4F54020810300370156733CF300B06092A811CCF5501831101300D06092A811CCF5501822D01050004473045022100B054787DDDFD3E49C626B481F637DA544F2CA7964B375AC705E6B3F9D68A108802200F3D0A3E53ABDF2A5FDA0D0DC1FBDEAB5647861A59D881F9A8188D53F3C365CC

免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:利刃信安 利刃信安 利刃信安《那些年我们踩过的坑——0010/35275 勘误》

评论:0   参与:  0