编码和加密的区别

2017-03-21

IT术语中有编码和加密这两个词语,行业内人士基本都知道编码和加密是两个概念,但业余爱好者却有时候将这两个概念等同化,下面小编跟你讲讲编码和加密的区别。

一、编码与解码的本质区别

编码绝对不是加密。加密是可以算是一种编码的操作。

编码和加密的区别说通俗一点,在于编码是通常希望别人解码的。 而加密是不希望的。

编码更多的是为了转换格式,加密是为了安全。

解码,是编码的逆过程。解密,是加密的逆过程。

二、加密概述

加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。 在航空学中,指利用航空摄影像片上已知的少数控制点,通过对像片测量和计算的方法在像对或整条航摄带上增加控制点的作业。

三、密码学中加密的安全性

加密之所以安全,绝非因不知道加密解密算法方法,而是加密的密钥是绝对的隐藏,现在流行的RSA和AES加密算法都是完全公开的,一方取得已加密的数据,就算知道加密算法也好,若没有加密的密钥,也不能打开被加密保护的信息。单单隐蔽加密算法以保护信息,在学界和业界已有相当讨论,一般认为是不够安全的。公开的加密算法是给黑客和加密家长年累月攻击测试,对比隐蔽的加密算法要安全得多。

在密码学中,加密是将明文信息隐匿起来,使之在缺少特殊信息时不可读。虽然加密作为通信保密的手段已经存在了几个世纪,但是,只有那些对安全要求特别高的组织和个人才会使用它。在20世纪70年代中期,强加密(Strong Encryption) 的使用开始从政府保密机构延伸至公共领域, 并且目 前已经成为保护许多广泛使用系统的方法,比如因特网电子商务、手机网络和银行自动取款机等。

加密可以用于保证安全性, 但是其它一些技术在保障通信安全方面仍然是必须的,尤其是关于数据完整性和信息验证;例如,信息验证码(MAC)或者数字签名。另一方面的考虑是为了应付流量分析。

四、编码的字符种类

字符编码是一套法则,使用该法则能够对自然语言的字符的一个集合(如字母表或音节表),与其他东西的一个集合(如号码或电脉冲)进行配对。

1.文字编码

文字编码(Text encoding)使用一种标记语言来标记一篇文字的结构和其他特征,以方便计算机进行处理。

2.语义编码

语义编码(Semantics encoding),以正式语言乙对正式语言甲进行语义编码,即是使用语言乙表达语言甲所有的词汇(如程序或说明)的一种方法。

3.电子编码

电子编码(Electronic encoding)是将一个信号转换成为一个代码,这种代码是被优化过的以利于传输或存储。转换工作通常由一个编解码器完成。

4.神经编码

神经编码(Neural encoding)是指信息在神经元中被如何描绘的方法。

5.记忆编码

记忆编码(Memory encoding)是把感觉转换成记忆的过程。

6.加密

加密(Encryption)是为了保密而对信息进行转换的过程。

7.译码

译码(Transcoding)是将编码从一种格式转换到另一种格式的过程。

小编推荐:加密技巧

1.不要使用老的加密算法

企业应当停止使用DES等老的加密算法,也不要使用其亲戚3DES(三重数据加密标准)。

2.使用企业支持的最长的加密密钥

建议企业尽可能使用最大长度的密钥,这可以使那些无法访问后门的企业难以破解企业的加密。当今,AES 128可谓强健,但如果可能,不妨使用AES 512 或更长的密钥。

3.多层加密

建议企业尽可能地利用多层加密,这可以增加攻击者的困难。如果有可能,不妨对数据库的每个字段、每个表以及整个数据库都进行加密。

4.安全存储加密密钥

企业面临的最大问题可能并不是加密算法被美国的国安局留下后门,而是密码本身仅仅是加密方案的一部分。对于基础架构的其它要素,如密钥管理系统,企业也必须保证其安全。攻击者都愿意对付安全系统的最薄弱环节。如果攻击者很容易就可以窃取密钥,为什么还会费力破解加密算法呢?

有的企业将保护其数据的密钥给第三方,尤其是在企业将数据存储在公共云中并由云供应商加密和保护时。这里的问题是,企业无法控制密钥,而是必须相信云供应商的雇员会安全地保存密钥。

如果企业可以实施一种可以将密钥控制在云中的加密系统,就会安全得多。自动处理加密的云加密网关可以帮助公司实现这种安全。

5.确保正确实施加密

事实上,实施加密系统并非易事,因为它有许多动态部件,任何一个部件都有可能成为一个薄弱环节。你必须进行大量调查,确保正确实施加密。

在实施加密过程中,哪些方面容易出错?除了密钥容易遭受攻击,还有CBC(密码分组链接)的实施方式。使用CBC,可以用同样长度的随机文本块(也称为初始化向量)对纯文本进行异或运算,然后对其进行加密,产生一个加密文本块。然后,将前面产生的密文块作为一个初始化向量对下一个纯文本块进行异或运算。

CBC的正确实施要求在开始每个过程时都有一个新的初始化向量。一个常见的错误是用一个不加改变的静态初始化向量来实施CBC。如果正确实施了CBC,那么,如果我们在两个不同的场合加密了文本块,所生产的密文块就不会相同。

6.不要忽视外部因素

公司几乎无法控制的外部因素有可能破坏加密系统的安全性。例如,SSL依赖于数字证书,而且这些因素依赖于嵌入在浏览器(如IE、火狐、Chrome等)中的根证书颁发机构的完整性。但是,我们如何知道其是否可信,或者这些证书颁发机构不是某外国情报机构的幌子?你是否觉得这听起来牵强附会,但却有可能是事实。

此外,DNS也是不得不重视的弱点。只要DNS被攻克,攻击者就可以使用钓鱼技术绕过加密。

当然,这里强调的是加密问题的各种可能性。一个正确实施的加密系统只能在一种情况下被攻克,即测中密钥,在短时间内猜对密钥并非不可能,但其可能性微乎其微。

更多相关阅读

最新发布的文章