des与3des算法_第1页
des与3des算法_第2页
des与3des算法_第3页
des与3des算法_第4页
des与3des算法_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、 银行常用加密算法介绍银行常用加密算法介绍 2011.5 加密过程解释加密过程解释 l什么是加密? 是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已处理的 信息,但因不知解密的方法,仍然无法了解信息的内容。在密码学中,加密是将明 文信息隐匿起来,使之在缺少特殊信息时不可读。虽然加密作为通信保密的手段已 经存在了几个世纪,但是只有那些对安全要求特别高的组织和个人才会使用它。在 20世纪70年代中期,强加密(Strong Encryption)的使用开始从政府保密机构延 伸至公共领域,并且目前已经成为保护许多广泛使用系统的方法,比如因特网电子 商务、手机网络和银行自动取款机等.

2、l加密作用 加密可以用于保证安全性,但是其它一些技术在保障通信安全方面仍然是必须的, 尤其是关于数据完整性和信息验证;例如,信息验证码(MAC)或者数学签名。另 一方面的考虑是为了应付流量分析。 名词解释名词解释 l密钥(KEY) 密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的数据. l主密钥(MMK) 相当于密钥钥匙,该密钥主要起到解密下发密钥,不参与具体数据加解密。 l工作密钥(DK) 参加具体工作的密钥,该密钥通过报文传送下发到本地,通过主密钥解密后,还原 成真正的密钥,再具体参与数据的加解密。 lPIK 参与密钥加密的工作密钥 lMAK 用于生成交易报文合法性验证

3、数据(MAC)的密钥 名词解释名词解释 lPIN block PIN 格式块 l对称算法 对称式加密就是加密和解密使用同一个密钥,通常称之为“Session Key ”这种加密 技术目前被广泛采用,如美国政府所采用的DES加密标准就是一种典型的“对称式” 加密法. l非对称算法 非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。 公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有 密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能 解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算 法

4、。 DES 加密算法加密算法 l数据加密算法(Data Encryption Algorithm,DEA)是一种对称加密算法,很可 能是使用最广泛的密钥系统,特别是在保护金融数据的安全中,最初开发的DEA是 嵌入硬件中的。通常,自动取款机(Automated Teller Machine,ATM)都使用 DEA。它出自IBM的研究工作,IBM也曾对它拥有几年的专利权,但是在1983年已 到期后,处于公有范围中,允许在特定条件下可以免除专利使用费而使用。1977年 被美国政府正式采纳。 lDES的原始思想可以参照二战德国的恩格玛机,其基本思想大致相同。传统的密码 加密都是由古代的循环移位思想而来

5、,恩格玛机在这个基础之上进行了扩散模糊。 但是本质原理都是一样的。现代DES在二进制级别做着同样的事:替代模糊,增加 分析的难度。 lDES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位,产生最大 64 位的分组大 小。这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密的文本块分成 两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运 算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES 使用 16 个循环,使用异或,置换,代换,移位操作四种基本运算。 3DES 加密算法加密算法 l3DES又称Triple DES,是DES加密数据

6、的一种模式,它使用3条56位的密钥对 ,数 据进行三次加密。数据加密标准(DES)是美国的一种由来已久的加密标准,它使 用对称密钥加密法,并于1981年被ANSI组织规范为ANSI X.3.92。DES使用56位密 钥和密码块的方法,而在密码块的方法中,文本被分成64位大小的文本块然后再进 行加密。比起最初的DES,3DES更为安全。 l3DES(即Triple DES)是DES向AES过渡的加密算法(1999年,NIST将3- DES指定为过渡的加密标准),是DES的一个更安全的变形。它以DES为基 本模块,通过组合分组方法设计出分组加密算法,其具体实现如下:设Ek() 和Dk()代表DES

