Cryptography Base

0x00:

    本文叙述了基本的加密方式以及常见的加密手段,没有复杂的理论适合入门和知识补充。作为概括并没有太深入具体地讲解,目的可以是形成概念,整体的大致的认识。    


加密的分类:

​ 出于某种叙述的目的,这里将其分为一下四种主要类型:

​ 对称加密(Symmetric Encryption)

​ 非对称加密(Asymmetric Encryption)

​ 哈希(Hashes)

无线加密(Wireless Cryptography)

三种加密

关于密钥长度:

​     对于加密来说密钥长度(key size)是不可忽视的一个因素。通常在相同的加密算法中,密钥越长,加密越强。比如AES-256会比AES-128更强,更难以被破解。

但是,对于不同种的加密算法来说并不意味着密钥长度越大,加密就越strong. 加密的强度是基于加密的算法实现和密钥长度两者共同来衡量的。

对称加密:

    对称加密中,发送方和接收方使用的是相同的密钥。发送方和接收方手里拿的都是同一把钥匙,发送方用它加密数据,然后发送给接收方,接收方用它解密数据。反过来也是可以的。

对称加密的速度是很快的。非常适合用于大容量存储或流媒体应用程序。对称加密的缺点在于,它需要经过一个过程,我们称之为密钥交换(The key exchange)。如果使用对称加密的双方需要用到的是同一把钥匙,那么它们就需要一个中间过程来交换它们的钥匙,这就是这种加密方式的弱点所在。

想象一下两个相隔12000英里的人,它们如何交换它们之间的密钥?无论你是使用电话、信件、email抑或是面对面......都无法避免一个问题就是,在交换信息的过程中可能会被拦截,被窃取。因此导致到你的整个加密的保密性变得受质疑的,变得毫无意义。

下面是一下你应该熟悉的常见对称加密算法:

    DES:

    Data Encryption Standard 数据加密标准, 这是一种原始且古老的加密方式。由IBM公司开发。这种加密方式已经被发现出弱点了,而且容易被破解。这种加密被用在早期的Windows2000以前的版本的系统的原始的密码系统LANMAN hashes中。

    3DES:

    这种加密算法相当于是DES的增强版本。3DES中运用三次DES加密。它比DES要稍微安全一些。

    AES:

    Advanced Encryption Standard 高级加密标准并不是一种特定的加密算法,而是由NIST制定的一个加密标准,这被看作是最强健的加密方式。使用128-,196-,或256-bit 的密钥,至2001年以来一直是以Rijndael算法为主。被用在WPA2,SSL/TLS等许多重视保密性和速度的协议中

    RC4:

    这是一种流加密算法(加密每一字节中的每一个比特位,而不是整个信息块的加密)由Ronald Rivest开发,被用在 VoIP 和 WEP 加密中

    Blowfish:

    这是第一种Bruce Schneier加密算法。它使用可变长密钥,十分安全。它是not patented的,可以被自由使用。

地址:https://www.schneier.com/blowfish.html

    Twofish:

    这是Blowfish加密的加强版本。使用128-或256-bit的密钥,是AES强有力的竞争者。被用在Cryptcat 和 OpenPGP等。同样的可以被大众使用无需授权。

非对称加密:

    非对称加密中的通信双方使用的是不同的密钥。非对称加密的速度相比起对称加密来说十分的慢。因此我们不把它用在大量数据的加密或信息流通信中。这种加密方式恰好解决了密钥交换的问题。

非对称加密主要用在当双方互不认识,想要交换一些微小的信息诸如密钥或其它认证信息如:证书。由于加密速度的限制一般不会用于大量数据的加密中。

下面是一些你应该了解的非对称加密:

Diffie-Hellman模型:

    在密码学领域很多人都把Diffie-Hellman密钥交换过程视为密码学最伟大的发明。没有复杂的数据公式,Diffie和Hellman开发了一种不需要交换密钥的生成密钥的方式,从而解决了对称加密中交换密钥的问题。


一张图清晰描绘了非对称加密的思想

    RSA:

    Rivest, Shamir, and Adleman是一种非对称加密方案,它使用非常大的素数的因子分解作为两个密钥之间的联系。

    PKI:

    Public key infrastructure 公钥基础设施。是一种被广泛应用的使用公私钥交换凭证信息的非对称加密系统

    ECC:

    Elliptical curve cryptography 椭圆曲线加密。随着计算能力的提升,在移动设备中越来越受欢迎。对于相同安全性级别的其它方式,它只需要更小的计算能力以及能耗。ECC依赖于两个函数在同一椭圆曲线上的共享关系。

    PGP:

    Pretty Good Privacy 使用非对称加密计算来保证email信息的私密性和完整性。

Hashes:

    Hashes是一种加密方式。一条信息或密码通过一种不可逆的方式被加密。信息会被加密成一条唯一的hash散列,从散列我们无法获得原来信息的内容,只能作为一种原信息的签名。通常这些hashes的长度是固定的(MD5 hash 通常是32 位字符长度)因此是不能把hash的长度不同来用作解密的因素的。因此,我们不需要得到加密前的原始信息,我们只需要看信息通过hash加密后能否生成和已知的相同的hash信息,来检查被加密文件的完整性。

密码通常是以hash的形式被储存的,当用户试图登录时,系统会拿用户输入的密码进行hash运算,检查运算结果是否与数据库中存储的用户密码的散列信息相一致。因此,即使得到数据库中的hash信息,是不能反推出密码的。

collision:

    冲突,指的是两个不同的输入经过hash计算后得到的是相同的hash值。这就产生了问题,因为我们的设想是hash函数产生的是一对一的映射,因此我们用它的结果作为原始信息的唯一标识。会产生冲突的哈希算法是有缺陷和不安全的。好的hash函数要求出现碰撞的概率是极低的。

下面是一些应该熟悉的hash算法:

    MD4:

    一种早期的hash算法,并且由于产生碰撞的问题已经基本停止使用

    MD5:

    应用最广的HashingSystem. 它是128-bit长度的,生成的是一个32位字符长度的信息摘要。由于计算能力的进步,MD5已不像以前那样安全。

    SHA1:

    NSA开发的,比MD5要安全得多。169-bit的信息摘要,以40个十六进制字符呈现。经常被用在SSL的证书交换,但由于最近发现的缺陷,正因此而遭到摒弃。

    SHA2:

    SHA1的改进版本,算法与SHA1类似。比较新,尚未出现对SHA-2有效的攻击

无线加密:

    由于考虑到速度的原因,无线加密通常是对称加密,像所有的对称加密一样,密钥交换是它的弱点。

    WEP:

    一种原始的无线加密方式,由于存在缺陷已被弃用。使用RC4算法,但由于key size太小了只要24-bit,每5000个数据包中就有一个初始向量IV出现重复,导致它在繁忙的网络中容易遭受攻击。

    WPA:

    是WEP被破解的紧急修复方案。使用更大的key和TKIP算法,让其更难被破解。

    WPA2-PSK:

    采用与共享密钥pre-shared key和AES加密。它使用AP名或SSID为散列加盐。散列在客户端和AP进行身份认证的四次间进行交换。

    WPA2-EnterPrise:

    企业版更加安全,使用128-bit key,AES和一个远程身份认证系统(RADIUS)



本文作为一篇学习记录分享。

内容思想和图片整理自Internet,无意侵犯也无意误导如有冒犯请联系删除,如有错漏望多加指正。

你可能感兴趣的:(Cryptography Base)