Linux Kernel(Android) 加密算法总结(一)(cipher、compress、digest)

1. Linux内核支持哪些加密算法 ?

    内核支持的加密算法很多,包括:

    对称加密算法,如AES,3DES;

    对称密码体制的发展趋势将以分组密码为重点。分组密码算法通常由密钥扩展算法和加密(解密)算法两部分组成。密钥扩展算法将b字节用户主密钥扩展成r个子密钥。加密算法由一个密码学上的弱函数f与r个子密钥迭代r次组成。混乱和密钥扩散是分组密码算法设计的基本原则。抵御已知明文的差分和线性攻击,可变长密钥和分组是该体制的设计要点。  AES是美国国家标准技术研究所NIST旨在取代DES的21世纪的加密标准。   AES的基本要求是,采用对称分组密码体制,密钥长度的最少支持为128、192、256,分组长度128位,算法应易于各种硬件和软件实现。1998年NIST开始AES第一轮分析、测试和征集,共产生了15个候选算法。1999年3月完成了第二轮AES2的分析、测试。2000年10月2日美国政府正式宣布选中比利时密码学家Joan Daemen 和 Vincent Rijmen 提出的一种密码算法RIJNDAEL 作为 AES.   在应用方面,尽管DES在安全上是脆弱的,但由于快速DES芯片的大量生产,使得DES仍能暂时继续使用,为提高安全强度,通常使用独立密钥的三级DES。但是DES迟早要被AES代替。流密码体制较之分组密码在理论上成熟且安全,但未被列入下一代加密标准。 


    摘要算法,如sha1,md5;

    数据摘要算法是密码学算法中非常重要的一个分支,它通过对所有数据提取指纹信息以实现数据签名、数据完整性校验等功能,由于其不可逆性,有时候会被用做敏感信息的加密。数据摘要算法也被称为哈希(Hash)算法或散列算法。

     SHA(Secure Hash Algorithm)是由美国专门制定密码算法的标准机构—— 美国国家标准技术研究院(NIST)制定的,SHA系列算法的摘要长度分别为:SHA为20字节(160位)、SHA256为32字节(256位)、 SHA384为48字节(384位)、SHA512为64字节(512位),由于它产生的数据摘要的长度更长,因此更难以发生碰撞,因此也更为安全,它是未来数据摘要算法的发展方向。由于SHA系列算法的数据摘要长度较长,因此其运算速度与MD5相比,也相对较慢。

目前SHA1的应用较为广泛,主要应用于CA和数字证书中,另外在目前互联网中流行的BT软件中,也是使用SHA1来进行文件校验的。
MD5(Message-Digest Algorithm 5,消息摘要算法版本5),它由MD2、MD3、MD4发展而来,由Ron Rivest(RSA公司)在1992年提出,目前被广泛应用于数据完整性校验、数据(消息)摘要、数据加密等。MD2、MD4、MD5 都产生16字节(128位)的校验值,一般用32位十六进制数表示。MD2的算法较慢但相对安全,MD4速度很快,但安全性下降,MD5比MD4更安全、速度更快。
目前在互联网上进行大文件传输时,都要得用MD5算法产生一个与文件匹配的、存储MD5值的文本文件(后缀名为 .md5或.md5sum),这样接收者在接收到文件后,就可以利用与 SFV 类似的方法来检查文件完整性,目前绝大多数大型软件公司或开源组织都是以这种方式来校验数据完整性,而且部分操作系统也使用此算法来对用户密码进行加密,另外,它也是目前计算机犯罪中数据取证的最常用算法。


     压缩算法,如deflate。

 

     DEFLATE是同时使用了LZ77算法与哈夫曼编码(Huffman Coding)的一个无损数据压缩算法。它最初是由Phil Katz为他的PKZIP归档工具第二版所定义的,后来定义在RFC 1951规范中。

        人们普遍认为DEFLATE不受任何专利所制约,并且在LZWGIF文件格式使用)相关的专利失效之前,这种格式除了在ZIP文件格式中得到应用之外也在gzip压缩文件以及PNG图像文件中得到了应用。

        DEFLATE压缩与解压的源代码可以在自由、通用的压缩库zlib上找到。


    不过内核好像不支持非对称加密算法。


2. 加密算法源文件位置

     这些算法作为加密函数框架的最底层,提供加密和解密的实际操作。这些函数可以在内核crypto文件夹下,相应的文件中找到。


3.  配置编译选项将加密算法作为模块编入内核

   

Cryptographic options
加密选项

Cryptographic API
    提供核心的加密API支持.这里的加密算法被广泛的应用于驱动程序通信协议等机制中.子选项可以全不选,内核中若有其他部分依赖它,会自动选上

    Cryptographic algorithm manager
        创建加密模版实例,必须要选

    HMAC support
        为IPSec所必须,可为PPPoE提供压缩支持
    Null algorithms
        NULL加密算法(什么也不做),用于IPsec协议的封装安全载荷模块(ESP)
    MD4 digest algorithm
        老旧的摘要算法,已经过时
    MD5 digest algorithm
        主流摘要算法,128位(已被中国山东大学王小云攻破,可以快速找到碰撞)
    SHA1 digest algorithm
        主流摘要算法,160位(已被中国山东大学王小云攻破,可以快速找到碰撞),速度与MD5相当
    SHA256 digest algorithm
        更好的摘要算法,256位,速度较SHA1稍慢

    SHA384 and SHA512 digest algorithms
        更好的摘要算法,384/512位,速度大约只有SHA1的40-50%
    Whirlpool digest algorithms
        最安全的摘要算法,512位,已被列入ISO标准,目前最新版本为3.0(2003年发布)
    Tiger digest algorithms
        号称最快的摘要算法,192位,专门为64位CPU进行了优化
    ECB support
        电子密码本,最简单的加密方法
    CBC support
        密码块链,IPSec需要使用它
    DES and Triple DES EDE cipher algorithms
        老迈的(DES)和尚佳的(Triple DES)对称加密算法
    Blowfish cipher algorithm
        又老又慢的对称加密算法
    Twofish cipher algorithm
        很强的对称加密算法,使用较广
    Twofish cipher algorithms (i586)
        很强的对称加密算法,使用较广(针对i586的版本)
    Serpent cipher algorithm
        很强的对称加密算法
    AES cipher algorithms
        最佳的对称加密算法(Rijndael),128/192/256位,强度最高,快速且节省内存

    AES cipher algorithms (i586)
        最佳的对称加密算法(Rijndael),128/192/256位,强度最高,快速且节省内存(针对i586的版本)
    CAST5 (CAST-128) cipher algorithm
        对称加密算法
    CAST6 (CAST-256) cipher algorithm
        对称加密算法
    TEA, XTEA and XETA cipher algorithms
        较弱的对称加密算法
    ARC4 cipher algorithm
        脆弱的流对称加密算法
    Khazad cipher algorithm
        对称加密算法
    Anubis cipher algorithm
        对称加密算法
    Deflate compression algorithm
        压缩算法,当在IPSec中使用IPCOMP协议时才需要

    Michael MIC keyed digest algorithm
        摘要算法,仅仅用

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值