7、算法的加密和解密过程,K代表DES算法使用的密钥,P代 表明文,C代表密文,这样, 设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥, P代表明文,C代表密表,这样, 3DES加密过程为:C=Ek3(Dk2(Ek1(P) 3DES解密过程为:P=Dk1(EK2(Dk3(C) 数据传输安全控制的基本要求数据传输安全控制的基本要求 数据传输安全控制要求包括以下五个方面: a) 密钥管理机制:在技术上实施严格和可靠的密钥分配过 程。 b) 个人标识码(PIN)的加密及转换机制:不允许 PIN 的 明码在通信线路上和人工可操作的存储媒体上出现。 c) 对交易报文作来源正确

8、性鉴别的机制(MAC)。 d) 所有入网机构采用硬件加密装置。 e) 点对点的数据加解密网络机制。 数据加密传输环境的基本要求数据加密传输环境的基本要求 报文数据由入网机构进入CUPS前应已被加密。入网机构从CUPS中得到的报文数据 也是加密数据。网络中CUPS的加密机与各入网机构加密机组成了一个点对点的数据 加解密网络。CUPS与各联网入网机构分别约定数据密钥。 各层次密钥简介各层次密钥简介 各层密钥的结构、生成方法、加密解密对象、存储地点、长度、被保护方式等表示如上: 密钥的产生密钥的产生 l主密钥的产生 主密钥用人工方式输入。主密钥由三部分构成,分别由三个人掌管。为了保证输入 的正确性,

9、每一部分的密钥必须输入两次,且两次输入必须一致,否则输入失败。 在三个人分别输入三部分密钥后,加密机作奇偶校验检查。奇偶校验正确时,加密 机产生主密钥。主密钥必须储存在硬件加密机中,受硬件设备的保护。一旦硬件加 密机受到非授权的操作,主密钥会自动销毁。 l成员主密钥(MMK)的产生 MMK由CUPS和入网机构各自产生一部分,分别输入到双方的加密机中合成MMK。 也可由双方商定MMK的产生办法。 l数据密钥的产生 PIK与MAK统称为数据密钥,由硬件加密机中的随机发生器产生。密钥产生后,硬 件加密机将检查密钥的有效性。弱密钥和半弱密钥将被剔除。 CUPS的加密机产生 数据密钥,入网机构接收和储存

10、CUPS发来的数据密钥。当入网机构需要新密钥的时 侯,必须向CUPS发出密钥重置申请报文。 密钥保存示意图密钥保存示意图 成员密钥一般通过设备管理员输入到端机的密码键盘中,PIN密钥、 MAC密钥通过密钥申请交易,主机从加密机中取得传送到端机 主机前置机 负责密钥处理 加密机 主密钥 成员密钥 PIN密钥 MAC密钥 自助设备 成员密钥 PIN密钥 MAC密钥 PIN的加密和解密的加密和解密 当报文经受理方进入银行卡网络时,持卡人的个人标识码(PIN)已经用受理方的PIK加 密。CUPS将PIN用受理方的PIK解密后,立即用发卡方的PIK加密,再发往发卡方。 PIN 是以 64 位二进制数参与

11、加密和解密运算的, PIN 的明码在这个数中的分布, 称为PIN数据块。在CUPS和入网机构之间,PIN数据块符合ISO 9564-1 BankingPersonal Identification Number Management and Security,其格 式如下图所示: 注1:C控制码 B0000 注2:NPIN 的长度(4-bit) 注3:P4-bit 二进制 PIN 的数码 注4:P/F4-bit 二进制 PIN 的数码 / FILLER 注5:4-bit B1111(FILLER) PIN BLOCK PIN的格式应符合ISO公布的ANSI X9.8标准中PIN的两种格式之一:

12、 ANSI X9.8 格式(不带主账号信息) 明文PIN 123456, 则PIN BLOCK 为0 x06 0 x12 0 x34 0 x56 0 xFF 0 xFF 0 xFF 0 xFF PIN BLOCK ANSIX9.8 格式(带主账号信息) PIN BLOCK为PIN按位异或主账号(PAN)。 PAN格式如下表所示: PIN 明文:123456 磁卡上的PAN:1234 5678 9012 3456 78 截取下的PAN:6789 0123 4567 则用于PIN加密的PAN为:0 x00 0 x00 0 x67 0 x89 0 x01 0 x23 0 x45 0 x67 则PIN

13、 BLOCK 为: 0 x06 0 x12 0 x34 0 x56 0 xFF 0 xFF 0 xFF 0 xFF 异或: 0 x00 0 x00 0 x67 0 x89 0 x01 0 x23 0 x45 0 x67 结果为:0 x06 0 x12 0 x53 0 xDF 0 xFE 0 xDC 0 xBA 0 x98 PIN的加密方法的加密方法 将根据上述步骤生成的PIN BLOCK输入到硬件 加密机中,并与存储在硬件加密机中的PIK用单 倍长密钥算法或双倍长密钥算法计算,即可得到 PIN的密文。 联机报文联机报文 MAC 的计算方法的计算方法 报文来源正确性鉴别(MAC-Message

14、Authentication Code)是一种判别报文来源是 否正确,以及报文在发送途中是否被篡改的计算 方法。 MAC算法取自于ISO8731-1992 Approved Algorithms for Authentication。 MAC 报文域的选择报文域的选择 MAC域的选择采用系统约定的方式,MAC算法采用密 文块链接(CBC)的模式。 参与MAC计算的数据元集,一般包括以下数据域: 具有唯一性的数据域(流水号、日期、时间等) 表征报文特征的数据域(报文类型、交易种类等) 交易相关数据域(卡号、金额、应答码等) MAC 字符的选择字符的选择 对所选择的MAC报文域,应进一步作字符处理

