SM2公钥密码算法_第1页
SM2公钥密码算法_第2页
SM2公钥密码算法_第3页
SM2公钥密码算法_第4页
SM2公钥密码算法_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

RSA密码背后的原理及其应用潘森杉计算机科学与通信工程学院,江苏大学

密码学明确欧拉定理的意义能够使用EEA求解私钥能够使用CRT加速解密能展示教科书RSA算法加解密过程能够辨析RSA背后的困难问题能够表述密码学基本安全模型的含义能够区分单向陷门置换与公钥加密方案能够运用标准RSA-OAEP加密目录欧拉定理在RSA中的意义目标:明确欧拉定理的贡献,能够使用EEA计算解密密钥方案建模——RSA算法的工作原理

欧拉φ函数RSA是单向陷门置换第三章SM2公钥密码算法目录629-7月-263.1加密解密算法描述3.2加密解密算法实现3.3数字签名算法描述3.4数字签名算法实现3.5密钥协商算法描述3.6密钥协商算法实现3.1加密解密算法描述SM2算法是一种椭圆曲线公钥密码算法,其密钥长度为256bit。SM2算法有基于素域和二元扩域的椭圆曲线。本节主要对基于素域椭圆曲线的SM2算法进行说明。729-7月-263.1加密解密算法描述提问:“为什么sm2p256v1的p要选这个大质数?”p的长度(256位)决定安全强度,且满足‘pmod4=3’便于高效计算829-7月-263.1加密解密算法描述对比维度SM2(国密椭圆曲线算法)ECDSA(国际椭圆曲线数字签名算法)关键差异说明1.数学基础与曲线标准基于国密专用曲线sm2p256v1(参数:a=-3,b=0x5ac635d8…,p=0xffffffff…),曲线阶n为大素数基于NIST推荐曲线(如secp256r1、secp256k1),曲线参数由国际组织定义SM2曲线为中国自主设计,适配国内硬件/场景;ECDSA曲线全球化通用,兼容性更广2.哈希算法绑定强制绑定SM3哈希算法(国密哈希标准),签名/加密需先通过SM3处理数据支持多种国际哈希算法(如SHA-256、SHA-384),无强制绑定,可根据场景选择SM2通过“算法绑定”强化国密体系一致性;ECDSA通过“算法可选”提升场景灵活性3.签名结构与流程签名需先计算Z值(Z=SM3(ENTL+ID+曲线参数+公钥),ENTL为用户ID长度),最终签名为(r,s)(64字节)直接对“明文哈希值”签名,无需Z值计算,签名为(r,s)(长度随曲线变化,如secp256r1为64字节)Z值是SM2核心独特设计,用于绑定用户身份与曲线参数,提升抗伪造能力;ECDSA无身份绑定环节4.密钥协商能力自带双向身份认证的密钥协商协议(SM2KeyAgreement),无需额外协议即可验证双方身份仅支持基础密钥协商(ECDH),身份认证需依赖外部协议(如TLS握手流程)SM2将“密钥协商+身份认证”一体化,简化部署;ECDSA需搭配其他协议实现完整安全链路5.标准化与合规性中国国家标准(GB/T32918-2016),2017年纳入ISO/IEC14888-3,国内关键场景(金融/政务)强制使用国际标准(IETFRFC5480、IEEE1363),全球通用,无地域强制要求SM2核心服务国内合规需求;ECDSA适用于跨境/全球化场景,兼容性优先6.抗风险与扩展设计针对国内硬件优化(如低内存物联网设备),后量子版本(基于格的SM2+)已在研发中全球化硬件适配成熟,但后量子迁移需切换至全新算法(如CRYSTALS-Dilithium),无直接扩展路径SM2有明确的“国产化迭代路线”;ECDSA依赖国际后量子标准,迁移成本较高929-7月-263.1.1算法描述

1029-7月-263.1.1算法描述

1129-7月-263.1.1算法描述

1229-7月-263.1.1算法描述

1329-7月-263.1.1算法描述

1429-7月-263.1.1算法描述

1529-7月-263.1.1算法描述

1629-7月-263.1.1算法描述

1729-7月-263.1.1算法描述4.密钥派生函数密钥派生函数的作用是从一个共享的秘密比特串中派生出密钥数据。密钥派生函数需要调用密码杂凑函数。设密码杂凑函数为Hv(),其输出是长度恰为v比特的杂凑值。密钥派生函数KDF(Z,klen):输入:比特串Z,整数klen(表示要获得的密钥数据的比特长度,要求该值小于(232-1)v)。输出:长度为klen的密钥数据比特串K。1829-7月-263.1.1算法描述

