信息安全技术第3章个人数字证书与CA认证3.1个人数字证书与CA认证3.2加密技术与DES加解密算法3.3认证技术与MD5算法3.1.1个人数字证书3.1.2实验与思考3.1个人数字证书与CA认证数字证书又称数字标识,是用来标志和证明网络通信双方身份的数字信息文件。数字证书一般由权威、公正的第三方机构即CA(CertificateArchitecture)中心签发,包括一串含有客户基本信息及CA签字的数字编码。在网上进行电子商务活动时,交易双方需要使用数字证书来表明自己的身份,并使用数字证书来进行有关的交易操作。3.1个人数字证书与CA认证通俗地讲,数字证书就是个人或单位在因特网的身份证。数字证书主要包括三方面的内容:证书所有者的信息证书所有者的公开密钥证书颁发机构的签名3.1.1个人数字证书标准的X.509数字证书包含(但不限于)以下内容:1)证书版本信息;2)证书序列号,每个证书都有一个唯一的证书序列号;3)证书所使用的签名算法;4)证书的发行机构名称(命名规则一般采用X.500格式)及其私钥的签名;5)证书的有效期;6)证书使用者的名称及其公钥的信息。3.1.1个人数字证书以数字证书为核心的加密技术可以对网络上传输的信息进行加密和解密、数字签名和签名验证,以确保网上传递信息的机密性、完整性,以及交易实体身份的真实性,签名信息的不可否认性,从而保障网络应用的安全性。3.1.1个人数字证书数字证书采用公钥密码体制,即利用一对互相匹配的密钥进行加密、解密。每个用户拥有一把仅为本人所掌握的私有密钥(私钥),用它进行解密和签名;同时拥有一把公共密钥(公钥)并可以对外公开,用于加密和验证签名。3.1.1个人数字证书当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样,信息就可以安全无误地到达目的地了,即使被第三方截获,由于没有相应的私钥,也无法进行解密。通过数字手段保证加密过程是一个不可逆过程,即只有用私有密钥才能解密。在公开密钥密码体制中,常用的是RSA体制。3.1.1个人数字证书用户也可以采用自己的私钥对信息加以处理,由于密钥仅为本人所有,这样就产生了别人无法生成的文件,也就形成了数字签名。采用数字签名,能够确认以下两点:保证信息是由签名者自己签名发送的,签名者不能否认或难以否认。保证信息自签发后到收到为止未曾作过任何修改,签发的文件是真实文件。3.1.1个人数字证书数字证书可用于发送安全电子邮件、访问安全站点、网上证券、网上招标采购、网上签约、网上办公、网上缴费、网上税务等网上安全电子事务处理和安全电子交易活动等。3.1.1个人数字证书根据加密密钥和解密密钥是否相同或本质上相同,即从其中一个容易推出另一个,可将现有的加密体制分为两种,即单钥加密体制和双钥加密体制(又称公开密钥体制)。前者的加密密钥和解密密钥或者相同或者本质上相同,即从其中一个可以很容易的推出另一个,其典型代表是美国的数据加密标准(DES);后一种加密体制中的加密密钥和解密密钥不相同,并且从其中一个很难推出另一个,因此它的加密密钥可以公开,而解密密钥可以由用户自己保存。3.1.1个人数字证书在公开密钥体制中,应用得最多的是RSA体制。RSA算法是由Rivest,Shamir和Adleman于1978年提出的,曾被ISO/TC97的数据加密委员会SC20推荐为公开数据加密标准。RSA体制是根据寻求两个大素数容易,而将他们的乘积分解开则极其困难这一原理来设计的,其安全性在于对大数N的分解极其困难。例如,用每一微秒做一次操作的计算机,分解100位的十进制数N,需要时间为74年。3.1.1个人数字证书本节实验与思考的目的是:1)了解中华人民共和国《电子签名法》及其关于电子认证服务的相关规定。2)熟悉CA认证的基本原理和作用,掌握数字证书的申请和使用过程。3.1.2实验与思考第3章个人数字证书与CA认证3.1个人数字证书与CA认证3.2加密技术与DES加解密算法3.3认证技术与MD5算法3.2.1古典密码算法3.2.2单钥加密算法3.2.3数据加密标准DES算法3.2.4实验与思考3.2加密技术与DES加解密算法密码学是研究数据的加密及其变换的学科,它集数学、计算机科学、电子与通信等诸多学科于一身。进入20世纪80年代,随着计算机网络,特别是因特网的普及,密码学得到了广泛的重视。如今,密码技术不仅服务于信息的加密和解密,还是身份认证、访问控制、数字签名等多种安全机制的基础。3.2加密技术与DES加解密算法信息安全主要包括系统安全和数据安全两个方面。系统安全一般采用防火墙、防病毒及其他安全防范技术等措施,属于被动型安全措施;数据安全则主要采用现代密码技术对数据进行主动的安全保护,如数据保密、数据完整性、身份认证等技术。3.2加密技术与DES加解密算法加密技术包括密码算法设计、密码分析、安全协议、身份认证、消息确认、数字签名、密钥管理、密钥托管等技术,是保障信息安全的核心技术3.2加密技术与DES加解密算法古典密码大都比较简单,一般根据字母的统计特性和语言学知识来加密,在可以用计算机进行密码分析的今天,很容易被破译。古典密码虽然现在已经很少采用,但研究这些密码算法的原理,对于理解、构造和分析现代密码是十分有益的。古典密码算法主要有代码加密、替换加密、变位加密、一次性密码簿加密等几种算法。3.2.1古典密码算法传统加密方法的统计特性是这类算法致命的缺陷。为了提高保密强度,可将这几种加密算法结合使用,形成秘密密钥加密算法。由于可以采用计算机硬件和软件相结合来实现加密和解密,算法的结构可以很复杂,有很长的密钥,使破译很困难,甚至不可能。3.2.2单钥加密算法由于算法难以破译,可将算法公开,攻击者得不到密钥,也就不能破译。因此,这类算法的保密性完全依赖于密钥的保密,且加密密钥和解密密钥完全相同或等价,又称为对称密钥加密算法,其加密模式主要有序列密码(也称流密码)和分组密码两种方式。3.2.2单钥加密算法流密码是将明文划分成字符(如单个字母),或其编码的基本单元(如0、1数字),字符分别与密钥流作用进行加密,解密时以同步产生的同样的密钥流解密。流密码的强度完全依赖于密钥流序列的随机性和不可预测性,其核心问题是密钥流生成器的设计,流密码主要应用于政府和军事等国家要害部门。3.2.2单钥加密算法根据密钥流是否依赖于明文流,可将流密码分为同步流密码和自同步流密码,目前,同步流密码较常见。由于自同步流密码系统一般需要密文反馈,因而使得分析工作复杂化,但其具有抵抗密文搜索攻击和认证功能等优点,所以这种流密码也是值得关注的研究方向。3.2.2单钥加密算法分组密码是将明文消息编码表示后的数字序列x1,x2,…,xi,…划分成长为m的组x=(x0,x1,…,xm-1),各组(长为m的矢量),分别在密钥k=(k0,k1,…,kL-1)控制下变换成等长的输出数字序列y=(y0,y1,…,yn-1)(长为n的矢量),其加密函数E:Vn×K→Vn,Vn是n维矢量空间,K为密钥空间。3.2.2单钥加密算法分组密码与流密码的不同之处在于输出的每一位数字不是只与相应时刻输入的明文数字有关,而是还与一组长为m的明文数字有关。在相同密钥条件下,分组密码对长为m的输入明文组所实施的变换是等同的,所以只需要研究对任一组明文数字的变换规则。这种密码实质上是字长为m的数字序列的代替密码。通常取n=m,若nm,则为有数据扩展的分组密码;若nm,则为有数据压缩的分组密码。3.2.2单钥加密算法围绕着单钥密钥体制,密码学工作者已经开发了许多行之有效的单钥加密算法,常用的有DES算法、IDEA算法等。3.2.2单钥加密算法DES算法的发明人是IBM公司的W.Tuchman和C.Meyer。美国商业部国家标准局(NBS)于1973年5月和1974年8月两次发布通告,公开征求用于计算机的加密算法,经评选,从一大批算法中采纳了IBM的LUCIFER方案,该算法于1976年11月被美国政府采用,随后被美国国家标准局和美国国家标准协会(ANSl)承认,并于1977年1月以数据加密标准DES的名称正式向社会公布,并于1977年7月15日生效。3.2.3数据加密标准DES算法DES算法是一种对二元数据进行加密的分组密码,数据分组长度为64位(8字节),密文分组长度也是64位,没有数据扩展。密钥长度为64位,其中有效密钥长度56位,其余8值为奇偶校验。DES的整个体制是公开的,系统的安全性主要依赖密钥的保密,其算法主要由初始置换IP、16轮迭代的乘积变换、逆初始置换IP-1以及16个子密钥产生器构成。56位DES加密算法的框图如图3.5所示。3.2.3数据加密标准DES算法图3.556位DES加密算法的框图第2轮迭代初始置换第1轮迭代第16轮迭代64位明文64位密文置换选择2循环左移K1置换选择2循环左移置换选择2循环左移置换选择1K2K1656位密钥逆初始置32位互换DES加密算法框图中,明文加密过程如下:1)将长的明文分割成64位的明文段,逐段加密。将64位明文段首先进行与密钥无关的初始变位处理。2)初始变位后的结果要进行16次的迭代处理,每次迭代的框图相同,但参加迭代的密钥不同,密钥共56位,分成左右两个28位,第i次迭代用密钥Ki参加操作,第i次迭代完成后,左右28位的密钥都作循环移位,形成第i+1次迭代的密钥。3.2.3数据加密标准DES算法3)经过16次迭代处理后的结果进行左右32位的互换位置。4)将结果进行一次与初始变位相逆的还原变换处理得到了64位的密文。3.2.3数据加密标准DES算法上述加密过程中的基本运算包括变位、替换和异或运算。DES算法是一种对称算法、既可用于加密,也可用于解密:解密的过程和加密时相似,但密钥使用顺序刚好相反。3.2.3数据加密标准DES算法DES是一种分组密码,是两种基本的加密组块替代和换位的细致而复杂的结合,它通过反复依次应用这两项技术来提高其强度,经过共16轮的替代和换位的变换后。使得密码分析者无法获得该算法一般特性以外更多的信息:对于DES加密,除了尝试所有可能的密钥外,还没有已知的技术可以求得所用的密钥。DES算法可以通过软件或硬件实现。3.2.3数据加密标准DES算法自DES成为美国国家标准以来,已有许多公司设计并推广了实现DES算法的产品,有的设计专用LSI器件或芯片,有的用现成的微处理器实现,有的只限于实现DES算法,有的则可以运行各种工作模式。3.2.3数据加密标准DES算法本节实验与思考的目的是:1)熟悉加密技术的基本概念,了解加密技术的基本内容。2)用VisualC++实现DES加解密算法,从而深入理解DES加解密算法及其在程序设计中的实现过程。3.2.4实验与思考第3章个人数字证书与CA认证3.1个人数字证书与CA认证3.2加密技术与DES加解密算法3.3认证技术与MD5算法3.3.1RSA算法3.3.2认证技术3.2.3实验与思考3.2加密技术与DES加解密算法3.3.1.1双钥加密算法双钥密码体制的加密密钥和解密密钥不相同,它们的值不等,属性也不同,一个是可公开的公钥;另一个则是需要保密的私钥。双钥密码体制的特点是加密能力和解密能力是分开的,即加密与解密的密钥不同,或从一个难以推出另一个。3.3.1RSA算法它可以实现多个用户用公钥加密的消息只能由一个用户用私钥解读,或反过来,由一个用户用私钥加密的消息可被多个用户用公钥解读。其中前一种方式可用于在公共网络中实现保密通信;后一种方式可用于在认证系统中对消息进行数字签名。3.3.1RSA算法双钥加密算法的主要特点如下:1)用加密密钥PK对明文m加密后得到密文,再用解密密钥SK对密文解密,即可恢复出明文m,即DSK(EPK(m))=m2)加密密钥不能用来解密,即DPK(EPK(m))≠m;DSK(ESK(m))≠m3)用SK加