DES
单钥密码体制:加密解密用同一把密钥;不足在于密钥的管理和传送
SHA和MD5
消息摘要:数据块生成一个数字指纹,无论数据块的大小长度。
RSA
公钥密码:公开的加密密钥,不公开的解密密钥。
数字签名DSA
对数字指纹进行RSA加密。两个优势,发送者不能抵赖(如何保证?),接受者能够验证正确性,由于加密密钥是公开的。
数字签名使用私钥来签名的。
PKI原理
PKI 即公共密钥体系。它利用公共密钥算法的特色,创建一套证书发放、管理和使用的体系,来支持和完成网络系统中的身份认证、信息加密、保证数据完整性和抗抵赖性。PKI 体系能够有多种不一样的体系结构、实现方法和通讯协议。
公共(非对称)密钥算法使用加密算法和一对密钥:一个公共密钥(公钥,public key)和一个私有密钥(私钥,private key)。其基本原理是:由一个密钥进行加密的信息内容,只能由与之配对的另外一个密钥才能进行解密。公钥能够普遍地发给与本身有关的通讯者,私钥则须要十分安全地存放起来。使用中,甲方能够用乙方的公钥对数据进行加密并传送给乙方,乙方可使用本身的私钥完成解密。公钥经过电子证书与其拥有者的姓名、工做单位、邮箱地址等捆绑在一块儿,由权威机构(CA, Certificate Authority)认证、发放和管理。把证书交给对方时就把本身的公钥传送给了对方。证书也能够存放在一个公开的地方,让别人可以方便地找到和下载。
公共密钥方法还提供了进行数字签名的办法:签字方对要发送的数据提取摘要并用本身的私钥对其进行加密;接收方验证签字方证书的有效性和身份,用签字方公钥进行解密和验证,确认被签字的信息的完整性和抗抵赖性。
公共密钥方法一般结合使用对称密钥(单密钥)方法,由计算效率高的对称密钥方法对文件和数据进行加密。
目前在 Internet 上主要使用 RSA 公共密钥方法,密钥长度 512 或 1024 位,是普遍使用的 SSL/TLS 和S/MIME 等安全通讯协议的基础。
加密
数据加密技术从技术上的实现分为在软件和硬件两方面。按做用不一样,数据加密技术主要分为数据传输、数据存储、数据完整性的鉴别以及密钥管理技术这四种。
在网络应用中通常采起两种加密形式:对称密钥和公开密钥,采用何种加密算法则要结合具体应用环境和系统,而不能简单地根据其加密强度来做出判断。由于除了加密算法自己以外,密钥合理分配、加密效率与现有系统的结合性,以及投入产出分析都应在实际环境中具体考虑。
对于对称密钥加密。其常见加密标准为DES等,当使用DES时,用户和接受方采用64位密钥对报文加密和解密,当对安全性有特殊要求时,则要采起IDEA和三重DES等。做为传统企业网络普遍应用的加密技术,秘密密钥效率高,它采用KDC来集中管理和分发密钥并以此为基础验证身份,可是并不适合Internet环境。
在Internet中使用更多的是公钥系统。即公开密钥加密,它的加密密钥和解密密钥是不一样的。通常对于每一个用户生成一对密钥后,将其中一个做为公钥公开,另一个则做为私钥由属主保存。经常使用的公钥加密算法是RSA算法,加密强度很高。具体做法是将数字签名和数据加密结合起来。发送方在发送数据时必须加上数据签名,作法是用本身的私钥加密一段与发送数据相关的数据做为数字签名,而后与发送数据一块儿用接收方密钥加密。当这些密文被接收方收到后,接收方用本身的私钥将密文解密获得发送的数据和发送方的数字签名,而后,用发布方公布的公钥对数字签名进行解密,若是成功,则肯定是由发送方发出的。数字签名每次还与被传送的数据和时间等因素有关。因为加密强度高,并且并不要求通讯双方事先要创建某种信任关系或共享某种秘密,所以十分适合Internet网上使用。
常规密钥密码体制
所谓常规密钥密码体制,即加密密钥与解密密钥是相同的。
在早期的常规密钥密码体制中,典型的有代替密码,其原理能够用一个例子来讲明:
将字母a,b,c,d,…,w,x,y,z的天然顺序保持不变,但使之与D,E,F,G,…,Z,A,B,C分别对应(即相差3个字符)。若明文为student则对应的密文为VWXGHQW(此时密钥为3)。
因为英文字母中各字母出现的频度早已有人进行过统计,因此根据字母频度表能够很容易对这种代替密码进行破译。
数据加密标准DES
DES算法原是IBM公司为保护产品的机密于1971年至1972年研制成功的,后被美国国家标准局和国家安全局选为数据加密标准,并于1977年颁布使用。ISO也已将DES做为数据加密标准。
DES对64位二进制数据加密,产生64位密文数据。使用的密钥为64位,实际密钥长度为56位(有8位用于奇偶校验)。解密时的过程和加密时类似,但密钥的顺序正好相反。
DES的保密性仅取决于对密钥的保密,而算法是公开的。DES内部的复杂结构是至今没有找到捷径破译方法的根本缘由。如今DES可由软件和硬件实现。美国AT&T首先用LSI芯片实现了DES的所有工做模式,该产品称为数据加密处理机DEP。
公开密钥密码体制
公开密钥(public key)密码体制出现于1976年。它最主要的特色就是加密和解密使用不一样的密钥,每一个用户保存着一对密钥 公开密钥PK和秘密密钥SK,所以,这种体制又称为双钥或非对称密钥密码体制。
在这种体制中,PK是公开信息,用做加密密钥,而SK须要由用户本身保密,用做解密密钥。加密算法E和解密算法D也都是公开的。虽然SK与PK是成对出现,但却不能根据PK计算出SK。公开密钥算法的特色以下:
一、用加密密钥PK对明文X加密后,再用解密密钥SK解密,便可恢复出明文
写为:DSK(EPK(X))=X
二、加密密钥不能用来解密,即DPK(EPK(X))≠X
三、在计算机上能够容易地产生成对的PK和SK。
四、从已知的PK实际上不可能推导出SK。
五、加密和解密的运算能够对调,即:EPK(DSK(X))=X
在公开密钥密码体制中,最有名的一种是RSA体制。它已被ISO/TC97的数据加密技术分委员会SC20推荐为公开密钥数据加密标准。
数字签名
数字签名技术是实现交易安全的核心技术之一,它的实现基础就是加密技术。在这里,咱们介绍数字签名的基本原理。
以往的书信或文件是根据亲笔签名或印章来证实其真实性的。但在计算机网络中传送的报文又如何盖章呢?这就是数字签名所要解决的问题。数字签名必须保证如下几点:
接收者可以核实发送者对报文的签名;发送者过后不能抵赖对报文的签名;接收者不能伪造对报文的签名。
如今已有多种实现各类数字签名的方法,但采用公开密钥算法要比常规算法更容易实现。下面就来介绍这种数字签名。
发送者A用其秘密解密密钥SKA对报文X进行运算,将结果DSKA(X)传送给接收者B。B用已知的A的公开加密密钥得出EPKA(DSKA(X))=X。由于除A外没有别人能具备A的解密密钥SKA,因此除A外没有别人能产生密文DSKA(X)。这样,报文X就被签名了。 用私钥加密发送给对方。对方只能用本身的公钥打开。以实现核实发送者对报文的签名。
倘若A要抵赖曾发送报文给B。B可将X及DSKA(X)出示给第三者。第三者很容易用PKA去证明A确实发送消息X给B。反之,若是是B将X伪形成X',则B不能在第三者面前出示DSKA(X')。这样就证实B伪造了报文。能够看出,实现数字签名也同时实现了对报文来源的鉴别。
可是上述过程只是对报文进行了签名。对传送的报文X自己却未保密。由于截到密文DSKA(X)并知道发送者身份的任何人,经过查问手册便可得到发送者的公开密钥PKA,于是可以理解报文内容。则可同时实现秘密通讯和数字签名。SKA和SKB分别为A和B的秘密密钥,而PKA和PKB分别为A和B的公开密钥。
密钥的管理
对称密钥加密方法致命的一个弱点就是它的密钥管理十分困难,所以它很难在电子商务的实践中获得普遍的应用。在这一点上,公开密钥加密方法占有绝对的优点。不过,不管实施哪一种方案,密钥的管理都是要考虑的问题。当网络扩得更大、用户增长更多时尤为如此。一家专门从事安全性咨询的公司Cypress Consulting的总裁CyArdoin说:“在全部加密方案中,都必须有人来管理密钥。”
目前,公认的有效方法是经过密钥分配中心KDC来管理和分配公开密钥。每一个用户只保存本身的秘密密钥和KDC的公开密钥PKAS。用户能够经过KDC得到任何其余用户的公开密钥。
首先,A向KDC申请公开密钥,将信息(A,B)发给KDC。KDC返回给A的信息为(CA,CB),其中,CA=DSKAS(A,PKA,T1),CB=DSKAS(B,PKB,T2)。CA和CB称为证书(Certificate),分别含有A和B的公开密钥。KDC使用其解密密钥SKAS对CA和CB进行了签名,以防止伪造。时间戳T1和T2的做用是防止重放***。
最后,A将证书CA和CB传送给B。B得到了A的公开密钥PKA,同时也可检验他本身的公开密钥PKB。
PKI的主要目的是经过自动管理密钥跟证书,能够为用户创建起一个安全的网络运行环境,使用户能够在多种应用环境下方便的使用加密和数字签名技术,从而保证网上数据的机密性,完整性,有效性。
数据的机密性是指数据在传输过程当中不能被非受权者偷看
数据的完整性是指数据在传输过程当中不能被非法的窜改
数据的有效性是指数据不能被随便否定
一个有效的PKI系统必须是安全的,透明的,用户在得到加密和数字签名服务时,是不须要详细了解PKI怎样管理证书和密钥的。
密钥是一种用来加密或解密信息的值,即便算法是公开的,也不会破坏其安全性,由于数据若是没有密钥则没法读取。
PKI 是一种新的安全技术,它由公钥加密技术,数字证书,证书发放机构(CA),注册权威机构(RA)等基本成分共同组成。
数字证书用于internet intranet extranet 上的用户身份验证
CA是一个可信任的实体,它根据CA颁发策略负责发布,更新和吊销证书
注册权威机构RA 接受用户的请求,负责将用户的有关申请信息存档备案,并存储在数据库中,等待审核,并将审核经过的证书请求发送给证书颁发机构。RA分担了CA的部分任务,管理更方便。
比较成熟的对称加密 DES 3DES IDEA
非对称加密的特色
密钥是成对出现的,这两个密钥互不相同,两个密钥能够互相机密和解密
不能根据一个密钥来推算得出另外一个密钥
公钥对外公开,私钥只有私钥的持有人才知道
私钥应该由密钥的持有人妥善保管
接收方生成一对密钥(公钥和私钥),并将公钥向外传递公开
获得该公钥的发送方使用接收方的公钥,对信息进行加密后,再发送给接受方
接受方受到信息后,再用本身的私钥对信息进行解密
非对称加密算法的保密性比较好,它消除了最终用户交换密钥的须要,但加密和解密花费时间长,速度慢,它不适合对文件加密,而只适合用于少许数据进行加密。由于,在实际应用中,将非对称加密和对称加密混合使用。
发送方用对称加密的方法,将文件加密后传给对方
发送方再将对称密钥(即发送方和接受方应该共同拥有的密钥)经过非对称加密的方法加密后传给对方
接收方使用私钥解密获得对称密钥
用对称密钥解密去解读对称加密的密文,从而获得明文信息
公认的非对称加密算法是 RSA 算法
我发给的人。确保不被别人所获得。是利用加密算法
给个人人。我肯定是这我的发的。用的是数字签名。有不可抵赖性
HASH算法也称为杂凑算法,这是一个简单的不可逆过程。HASH算法在确保文件的完整性和不可更改性上也有和好的用途。
输入一个长度不固定的字符串,返回一串固定长度的字符串,又称为HASH值,一般也称为杂凑值(HASH Value)
每个消息输入单项杂凑函数中,将产生一个杂凑值,这个杂凑值能够保证输入消息的惟一性(不一样杂凑值表示不一样输入消息)
若是经过一个不安全的传输通道的消息在传输前的杂凑值和消息经传输后的杂凑值相同,那么能够认为接受到的信息在很高的几率上与发送消息是相同的,从而能够保证传输消息的完整性
在某一特定的时间内,没法查找经HASH操做后生成特定HASH值的原报文。
也没法查找两个经HASH操做后生成相同HASH值的不一样报文
HASH 算法经常使用的有SHA 和 MD5
数据加密只能保证所发送的数据的机密性,确不能彻底保证数据的完整性和不可抵赖性,即不能保证数据在传递过程当中不被人篡改和不被人冒名顶替发送。
数字签名提供了身份验证和数据完整性,使接受方可确认该发送方的身份标识,并证明消息在传递过程当中内容没有被篡改。这样能够防止某个消息的发送方试图经过替换另外一个用户的身份发送消息。
消息有签发者即发送方本身签名发送,签名者不可否认或难以否定
消息自签发到接受这段过程当中不曾作过修改,签发的消息是真实的。
数字签名页能够用于时间戳,便可以同时签署消息发送的时间。用户能够用他的私钥签名消息和生成时间戳,证明该消息在某一段时间中存在。数字签名一样能够用来确认某一公钥属于某人。由于对消息进行数字签名时,能够产生一个表明该消息的消息摘要。该消息摘要经过发送方的私钥加密的,接受方可使用发送方的公钥进行解密。
发送方签名某个消息时,将建立一个消息摘要(用HASH算法)
发送方用本身的私钥加密消息摘要
将消息摘要作为消息的附件和消息一块儿发送给接收方
当接收方收到消息后,就用该发送方的公钥解密此消息摘要
同时,接受方再用发送方的公钥解密消息,而后用一样的算法建立出一个新的消息摘要,并将他与解密的消息摘要进行比较。
若是两个消息摘要互相匹配,则可保证完整性,签名就会认为是有效的。
过程
发送方
1 原文+随机密钥(对称)--用随机密钥加密原文
2 原文+HASH 算法--消息摘要
3 随机密钥(对称)+接受方的公钥--只有接受方的私钥才能打开取得对称密钥
4 消息摘要+发送方私钥--接受方用发送方公钥解开取得摘要消息
以上四个过程最后生成了 加密数据和加密的摘要消息
接受方
1 首先用本身的私钥解开发送过来的加密的对称密钥
2 取得对称密钥就能够解开加密的原文
3 用发送方的公钥解开加密的消息摘要
4 用解开的原文用一样的HASH算法算出一个消息摘要
5 对比传过来的在发送方的消息摘要和如今接受的文章的消息摘要是否匹配。匹配则说明信息没有被改动过。
其中使用了对称密钥 非对称的公钥 私钥 还有HASH 算法
数据通过了加密。若是想解开数据就必须有接受方的私钥。但是私钥是不传输的。因此很难破解数据。可是这个加密是使用接受方的公钥加密的。而公钥是公开的。因此有人能够采用接受方的公钥再伪造数据部分。这样和数据摘要一块儿发给接受方。由于是采用接受方公钥所加密的。因此接受方能够打开被篡改的数据。但是这种篡改的数据再通过HASH算法没法跟发送过来的消息摘要相同。从而被证实是篡改的或被有损的。而由于消息摘要是用发送方的私钥来加密的。若是要伪造就必须有发送方的私钥。而发送方的私钥也是不在网络上传送的。这样只有获得双方的私钥才能伪造。
数字签名通常不采用非对称加密算法 RSA等。而是发送方对整个数据进行变换,获得一个值,将其做为消息摘要和签名,接受者使用发送者的公钥对消息摘要进行解密运算。若是其结果与原摘要一致,则此数字签名有效,证实对方的身份是真实的。通常数字签名中使用的加密算法有HASH算法,安全的HASH算法等。再HASH算法中,目前比较多的是MD5。
接受方还必须有一个机制,以确保密钥对是属于真正的发送者的。而不是属于没个发送方的模仿者的。这是经过受信任的第三方颁发的证书来完成的,该证书证明了公钥全部者的身份标识。