安全

📝 1 篇文章
📅 最新: 2024/12/19

软考复习之安全性措施

# 安全性措施 ## 加密算法 ### 术语 - [明文](https://baike.baidu.com/item/%E6%98%8E%E6%96%87?fromModule=lemma_inlink),即原始的或未加密的[数据](https://baike.baidu.com/item/%E6%95%B0%E6%8D%AE?fromModule=lemma_inlink)。通过[加密算法](https://baike.baidu.com/item/%E5%8A%A0%E5%AF%86%E7%AE%97%E6%B3%95?fromModule=lemma_inlink)对其进行加密 - 密文,明文加密后的格式,是加密算法的输出信息。密文不应为无[密钥](https://baike.baidu.com/item/%E5%AF%86%E9%92%A5?fromModule=lemma_inlink)的用户理解,用于数据的存储以及传输; - 加密,把明文转换为密文的过程; - 加密算法,加密所采用的变换方法,[加密算法](https://baike.baidu.com/item/%E5%8A%A0%E5%AF%86%E7%AE%97%E6%B3%95?fromModule=lemma_inlink)的输入信息为明文和[密钥](https://baike.baidu.com/item/%E5%AF%86%E9%92%A5?fromModule=lemma_inlink); - 密钥,是由数字、字母或特殊符号组成的字符串,用它控制数据加密、解密的过程;加密算法是公开的,[密钥](https://baike.baidu.com/item/%E5%AF%86%E9%92%A5?fromModule=lemma_inlink)则是不公开的 - 解密,对密文实施与加密相逆的变换,从而获得明文的过程; - 解密算法,解密所采用的变换方法。 ### 简介 数据加密是对明文按照某种加密算法进行处理,形成密文。这样一来,密文即使被截获,截获方也无法或难以解码,从而防止泄露信息。 - 秘密密钥加密体制K1=K2:加密和解密采用相同的密钥,因而又称为对称密码体制。因为加密速度快,通常用来加密大批量的数据。 - 公开密钥加密体制K1≠K2:又称不对称密码体制,其加密和解密使用不同的密钥;其中一个密钥是公开的,另一个密钥则是保密的。由于加密速度较慢,所以往往用在数据量较小的通信业务中。 ### 目的 - 提供高质量的数据保护,防止数据未经授权的泄露和未被察觉的修改; - 应具有相当高的复杂性,使得破译的开销超过可能获得的利益,同时又要便于理解和掌握; - 密码体制的安全性应该不依赖于算法的保密,其安全性仅以加密密钥的保密为基础; - 实现经济,运行有效,并且适用于多种完全不同的应用。 ### 具体算法 #### DES算法 **简介**: DES全称为Data Encryption Standard,即数据加密标准,是一种使用[密钥加密](https://baike.baidu.com/item/%E5%AF%86%E9%92%A5%E5%8A%A0%E5%AF%86/5928903?fromModule=lemma_inlink)的块算法 **参数:** DES算法的入口参数有三个:**Key、Data、Mode**。其中Key为7个字节共56位,是DES算法的工作密钥;Data为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。 **历史沿革**: 一般DES算法的密钥长度为56位,为了加速DES算法和RSA算法的执行过程,可以用硬件电路来实现加密和解密。针对DES密钥短的问题,科学家又研制了80位的密钥,以及在DES的基础上采用三重DES和双密钥加密的方法。即用两个56位的密钥K1、K2,发送方用K1加密,K2解密,再使用K1加密。接收方则使用K1解密,K2加密,再使用K1解密,其效果相当于将密钥长度加倍。 #### RSA算法 **简介** 在公开密钥密码体制中,**加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的**。加密算法E和解密算法D也都是公开的。虽然解密密钥SK是由公开密钥PK决定的,但却不能根据PK计算出SK **过程** 先生成一对RSA密钥,**其中之一是保密密钥,由用户保存**;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册。为提高保密强度,RSA密钥至少为500位长。这就使加密的计算量很大。为减少计算量,在传送信息时,常采用传统加密方法与[公开密钥加密](https://baike.baidu.com/item/%E5%85%AC%E5%BC%80%E5%AF%86%E9%92%A5%E5%8A%A0%E5%AF%86/8090774?fromModule=lemma_inlink)方法相结合的方式,即信息采用改进的DES或IDEA对话密钥加密,然后使用RSA密钥加密对话密钥和信息摘要。对方收到信息后,用不同的密钥解密并可核对信息摘要 **算法** 略,可参考[RSA算法_百度百科](https://baike.baidu.com/item/RSA%E7%AE%97%E6%B3%95) #### 其他算法 - 国际数据加密算法(IDEA)在1990年正式公布。这种算法是在DES算法的基础上发展起来的,类似于三重DES.发展IDEA也是因为感到DES具有密钥太短等缺点,IDEA的密钥为128位,这么长的密钥在今后若干年内应该是安全的。 - 1993年4月16日,美国政府推出了cipper密码芯片,该芯片采用美国国家安全局设计的Skipjack加密算法。采用Cipper的加密体制能为信息传输提供高等级的安全和保密,该体制是以防篡改硬件器件(Cipper芯片)和密钥Escrow(第三方托管)系统为基础的。 - 1994年2月14日,美国政府宣布了Escrow加密标准,其加密算法使用Skipjack.该算法采用80位密钥和合法强制访问字段(aw Enforcement Access Fied,EAF),以便在防篡改芯片和硬件上实现。由于使用了80位的密钥,Skipjack算法具有较高的强度。 | 名称 | 对称性 | 特点 | 密钥长度(通常) | |------|-----|--------------|----------| | DES | 对称 | 不够安全 | 56 | | RSA | 不对称 | 安全性高,速度慢 | 512 | | IDEA | 对称 | 速度快,密钥管理复杂困难 | 128 | ## 身份认证技术 数字签名用来保证信息传输过程中信息的完整和提供信息发送者的身份认证和不可抵赖性,该技术利用公开密钥算法对于电子信息进行数学变换,通过这一过程,数字签名存在于文档之中,不能被复制 ### 哈希签名 Hash签名不属于强计算密集型算法,应用较广泛。Hash的主要局限是接收方必须持有用户密钥的副本以检验签名,因为双方都知道生成签名的密钥,较容易攻破,存在伪造签名的可能。 #### MD5 MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的[密码散列函数](https://baike.baidu.com/item/%E5%AF%86%E7%A0%81%E6%95%A3%E5%88%97%E5%87%BD%E6%95%B0/14937715?fromModule=lemma_inlink),**可以产生出一个128位(16[字节](https://baike.baidu.com/item/%E5%AD%97%E8%8A%82/1096318?fromModule=lemma_inlink))的散列值(hash value)**,用于确保信息传输完整一致。 ### RSA签名 RSA既可以用来加密数据,也可以用于身份认证。 RSA算法中数字签名技术实际上是通过一个Hash函数来实现的。数字签名的特点是它代表了文件的特征,文件如果发生改变,数字签名的值也将发生变化。不同的文件将得到不同的数字签名。 ### DSS算法 对数字签名和公开密钥加密技术来说,都会面临公开密钥的分发问题,即如何把一个用户的公钥以一种安全可靠的方式发送给需要的另一方。这就要求管理这些公钥的系统必须是值得信赖的。 所以,必须有一项技术来解决公钥与合法拥有者身份的绑定问题。假设有一个人自称某一个公钥是自己的,必须有一定的措施和技术来对其进行验证。 **数字证书**是解决这一问题的有效方法。它通常是一个签名文档,标记特定对象的公开密钥。**数字证书由一个认证中心(CA)签发**,认证中心类似于现实生活中公证人的角色,它具有权威性,是一个普遍可信的第三方。当通信双方都信任同一个CA时,两者就可以得到对方的公开密钥,从而能进行秘密通信、签名和检验。 #### 数字证书的基本工作原理: 第一,发送方在发送信息前,需先与接收方联系,同时利用公钥加密信息,信息在进行传输的过程当中一直是处于[密文](https://baike.baidu.com/item/%E5%AF%86%E6%96%87/9684333?fromModule=lemma_inlink)状态,包括接收方接收后也是加密的,确保了信息传输的[单一性](https://baike.baidu.com/item/%E5%8D%95%E4%B8%80%E6%80%A7/6153534?fromModule=lemma_inlink),若信息被窃取或截取,也必须利用接收方的[私钥](https://baike.baidu.com/item/%E7%A7%81%E9%92%A5/8973452?fromModule=lemma_inlink)才可解读数据,而无法更改数据,这也有利保障信息的完整性和安全性。 [3] 第二,数字证书的数据[签名](https://baike.baidu.com/item/%E7%AD%BE%E5%90%8D/2890277?fromModule=lemma_inlink)类似于[加密](https://baike.baidu.com/item/%E5%8A%A0%E5%AF%86/752748?fromModule=lemma_inlink)过程,数据在实施加密后,只有接收方才可打开或更改数据信息,并加上自己的[签名](https://baike.baidu.com/item/%E7%AD%BE%E5%90%8D/2890277?fromModule=lemma_inlink)后再传输至发送方,而接收方的[私钥](https://baike.baidu.com/item/%E7%A7%81%E9%92%A5/8973452?fromModule=lemma_inlink)具唯一性和[私密性](https://baike.baidu.com/item/%E7%A7%81%E5%AF%86%E6%80%A7/7896067?fromModule=lemma_inlink),这也保证了签名的[真实性](https://baike.baidu.com/item/%E7%9C%9F%E5%AE%9E%E6%80%A7/6345696?fromModule=lemma_inlink)和[可靠性](https://baike.baidu.com/item/%E5%8F%AF%E9%9D%A0%E6%80%A7/512935?fromModule=lemma_inlink),进而保障信息的安全性。 简单来说,发送方用**公钥**加密信息,接收方收到后用**接收方的私钥**解密