des与3des算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单倍长密钥算法(X9.9 CBC)
将MAB中的每8个字节分为一组(最后一组如不足8个字 节,则右补0X00),用MAK作为单倍长密钥 依次进行如下操作: a) 进行单倍长密钥运算; b) 将运算结果与后一组 8 个字节的 MAB 异或,结果 取代后一组,继续进行操作。对最后一组进行单倍长密 钥运算,得出 8 个字节的加密值。 但有一点需要注意,由于有可能在重置PIN密钥时,新 产生的PIN密钥是128字节的双倍长密钥,因此此时计算 请求和应答报文中的MAC值都应采用双倍长密钥算法。
主密钥(MMK)
相当于密钥钥匙,该密钥主要起到解密下发工作的密钥,该密钥通过报文传送下发到本地,通过主密钥解密后,还原 成真正的密钥,再具体参与数据的加解密。
PIK
参与密钥加密的工作密钥
MAK
用于生成交易报文合法性验证数据(MAC)的密钥
名词解释
银行常用加密算法介绍
2011.5
加密过程解释
什么是加密?
是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已处理的 信息,但因不知解密的方法,仍然无法了解信息的内容。在密码学中,加密是将明 文信息隐匿起来,使之在缺少特殊信息时不可读。虽然加密作为通信保密的手段已 经存在了几个世纪,但是只有那些对安全要求特别高的组织和个人才会使用它。在 20世纪70年代中期,强加密(Strong Encryption)的使用开始从政府保密机构延 伸至公共领域,并且目前已经成为保护许多广泛使用系统的方法,比如因特网电子 商务、手机网络和银行自动取款机等.
3DES 加密算法
3DES又称Triple DES,是DES加密数据的一种模式,它使用3条56位的密钥对 ,数 据进行三次加密。数据加密标准(DES)是美国的一种由来已久的加密标准,它使 用对称密钥加密法,并于1981年被ANSI组织规范为ANSI X.3.92。DES使用56位密 钥和密码块的方法,而在密码块的方法中,文本被分成64位大小的文本块然后再进 行加密。比起最初的DES,3DES更为安全。
MAC X9.19计算方法
密钥长度:双倍长 MBK:整个传输报文体 加密过程:将MAB中的每8个字节分为一组(最后一组如不足8个字节,
则右补0X00),用MAK1为双倍长密钥的前半部分,MAK2为双倍长密钥的 后半部分。 依次进行如下操作: a) 利用MAK1进行单倍长密钥运算; b) 将运算结果与后一组 8 个字节的 MAB 异或,结果取代后一组,继续进 行操作。对最后一组进行双倍长密钥运算,得出 8 个字节的加密值。
明文PIN 123456, 则PIN BLOCK 为0x06 0x12 0x34 0x56 0xFF 0xFF 0xFF 0xFF
PIN BLOCK
—— ANSIX9.8 格式(带主账号信息) PIN BLOCK为PIN按位异或主账号(PAN)。 PAN格式如下表所示:
PIN 明文:123456 磁卡上的PAN:1234 5678 9012 3456 78 截取下的PAN:6789 0123 4567 则用于PIN加密的PAN为:0x00 0x00 0x67 0x89 0x01 0x23 0x45 0x67 则PIN BLOCK 为: 0x06 0x12 0x34 0x56 0xFF 0xFF 0xFF 0xFF 异或: 0x00 0x00 0x67 0x89 0x01 0x23 0x45 0x67 结果为:0x06 0x12 0x53 0xDF 0xFE 0xDC 0xBA 0x98
对所选择的MAC报文域,应进一步作字符处理。除去一 些冗余信息,以提高MAC的质量。处理方法 如下: a) 带长度值的域在计算 MAC 时应包含其长度值信息; b) 在域和域之间插入一个空格; c) 所有的小写字母转换成大写字母; d) 除了字母(A-Z),数字(0-9),空格,逗号(,)和点号(.) 以外的字符都删去; e) 删去所有域的起始空格和结尾空格; f) 多于一个的连续空格,由一个空格代替。
注1:C-控制码 %B0000 注2:N-PIN 的长度(4-bit) 注3:P-4-bit 二进制 PIN 的数码 注4:P/F-4-bit 二进制 PIN 的数码 / FILLER 注5:4-bit %B1111(FILLER)
PIN BLOCK
PIN的格式应符合ISO公布的ANSI X9.8标准中PIN的两种格式之一: —— ANSI X9.8 格式(不带主账号信息)
MAB组成块
MAB计算.txt, 函数是一个cb8583报文处理mac的例子。
MAC 块(MAB)的构成
数据从报文中选择出来后,经MAC字符选择处 理,然后构成MAB(Message Authentication Block)。构成MAB的方法是: 将MAC字符选择处理后的数据按64bit划分成 64bit的块,一直划分到数据的最后一块,它的 位数小于或等于64bit,不满64bit时补二进制0。
数据传输安全控制的基本要求
数据传输安全控制要求包括以下五个方面: a) 密钥管理机制:在技术上实施严格和可靠的密钥分配过 程。 b) 个人标识码(PIN)的加密及转换机制:不允许 PIN 的 明码在通信线路上和人工可操作的存储媒体上出现。 c) 对交易报文作来源正确性鉴别的机制(MAC)。 d) 所有入网机构采用硬件加密装置。 e) 点对点的数据加解密网络机制。
加密作用
加密可以用于保证安全性,但是其它一些技术在保障通信安全方面仍然是必须的, 尤其是关于数据完整性和信息验证;例如,信息验证码(MAC)或者数学签名。另 一方面的考虑是为了应付流量分析。
名词解释
密钥(KEY)
密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的数据.
PIN block
对称算法
对称式加密就是加密和解密使用同一个密钥,通常称之为“Session Key ”这种加 密技术目前被广泛采用,如美国政府所采用的DES加密标准就是一种典型的“对称 式”加密法.
PIN 格式块
非对称算法
非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。 公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有 密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能 解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算 法。
PIN的加密方法
将根据上述步骤生成的PIN BLOCK输入到硬件 加密机中,并与存储在硬件加密机中的PIK用单 倍长密钥算法或双倍长密钥算法计算,即可得到 PIN的密文。
联机报文 MAC 的计算方法
报文来源正确性鉴别(MAC-Message Authentication Code)是一种判别报文来源是 否正确,以及报文在发送途中是否被篡改的计算 方法。 MAC算法取自于《ISO8731-1992 Approved Algorithms for Authentication》。
3DES(即Triple DES)是DES向AES过渡的加密算法(1999年,NIST将3DES指定为过渡的加密标准),是DES的一个更安全的变形。它以DES为基 本模块,通过组合分组方法设计出分组加密算法,其具体实现如下:设Ek() 和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,P代 表明文,C代表密文,这样, 设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥, P代表明文,C代表密表,这样, 3DES加密过程为:C=Ek3(Dk2(Ek1(P))) 3DES解密过程为:P=Dk1((EK2(Dk3(C)))
X9.19算法的例子
JSDFun.java 中getMACstr是一个9.19计算的例子。
WEB 自助中的应用
密码键盘介绍: 目前我们的密码键盘的结构: 主密钥区 (0-15) 工作密钥区(0-15) 支持算法3DES算法
密码键盘支持函数
更新密钥 重置密钥 加密数据 解密数据 取PIN数据 取明文字符
数据加密传输环境的基本要求
报文数据由入网机构进入CUPS前应已被加密。入网机构从CUPS中得到的报文数据 也是加密数据。网络中CUPS的加密机与各入网机构加密机组成了一个点对点的数据 加解密网络。CUPS与各联网入网机构分别约定数据密钥。
各层次密钥简介
各层密钥的结构、生成方法、加密解密对象、存储地点、长度、被保护方式等表示如上:
成员主密钥(MMK)的产生
MMK由CUPS和入网机构各自产生一部分,分别输入到双方的加密机中合成MMK。 也可由双方商定MMK的产生办法。
数据密钥的产生
PIK与MAK统称为数据密钥,由硬件加密机中的随机发生器产生。密钥产生后,硬 件加密机将检查密钥的有效性。弱密钥和半弱密钥将被剔除。 CUPS的加密机产生 数据密钥,入网机构接收和储存CUPS发来的数据密钥。当入网机构需要新密钥的时 侯,必须向CUPS发出密钥重置申请报文。
MAC 报文域的选择
MAC域的选择采用系统约定的方式,MAC算法采用密 文块链接(CBC)的模式。 参与MAC计算的数据元集,一般包括以下数据域: —— 具有唯一性的数据域(流水号、日期、时间等) —— 表征报文特征的数据域(报文类型、交易种类等) —— 交易相关数据域(卡号、金额、应答码等)
MAC 字符的选择
密钥的产生
主密钥的产生
主密钥用人工方式输入。主密钥由三部分构成,分别由三个人掌管。为了保证输入 的正确性,每一部分的密钥必须输入两次,且两次输入必须一致,否则输入失败。 在三个人分别输入三部分密钥后,加密机作奇偶校验检查。奇偶校验正确时,加密 机产生主密钥。主密钥必须储存在硬件加密机中,受硬件设备的保护。一旦硬件加 密机受到非授权的操作,主密钥会自动销毁。
密钥保存示意图
主机前置机
负责密钥处理
加密机
主密钥 成员密钥 PIN密钥 MAC密钥
自助设备
成员密钥 PIN密钥 MAC密钥
成员密钥一般通过设备管理员输入到端机的密码键盘中,PIN密钥、 MAC密钥通过密钥申请交易,主机从加密机中取得传送到端机
PIN的加密和解密
当报文经受理方进入银行卡网络时,持卡人的个人标识码(PIN)已经用受理方的PIK加 密。CUPS将PIN用受理方的PIK解密后,立即用发卡方的PIK加密,再发往发卡方。 PIN 是以 64 位二进制数参与加密和解密运算的, PIN 的明码在这个数中的分布, 称为PIN数据块。在CUPS和入网机构之间,PIN数据块符合《ISO 9564-1 Banking—Personal Identification Number Management and Security》,其 格式如下图所示:
DES 加密算法
数据加密算法(Data Encryption Algorithm,DEA)是一种对称加密算法,很可 能是使用最广泛的密钥系统,特别是在保护金融数据的安全中,最初开发的DEA是 嵌入硬件中的。通常,自动取款机(Automated Teller Machine,ATM)都使用 DEA。它出自IBM的研究工作,IBM也曾对它拥有几年的专利权,但是在1983年已 到期后,处于公有范围中,允许在特定条件下可以免除专利使用费而使用。1977年 被美国政府正式采纳。 DES的原始思想可以参照二战德国的恩格玛机,其基本思想大致相同。传统的密码 加密都是由古代的循环移位思想而来,恩格玛机在这个基础之上进行了扩散模糊。 但是本质原理都是一样的。现代DES在二进制级别做着同样的事:替代模糊,增加 分析的难度。 DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位,产生最大 64 位的分组大 小。这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密的文本块分成 两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运 算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES 使用 16 个循环,使用异或,置换,代换,移位操作四种基本运算。