《国产密码算法与应用.doc》由会员分享,可在线阅读,更多相关《国产密码算法与应用.doc(11页珍藏版)》请在三一办公上搜索。
1、国产密码算法及应用商用密码,是指能够实现商用密码算法的加密、解密和认证等功能的技术。(包括密码算法编程技术和密码算法芯片、加密卡等的实现技术)。商用密码技术是商用密码的核心,国家将商用密码技术列入国家秘密,任何单位和个人都有责任和义务保护商用密码技术的秘密。商用密码的应用领域十分广泛,主要用于对不涉及国家秘密容但又具有敏感性的部信息、行政事务信息、经济信息等进行加密保护。比如各种安全认证、网上银行、数字签名等。为了保障商用密码安全,国家商用密码管理办公室制定了一系列密码标准,包括SSF33、SM1(SCB2)、SM2、SM3、SM4、SM7、SM9、祖冲之密码算法等等。其中SSF33、SM1、
2、SM4、SM7、祖冲之密码是对称算法;SM2、SM9是非对称算法;SM3是哈希算法。目前已经公布算法文本的包括SM2椭圆曲线公钥密码算法、SM3密码杂凑算法、SM4分组密码算法等。一、 国密算法简介1. SM1对称密码国密SM1算法是由国家密码管理局编制的一种商用密码分组标准对称算法,分组长度为128位,密钥长度都为128比特,算法安全强度及相关软硬件实现性能与AES相当,算法不公开,仅以IP核的形式存在于芯片中。采用该算法已经研制了系列芯片、智能IC卡、智能密码钥匙、加密卡、加密机等安全产品,广泛应用于电子政务、电子商务及国民经济的各个应用领域(包括国家政务通、警务通等重要领域)。2. SM
3、2椭圆曲线公钥密码算法SM2算法就是ECC椭圆曲线密码机制,但在签名、密钥交换方面不同于ECDSA、ECDH等国际标准,而是采取了更为安全的机制。国密SM2算法标准包括4个部分,第1部分为总则,主要介绍了ECC基本的算法描述,包括素数域和二元扩域两种算法描述,第2部分为数字签名算法,这个算法不同于ECDSA算法,其计算量大,也比ECDSA复杂些,也许这样会更安全吧,第3部分为密钥交换协议,与ECDH功能相同,但复杂性高,计算量加大,第4部分为公钥加密算法,使用ECC公钥进行加密和ECC私钥进行加密算法,其实现上是在ECDH上分散出流密钥,之后与明文或者是密文进行异或运算,并没有采用第3部分的密
4、钥交换协议产生的密钥。对于SM2算法的总体感觉,应该是国家发明,其计算上比国际上公布的ECC算法复杂,相对来说算法速度可能慢,但可能是更安全一点。设需要发送的消息为比特串M,len为M的比特长度。为了对明文M进行加密,作为加密者的用户应实现以下运算步骤:步骤1:用随机数发生器产生随机数k1,n -1;步骤2:计算椭圆曲线点C1=kG=(X1 ,Y1 ),将C1的数据类型转换为比特串;步骤3:计算椭圆曲线点S=hP ,若S是无穷远点,则报错;步骤4:计算椭圆曲线点kP =(X2,Y2),将坐标X2,Y2的数据类型转换为比特串;步骤5:计算t=KDF(x2 ll y2 ,len),若t为全0比特串
5、,则返回步骤1;步骤6:计算C2 = M t;步骤7:计算C3=Hash(x2 ll M ll y2);步骤8:输出密文C=C1 ll C2 ll C3。2010年底,国家密码管理局公布了我国自主研制的“椭圆曲线公钥密码算法”(SM2算法)。为保障重要经济系统密码应用安全,国家密码管理局于2011年发布了关于做好公钥密码算法升级工作的通知,要求“自2011年3月1日期,在建和拟建公钥密码基础设施电子认证系统和密钥管理系统应使用SM2算法。自2011年7月1日起,投入运行并使用公钥密码的信息系统,应使用SM2算法。”近期,人民银行组织召开多次专题会议讨论研究金融领域国产加密算法升级改造的相关工作
6、。3. SM3杂凑算法又叫文摘算法,也有叫杂凑算法的。功能与MD5,SHA-1相同。产生256位的编码。该算法位不可逆的算法。具体算法也是。SM3密码杂凑算法给出了杂凑函数算法的计算方法和计算步骤,并给出了运算示例。此算法适用于商用密码应用中的数字签名和验证,消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。在SM2、SM9标准中使用。此算法对输入长度小于2的64次方的比特消息,经过填充和迭代压缩,生成长度为256比特的杂凑值,其中使用了异或,模,模加,移位,与,或,非运算,由填充,迭代过程,消息扩展和压缩函数所构成。SM3算法包括预处理、消息扩展和计算Hash值三部分。预
7、处理部分由消息填充和消息分组两部分组成。首先将接收到的消息末尾填充一个“1” , 再添加k个“0”,使得填充后的数据成为满足length = 448mod512bit的数据长度,再在末尾附上64bit消息长度的二进制表示数, 然后将消息分成512bit的子块,最后将每个512bit的消息子块扩展成132个字用于Hash值的计算。SM3算法计算流程图如图所示。SM3算法的Hash运算主要是在压缩函数部分,压缩函数共包含64轮,每轮包括12步运算,64轮循环计算结束后,再将计算结果与输入到本轮计算的初始数据进行异或运算,即上一次Hash运算的Hash值输出与输入到本轮计算的初始数据异或得到本次Ha
8、sh值输出,Hn即为最终的Hash值,H0为设计者提供的初始值IV。图 SM3算法流程图4. SM4对称算法此算法是一个分组算法,用于无线局域网产品。该算法的分组长度为128比特,密钥长度为128比特。加密算法与密钥扩展算法都采用32轮非线性迭代结构。解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。定义反序变换R为: R(A0,A1,A2,A3)=(A3,A2,A1,A0),AiZ322,i = 0,1,2,3。设明文输入为(X0,X1,X2,X3)(Z322)4,密文输出为(Y0,Y1,Y2,Y3)(Z322)4 ,轮密钥为rk i Z322。则本算法的
9、加密变换为: Xi+4 = F(Xi,Xi+1,Xi+2, Xi+3,rki)= XiT(Xi+1Xi+2 Xi+3rki),i= 0,1,2,3,31.(Y0,Y1,Y2,Y3)= R(X32,X33,X34,X35)=(X35,X34,X33,X32)。本算法的解密变换与加密变换结构相同,不同的仅是轮密钥的使用顺序。 加密时轮密钥的使用顺序为:(rk0, rk1, , rk31)。 解密时轮密钥的使用顺序为:(rk31, rk30, , rk0)。SM4算法的优点是软件和硬件实现容易,运算速度快,但该算法的缺点是消息安全取决于对密钥的保护,泄漏密钥就意味着任何人都能对消息进行密码和解密。由
10、于其加密过程和解密过程互逆,这两个过程均使用相同的密钥,使得对称密钥加密体制的适用围受到了很大限制。5. SM7对称密码SM7算法是一种分组密码算法,分组长度为128比特,密钥长度为128比特。SM7的算法文本目前没有公开发布。SM7适用于非接IC卡应用包括身份识别类应用(门禁卡、工作证、参赛证),票务类应用(大型赛事门票、展会门票),支付与通卡类应用(积分消费卡、校园一卡通、企业一卡通、公交一卡通)。6. SM9非对称算法SM9是基于对的标识密码算法,与SM2类似,包含四个部分:总则,数字签名算法,密钥交换协议以及密钥封装机制和公钥加密算法。在这些算法中使用了椭圆曲线上的对这一个工具,不同于
11、传统意义上的SM2算法,可以实现基于身份的密码体制,也就是公钥与用户的身份信息即标识相关,从而比传统意义上的公钥密码体制有许多优点,省去了证书管理等。双线性对的双线性的性质是基于对的标识密码SM2中的总则部分同样适用于SM9,由于SM9总则中添加了适用于对的相关理论和实现基础。SM9给出了数字签名算法(包括数字签名生成算法,数字签名验证算法),密钥交换协议,以及密钥封装机制和公钥加密算法(包括密钥封装算法,加密盒解密算法)。数字签名算法适用于接收者通过签名者的标识验证数据的完整性和数据发送者的身份,也适用于第三方确定签名及所签数据的真实性。密钥交换协议可以使用通信双方通过双方的标识和自身的私钥
12、经过两次或者可选三次信息传递过程,计算获取一个由双方共同决定的共享秘密密钥。密钥封装机制和公钥加密算法中,利用密钥封装机制可以封装密钥给特定的实体。公钥加密和解密算法即基于标识的非对称秘密算法,该算法使消息发送者可以利用接收者的标识对消息进行加密,唯有接收者可以用相应的私钥对该密文进行解密,从而获取消息。基于对的算法中同样使用了国家密管理局批准的SM3密码杂凑算法和随机数发生器,密钥封装机制和公钥加密算法中使用了国家密码管理局批准的对称密码算法和消息认证码函数。7. 祖冲之对称算法祖冲之密码算法由中国科学院等单位研制,运用于下一代移动通信4G网络LTE中的国际标准密码算法。祖冲之密码算法(ZU
13、C)的名字源于我国古代数学家祖冲之,祖冲之算法集是由我国学者自主设计的加密和完整性算法,是一种流密码。它是两个新的LTE算法的核心,这两个LTE算法分别是加密算法128-EEA3和完整性算法128-EIA3。ZUC算法由3个基本部分组成,依次为:1、比特重组;2、非线性函数F;3、线性反馈移位寄存器(LFSR)。二、 国密算法行业应用2014年,中国银联发布了中国银联IC卡技术规和中国银联银行卡联网联合技术规,在兼容最新国际通用技术标准的基础上支持国产密码,丰富了安全算法体系,促进了信息安全,自主可控水平实现提高。1. 银行银行是首批开展国密算法金融IC卡试点银行之一,此次发行金融IC卡中采用
14、了我全可控的国密算法芯片。应用在银行金融IC卡上的大唐CE3D系列双界面金融安全芯片采用了32位CPU核,拥有高达80KB的EEPROM数据存储空间,符合PBOC3.0中SM2/3/4算法升级要求,支持JAVA操作技术,具有高安全、高性能、低功耗的特点,实现国密算法的金融IC卡成功跨行交易。2. 银行2014年5月12日,PBOC3.0国密多应用金融IC卡项目产品展示会暨示应用推广研讨会在召开。在本次研讨会上,全球首加载PBOC3.0国产密码算法的金融IC卡正式亮相,并在银行实现了首批试商用发卡。作为国产智能卡芯片的佼佼者,同方微电子为本次发卡提供了符合规的芯片产品THD86。该项目通过推进金
15、融信息系统国产密码的应用,将为打破国外密码算法及产品在金融领域应用的垄断局面、全面带动国信息安全及金融服务相关产业发展提供有力保障,实现国家金融安全的重大战略。金融IC卡国产密码算法应用示项目自2013年5月份开始已取得了阶段性的成果,分别完成了支持国产密码算法的银行端系统改造、ATM、POS、刷卡器、加密机、IC卡芯片等一系列产品的研发和接入银行系统,组成了包括芯片厂商、COS厂商、卡商、密码设备供应商、支撑系统提供商及银行核心系统供应商等的金融IC卡国产密码应用的完整产业链。同方微电子在此项目中应用的THD86是国首款32位CPU双界面卡芯片,国首款通过银联芯片安全认证的双界面卡芯片,国率
16、先通过国密二级认证的双界面卡芯片,支持金融应用扩展,符合PBOC3.0标准,支持国外密码算法和国产密码双算法体系。THD86在PBOC3.0国密多应用金融IC卡示应用中的成功,将对我国普及推广该项目成果具有重要的示作用。3. 工商银行工商银行根据国密算法应用实施总体规划,从2012年下半年开始,工商银行启动国密算法及产品的相关研究和测评工作,并于2013年开始在电子认证、网上银行、金融IC卡及移动支付等关键领域率先启动国密算法应用试点工作。客户电子认证系统是工商银自建的为网上银行客户提供电子认证服务的系统,在2013年8月完成国密算法应用改造以及机房、网络等环境改造。改造后增加了国密SM2算法
17、证书的后台管理功能,并配合网上银行实现国密U盾的签发和交易数据签名验签功能。该系统在2013年11月通过国密局安全审查,成为金融领域自建电子认证系统第一家通过国家密码管理局安全性审查的单位。同时,工商银行还在网上银行、金融IC卡及移动支付领域启动了国密算法应用改造工作,并将金融IC卡及移动支付的国密试点项目向发改委申报了“金融IC卡与密码应用专项”,在2014年1月个人网上银行系统、金融IC卡及移动支付系统都顺利完成国密算法技术改造,经过分行对相关功能进行验收后,目前已经在部分分行启动了业务试点工作。2014年9月,国家密码局、工信部、公安部、银行卡检测中心等单位组成联合检查小组,对分行支持国密算法的IC卡及移动支付试点情况进行中期检查,检查组对工商银行金融IC卡及移动支付国密算法实施工作的总体进度较为满意,并对其实施效果给予了高度评价。