您好,欢迎访问三七文档
为什么要进行数据加密?很简单:为了数据安全!基本概念•明文:没有经过加密的消息。•密文:使用某种方法被加密的消息。•加密:用某种方法伪装消息以隐藏它的内容的过程。•解密:把密文转变为明文的过程。现代密码学1.密码学----研究密码技术的学科,是数学的一个分支,包括密码编码学和密码分析学。•密码编码学----信息隐蔽使消息保密的技术和科学。•密码分析学----破译密码破译密文的科学和技术。2.密码学的主要目的•提供机密性—保密•鉴别:消息的接收者应该能够确认消息的来源;•完整性:消息的接受者能够验证在传送过程中消息没有被修改;•抗抵赖:消息的发送者在消息发送后无法否认其发送过消息。请注意密码学的目的,这也就是我们使用加密的原因,同时课程的核心也是围绕如何实现这个过程展开的。1.密码学的主要目的•机密性:数据保密•鉴别:消息的接收者应该能够确认消息的来源;•完整性:消息的接受者能够验证在传送过程中消息没有被修改;•抗抵赖:消息的发送者在消息发送后无法否认其发送国消息。传统的密码学•传统的密码学,使用密码算法,一般是一些数学函数。(一般使用两个函数,一个加密函数一个解密函数),电影风语者中的密码员使用的就是典型的传统密码方法。•传统密码学的缺陷:1、受限制,只能在一个组织内使用。大家必须知道相应的加解密算法。2、对人要求过高,一旦一个用户离开组织就会使保密荡然无存。(这就是为什么风语者中:为什么要保护密码员,为什么当密码员被抓的时候,宁可杀死他也不能落到敌人手里的原因。)3、受限制的密码算法不可能进行质量控制或者标准化。现代密码系统模型及其特点现代密码学:使用密钥(KEY)来进行数据加密,加密和解密都使用同一个密钥,运算都依赖于密钥。算法可以公开,算法的安全性是基于密钥的安全性。现代密码学:由算法、明文、密文和密钥组成。特点加密算法足够强大:仅知密文很难破译出明文。基于密钥的安全性,而不是基于算法的安全性:知道密文和加/解密算法,很难破译出明文。算法开放性:开放算法,便于实现和标准化。密码体制1.对称密码体制•加密密钥与解密密钥相同,所以又叫单钥密码。•著名密码算法:DES2.非对称密码体制•加密密钥与解密密钥不同,而且解密密钥不能根据加密密钥计算出来,所以又叫双钥密码。•著名密码算法:RSA对称密码1.对称密码:加密密钥与解密密钥相同。2.优点是:•安全性高•加解密速度快3.缺点是:•随着网络规模的扩大,密钥管理成为一个难点;•无法解决消息确认问题;(不过可以采用一些业务方法弥补,如:商户号终端号等方式但对内部人员无效)•缺乏自动检测密钥泄露的能力。举例:21.80.66.254/usr/btssrc/twb/encrypt非对称密码1.非对称密码:加密密钥与解密密钥不同,而且解密密钥不能根据加密密钥计算出来。2.优点是:不需要安全信道来传送密钥。3.缺点是:算法复杂,加解密速度慢,一般比单钥密码慢1000倍。攻击分类被动攻击窃听获取消息内容流量分析主动攻击中断修改伪造破坏可用性破坏完整性破坏真实性算法的安全性•根据被破译的难易程度,不同的密码算法具有不同的安全等级。从理论上来说,所有的密码算法总是可以被破译的,那么,算法的安全性怎么判断呢?一般来说:1.如果破译算法的代价大于加密数据的价值,那么你可能是安全的。2.如果破译算法所需的时间比加密数据保密的时间更长,那么你可能是安全的。3.如果用单密钥加密的数据量比破译需要的数据量少得多,那么你可能是安全的。4.如果一个算法用(现在或将来)可得到的资源都不能破译,这个算法可被认为在计算上是安全的。加密方式:硬件加密•硬件加解密是商业或军事上的主流–(1)速度问题:不占用主机处理器资源。–(2)安全性:可进行物理保护。–(3)易于安装:不需使用计算机的电话、传真、数据线路;计算机环境下,使用硬件加密可对用户透明,软件实现,需要在操作系统深层安装,不容易实现。加密方式:软件加密•缺点:安全性差、速度慢、造价高。•优点:使用灵活、修改方便、可移植性好。•采用软件加密时,密钥管理的手段必须可靠,通常对管理人员的要求较高。(特别对软件开发人员)银行卡网络系统的安全需求1.保证用户密码(PIN)的安全。国际信用卡组织在信用卡业务安全规范中有相当明确的要求:“PIN不允许以明码的形式出现在网络系统中的任何地方!”。所以,PIN在生成、存储、传输过程中必须全程保密。2.保证交易信息在传输、交换过程中的完整性。3.安全的密钥管理。这是保证上述两点的必要条件。银行网络解决之道•建立基于硬件加密设备的安全体系,是解决银行卡网络系统安全的有效办法。•现在的银行卡网络安全系统采用的是基于DES/3DES算法的对称密码体制。DES算法•DES算法来自IBM。•DES被NBS(美国国家标准局)采用。•DES被NSA(美国国家安全局)密密修改过,安全性有很大幅度降低。(原DES密钥采用112位,NSA将其修改为56位)。•经过修改的DES算法成为美国联邦标准。•IBM持有专利,但同意其他公司在制造、实现和使用中使用他们的知识产权。•由于DES被NSA修改过,是否存在后门,一直是一个难解的密团。•DES设计之初定义为硬件实现从而实现国家垄断,但由于DES算法的细节被NBS对外公布,最终被程序员利用软件实现了DES算法,NSA认为DES算法的出现是他们20世纪最大的错误。(或许说标准对外的公布)DES算法描述•DES算法是一个分组加密算法,它以64位为分组对数据加密。64位一组的明文从算法的一端输入,64位的密文从另一端输出。DES算法是一个对称算法:加密和解密用的是同一算法。•DES算法的密钥通常为64位,通常用16个16进制的数表示,但每个16进制数的第8位都用作奇偶校验,所以密钥的实际长度是56位,如:6D969D8710FAAE83•DES将密钥作用于明文,经过16轮计算得到密文•DES算法流程图•DES的解密算法和加密算法相同,二者不同的是48位子密钥输入的顺序不同,加密是k1……k16的顺序,解密是K16….K1的顺序。三级密钥体制•银行卡网络安全系统采用了三级密钥管理体制,从上而下依次是主密钥、密钥交换密钥、数据密钥。上级密钥用于加密下级密钥,具体来说:1.主密钥用于加密密钥交换密钥和数据密钥作本地存储;2.密钥交换密钥用于加密数据密钥作网络传输;3.数据密钥用于对数据进行加解密。三级密钥体制示意图三级密钥体制三级密钥体制说明第一层,LMK为本地主密钥,共有50对不同的LMK,它是采用双倍标准的DES密钥(长达112位),它是存放在HSM机内的,它的作用是对所有在本地存放的其它密钥和加密数据进行加密,不同对的LMK用于加密不同的数据或密钥。由于本地存放的其它密钥和加密数据,都是在LMK加密之下。因此,LMK是最重要的密钥。第二层,通常称为密钥加密密钥或传输密钥(Key-encryptingkey),包括TMK、ZMK等密钥。它的作用是加密在通讯线上需要传递的数据密钥。从而实现数据密钥的自动分配。在本地或共享网络中。不同的两个通讯网点使用不同的密钥加密密钥(KEK),从而实现密钥的分工管理,它在本地存放时,处于本地LMK的加密之下。第三层,通常称为数据加密密钥或工作密钥。包括TPK、TAK、ZPK、ZAK、PVK、CVK等密钥,它的作用是加密各种不同的数据。从而实现数据的保密,信息的认证,以及数字签名的功能,这些数据密钥在本地存放时,处于本地LMK的加密之下。LMK本地主密钥•本地主密钥是存入在HSM机内的50对LMK的集合。在HSM机器以外的地方不会以明文形式存放,它采用双倍标准DES密钥(长达112位)实现三重数据加密。所有的密钥和加密数据存放在本地时都必须经过LMK进行加密。HSM投入运行时,必须先产生和装载LMK。•LMK的产生需要银行三位主要的管理人员参与产生,每人输入三组数据(二组十六位的十六进制数,一组八位的十进制数)。。HSM利用这三组数据通过一定的运算产生50对LMK存放在HSM机内的EPROM里供HSM使用。HSM在运行的过程中一旦被打开,这时机内所有LMK就会自动销毁,HSM允许LMKS可改变,但改变后所有通过LMKS进行加密的密钥和数据,需要解密后使用新的LMKS进行加密。更换LMK是一件风险极高的工作,一旦出错,会造成整个银行加密体系的失效。LMK本地主密钥产生过程ZONEMASTERKEY(ZMK)区域主密钥•ZoneMasterKey(ZMK)是处于三级密钥体系的第二级是加密密钥用的密钥,适用于广域网网络中,同一个广域网网络中任何两个通讯网点之间均共用不同的ZMK。ZMK用于加密底层需要传送的数据密钥(ZPK),这样远地密钥就能自动进行交换(无须人工干预)。该密钥可以长期不更改,通常二年更新一次。本地存储时,ZMK是通过LMK04-05进行加密的。区域主密钥(ZMK)的产生•在产生ZMK的时候存在交换中心和成员行的概念,如果在中行网络里,总行就是交换中心,我行就是其中的成员行,在银联网络里银联就是交换中心,中行就是其成员行了。•ZMK的产生,是由交换中心提供两组或者三组16位16进制的明文给各成员行,各成员行收到后,由成员行两名或三名业务主管分别持有,输入本行的加密机,加密机产生被LMK加密后的ZMK密文和CHECKVALUES,将密文抄下,保存到主机数据库里。CHECKVALUES用于与交换中心进行核对明文输入是否输入正确。什么是CHECKVALUES?•由于LMK和ZMK以及TMK的产生都是由两组或者三组由不同人持有的明文输入加密机后产生的,但如果在输入过程中一旦输入错误会造成整个密钥体系无法正常工作,如何避免这种问题呢?•CHECKVALUES就是起到校验输入的明文是否正确的作用,它通过一个加密机通用的算法对明文进行计算得出的一个值,交换中心提供明文时一般会提供相应的CHECKVALUES,或者让成员行将自己加密机产生的CHECKVALUES发给交换中心,由它确定明文是否正确。•需要了解的是:只要明文是一致的CHECKVALUES一定是一样的。CHECKVALUES一致表示输入的明文是正确的,由此产生的相应密文才是正确的。ZONEPINKEY(ZPK)区域工作密钥•区域PIN密钥是一个数据加密密钥,适用于共享网络,它通过ZMK加密在两个(或多个)通讯网点之间进行自动分配(交换密钥),ZPK用于加密两个通讯网点之间需传输的PIN,这样就实现了PIN的保密。ZPK需要经常性地定期更改,在本地存储时(本地指交换中心),它是通过LMK06-07进行加密的。TERMINALMASTERKEY(TMK)终端主密钥•终端主密钥是一个加密密钥用的密钥,(处于三级密钥体系的哪一层?)使用于局域网络中。可以人工地或自动地在以前安装过TMK的基础上分配给通讯的双方且保持双方之间的对称性,它用于在局域网内对新产生的底层的数据加密用的密钥加密(TPK),然后由主机端传输到ATM或POS或其它相似的终端。TMK可以长期不作改动,通常一到二年更换一次,本地存储时通过一对LMK14-15进行加密。注意TMK和ZMK的区别。TERMINALPINKEY(TPK)终端PIN密钥(终端工作密钥)•终端PIN密钥是一个数据加密用的密钥,(处于三层密钥体系的第三层)适用于局域网络中,它是在局域网内通过TMK加密,由终端数据受理者自动分配到终端且保持通讯双方之间的对称性。TPK用于加密在局域网内终端和终端数据受理者之间传送的PIN。本地存储时通过一对LMK14-15进行加密的。TPK需要经常性地定期更换,通常每天更换一次。TERMINALAUTHENTICATIONKEY(TAK)终端认证密钥(MACKEY)•终端认证密钥是一个数据加密用的密钥,适用于局域网内。它在局域网内通过TMK加密由终端数据受理者自动分配到终端,TAK用于局域网内终端与终端数据受理者之间传送信息时,生成和校验一个信息认证代码(MessageAuthenticationCode),从而达到信息认证的目的。TAK需要经常性
本文标题:密码培训教程
链接地址:https://www.777doc.com/doc-5129401 .html