15、。除去一 些冗余信息,以提高MAC的质量。处理方法 如下: a) 带长度值的域在计算 MAC 时应包含其长度值信息; b) 在域和域之间插入一个空格; c) 所有的小写字母转换成大写字母; d) 除了字母(A-Z),数字(0-9),空格,逗号(,)和点号(.) 以外的字符都删去; e) 删去所有域的起始空格和结尾空格; f) 多于一个的连续空格,由一个空格代替。 MAB组成块组成块 MAB计算.txt, 函数是一个cb8583报文处理mac的例子。 MAC 块块(MAB)的构成的构成 数据从报文中选择出来后,经MAC字符选择处 理,然后构成MAB(Message Authentication

16、Block)。构成MAB的方法是: 将MAC字符选择处理后的数据按64bit划分成 64bit的块,一直划分到数据的最后一块,它的 位数小于或等于64bit,不满64bit时补二进制0。 单倍长密钥算法(单倍长密钥算法(X9.9 CBC) 将MAB中的每8个字节分为一组(最后一组如不足8个字 节,则右补0X00),用MAK作为单倍长密钥 依次进行如下操作: a) 进行单倍长密钥运算; b) 将运算结果与后一组 8 个字节的 MAB 异或,结果 取代后一组,继续进行操作。对最后一组进行单倍长密 钥运算,得出 8 个字节的加密值。 但有一点需要注意,由于有可能在重置PIN密钥时,新 产生的PIN密

17、钥是128字节的双倍长密钥,因此此时计算 请求和应答报文中的MAC值都应采用双倍长密钥算法。 MAC X9.19计算方法计算方法 密钥长度:双倍长 MBK:整个传输报文体 加密过程:将MAB中的每8个字节分为一组(最后一组如不足8个字节, 则右补0X00),用MAK1为双倍长密钥的前半部分,MAK2为双倍长密钥的 后半部分。 依次进行如下操作: a) 利用MAK1进行单倍长密钥运算; b) 将运算结果与后一组 8 个字节的 MAB 异或,结果取代后一组,继续进 行操作。对最后一组进行双倍长密钥运算,得出 8 个字节的加密值。 X9.19算法的例子算法的例子 JSDFun.java 中getMA

18、Cstr是一个9.19计算的例子。 WEB 自助中的应用自助中的应用 密码键盘介绍: 目前我们的密码键盘的结构: 主密钥区 (0-15) 工作密钥区(0-15) 支持算法3DES算法 密码键盘支持函数密码键盘支持函数 更新密钥 重置密钥 加密数据 解密数据 取PIN数据 取明文字符 WEB 应用上的调用应用上的调用 lselectmainkey:function(o)o.undef(),selectmainkeyover, lselectworkkey:function(o)o.undef(),selectworkkeyover, lupdatemainkey:function(o)o.und

19、ef(),updatemainkeyover,datao bject, lupdateworkkey:function(o)o.undef(),updateworkkeyover,datao bject, linputpin:function(o)o.undef(),inputpinover,inputnotify, lgetpin:function(o)o.undef(),getpinover, lencrypt:function(o)o.undef(),encryptover,dataobject, ldecrypt:function(o)o.undef(),decryptover,dat

20、aobject, linputdata:function(o)o.undef(),inputdataover,inputnotify, lcloseinput:function(o)o.undef(),closeinputover WEB上的密钥申请流程上的密钥申请流程 JAVA 常用类库介绍常用类库介绍 Kits.jar(加密类相关函数) rtl.kits.crypt.des.Des rtl.kits.crypt.des.TripleDesCrypter rtl.kits.crypt.CryptHelper DES算法工具使用算法工具使用 DES算法工具使用算法工具使用 DES算法工具使用算法工具使用 ECB(Electronic Code Book) ECB(Electronic Code Book) 在 ECB 模式中,每块明文都是独立于其他块加 密的。虽然这样做比较高效(可以并行

温馨提示

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

评论

0/150

提交评论