1929-7月-263.1.2密钥产生

2029-7月-263.1.3加密解密过程1.SM2加密算法假设要发送的消息为比特串M,len为M的比特长度。为了对明文M进行加密,作为加密者的用户A应进行以下运算步骤。(1)用随机数发生器产生随机数k∈[1,n-1],其中n是椭圆曲线基点G的阶次。(2)计算椭圆曲线点C1=[k]G=(x1,y1)。(3)计算椭圆曲线上的点S=[h]PB,其中S不能为无穷远点O。2129-7月-263.1.3加密解密过程

2229-7月-263.1.3加密解密过程

2329-7月-263.1.3加密解密过程(3)计算[dB]C1=(x2,y2)。(4)计算t=KDF(x2‖y2,len),验证t是否为全0比特串,若为全0则解密错误。(5)从C中取出比特串C2,计算M’=C2⊕t;计算u=Hash(x2‖M’‖y2),从c中取出比特串C3,若u≠C3,则解密错误。(6)M’即为解密后的明文。2429-7月-263.1.4

SM2加密算法的安全性攻击者对公钥加密算法的攻击包括如下模型。(1)选择明文攻击(ChosenPlaintextAttack,CPA)。攻击者可以访问加密谕言机(EncryptionOracle),获得一定的明文/密文对,但他不能访问解密谕言机(DecryptionOracle),攻击者根据所掌握的信息和资源对他想破解的密文给出一个答案。2529-7月-263.1.4

SM2加密算法的安全性(2)选择密文攻击(CCA1)。攻击者可以访问加密谕言机和解密谕言机,但在获得一定的明文/密文对后,不能再访问解密谕言机了,攻击者根据所掌握的信息和资源对他想破解的密文给出一个答案。(3)自主选择密文攻击(CCA2),攻击者任何时候都可以访问加密谕言机和解密谕言机,唯一限制是不能直接将其想破解的密文输人解密谕言机进行解密,根据所掌握的信息和资源对他想破解的密文给出一个答案。上述3种攻击行为中CCA2是最强的。2629-7月-263.1.4

SM2加密算法的安全性公钥加密算法的安全性体现在密文所具备的一些安全属性,这些属性包括:(1)单向性(One-Wayness,OW),攻击者在不拥有私钥的前提下,不能计算出任何密文所对应的明文;(2)不可区分性(Indistinguishability,IDN),攻击者选择2个不同的明文m1和m2输入加密谕言机,加密谕言机随机选择其中一个明文加密并返回密文C,攻击者无法以明显区别于1/2的概率正确判断C为m1或m2的密文;2729-7月-263.1.4

SM2加密算法的安全性(3)不可延展性(Non-Malleability,NM),攻击者无法通过密文C(对应明文为m)构造出另一合法密文C´(对应明文为m´),使得m和m'之间存在某种有意义的关系(即有利于破解的关系)。公钥加密算法的安全性定义为:在攻击者的某种攻击行为下密文具备的某种安全属性。NM-CCA2是指自主选择密文攻击下密文具备不可延展性。事实上IND-CCA2和NM-CCA2是等价的,为国际密码学界公认的公钥密码算法的最高级别的安全性。2829-7月-263.1.4

SM2加密算法的安全性SM2公钥加密算法是基于广义ElGamal加密算法进行设计的,对公钥加密算法进行安全性增强,可以概括为以下几类。(1)OAEP方法。OAEP实际上是一种增强的对明文信息的Padding规则,比一般RSA算法的Padding规则更安全,比较适用于增强RSA算法的安全性。(2)签名加密方法。对每次加密所涉及的秘密信息或者是密文本身签名,使得攻击者无法通过一密文构造相关联的另一合法密文,而解密谕言机一旦遇到非法密文则拒绝输出任何信息,从而抵抗CCA2攻击。2929-7月-263.1.4

SM2加密算法的安全性

(3)混合加密方法。将公钥密码和对称密码结合起来,譬如采用密钥封装机制(KeyEncapsulateMechanism,KEM)将对称密码体制的密钥用公钥密码密文的形式封装起来,真正对明文加密的是使用该对称密钥的对称加密算法,利用公钥加密和对称加密共同生成密文的认证信息,解密谕言机若验证认证信息有误则拒绝输出任何信息,从而抵抗CCA2攻击,比较有代表性的混合加密方法是DHAES。3029-7月-263.1.4

SM2加密算法的安全性

(4)使用Hash函数。通过安全Hash函数产生和验证MAC,对公钥密码算法中涉及的秘密信息和明文信息进行验证,一旦解密谕言机发现验MAC有误,则拒绝输出任何信息,从而抵抗CCA2攻击。3129-7月-263.1.4

SM2加密算法的安全性

3229-7月-263.2加密解密算法实现

(详情请参照课本)3.2.1算法举例3.2.2算法实现3.2.3实现结果3329-7月-263.3数字签名算法描述3.3.1参数与密钥产生参数的产生、密钥的产生与SM2加密解密算法相同。3.3.2数字签名生成验证过程1.SM2数字签名生成算法假设待签名的消息为M,为了获取消息M的数字签名(r,s),作为签名者的用户A应实现以下运算步骤:3429-7月-263.3数字签名算法描述

3529-7月-263.3数字签名算法描述

3629-7月-263.3数字签名算法描述

3729-7月-263.3数字签名算法描述

3829-7月-263.3数字签名算法描述SM2签名方案的正确性证明如下:因为:所以:

3929-7月-26

3.3数字签名算法描述

4029-7月-263.3.3

SM2数字签名安全性分析针对数字签名算法的最强攻击行为是自主选择消息攻击(AdaptivelyChosen-MessageAttacks),攻击者可以访问签名谕言机(SigningOracle),攻击者除了有要伪造签名的消息外,他可以任意选择消息进行签名而获得有效的消息/签名对。攻击者如果达到以下目标之一,则称数字签名算法被攻破。(1)完全攻破(TotalBreak):攻击者获得签名私钥,可以对任意消息伪造签名,这是最严重的攻破;4129-7月-263.3.3

SM2数字签名安全性分析(2)一般性伪造(UniversalForgery):攻击者建立一个有效的算法来模仿签名,模仿签名的成功率足够的高;(3)存在伪造性(ExistentialForgery):也称随机消息签名伪造,攻击者利用已有的消息/签名对,可以生成新的消息/签名对,新的消息与原有消息/签名对具有相关性,攻击者不能自主选择。4229-7月-263.3.3

SM2数字签名安全性分析(2)一般性伪造(UniversalForgery):攻击者建立一个有效的算法来模仿签名,模仿签名的成功率足够的高;(3)存在伪造性(ExistentialForgery):也称随机消息签名伪造,攻击者利用已有的消息/签名对,可以生成新的消息/签名对,新的消息与原有消息/签名对具有相关性,攻击者不能自主选择。4329-7月-263.3.3

SM2数字签名安全性分析上述三个攻击目标中,存在性伪造是最低的,对于一个数字签名算法,如果攻击者采用最强的攻击行为,仍然不能达到最低的攻击目标,则该数字签名算法是安全的。其中自主选择消息攻击下存在性不可伪造性(ExistentialUnforgettablityUnderAdaptivelyChosen-MessageAttacks)已经成为评估数字签名算法安全性的一个标准概率。针对数字签名算法的密钥替换攻击,攻击者拥有公钥pk以及该公钥对应的消息/签名对(m,s),试图生成另一个公钥,使得验证(m,s)仍然是有效的。4429-7月-263.3.3

SM2数字签名安全性分析SM2数字签名算法属于广义ElGamal数字签名算法范围此类数字签名算法的EUF-CMA分析和证明已经有成熟的模型和方法,包括GGM(GenericGroupModel)和ROM(RandomOracleModel)。针对密钥替换攻击,SM2数字签名采取的防御方法是将签名者ID、公钥和源消息一起Hash,在Hash算法安全的前提下,可以抵抗密钥替换攻击。由此可见,SM2数字签名算法是安全的。4529-7月-263.4数字签名算法实现

(详情请参照课本)3.4.1算法举例3.4.2算法实现3.4.3实现结果4629-7月-263.5密钥协商算法描述

4729-7月-26

4829-7月-263.5.1密钥协商过程

4929-7月-263.5.1密钥协商过程

5029-7月-263.5.1密钥协商过程

5129-7月-263.5.1密钥协商过程

522

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论