加密基础知识

物联网对连接物体的基本要求包括可寻址、可通信、可控制;物联网具有的特征包括全面感知、可靠传递、智能处理。物联网整体上可以分为感知层、网络层和应用层,对应需要考虑各个层次的安全技术,而网络层如果是无线网络还需要考虑无线网络安全技术和互联网安全技术。物联网安全的目标主要是为了保证信息的可靠性、完整性、保密性、隐私等,硬件与软件需要从不同角度进行处理的才能达到物联网的安全要求,而加密技术是实现物联网安全的基础。
加密的目标
理论上一次一密才能达到完全的安全,其他想要做到完全安全是不存在,只要有足够的资源和时间总能解密。因此只需要达到实际的安全即可,达到实际安全的标准:为了破译密码的成本超过了信息本身的价值或时间上超过信息的有效生命周期。加密技术用来对数据进行加密、完整性保护、认证及数字签名等功能上。
加密的分类
密码算法有多种分类,这里只关注目前常用的算法。密码*可以分为对称算法和非对称算法。对称算法在加解密时使用的同样的**,而非对称算法加解密使用的是不同的**。对称算法又分为序列密码算法和分组码算法,序列密码算法是从一个**产生一组加密序列对明文进行加密,而分组码算法需要将数列分为等长的不同组别分别处理。分组码算法要求每个分组足够长、密码数量足够多且变换足够复杂。常见的分组码有DES(Data Encryption Standard)AES(Advanced Encryption Standard)。公钥密码是非对称算法的方法,它使用两个独立的密码:加密密码和解密密码,将解密密码作为私有**,而加密密码作为共有**。公钥密码算法有RSAElGamalDSADiffie-HellmanECC(Elliptical Curve Cryptography,椭圆曲线密码)等。Hash算法又名哈希或散列,hash算法(杂凑)只能用来认证、完整性保护,它属于单向密码*,并不能通过结果解密原始明明文,常见的hash算法有MD5SHA等。RSA等算法可以用来进行数字签名,数字签名的本质就是使用用户独有的密码对报文进行处理,以确定发送方的唯一身份。
分组加密的几种模式
采用分组加密算法时,常见的几种定义模式(参考wiki)ECB(Electronic Codebook)CBC(Cipher Block Chaining)PCBC(Propagating Cipher Block Chaining)CFB(Cipher Feedback)OFB(Output Feedback)CTR(Counter)等。
1、Padding/IV/SV相关概念
由于分组码按照一个确定的分组长度进行加密,而不能保证原始数据分割后刚好是分组长度的倍数,所以最后一个需要增加冗余数据以满足分组长度,增加的内容即为paddingIVSV是同一个概念,Initialization vectorstarting variable,在某些加密模式场景下,需要采用初始的向量进行处理,这个初始向量即为IV/SV
2、ECB (electronic Codebook)
将消息分割成多块,每块单独加密,之间没有联系。
加密基础知识加密基础知识
3、CBC(Cipher Block Chain)
每个分组块的明文和前一块的密文异或运算后再进行加密,由于第一块没有前一块的密文,则需要用IV和明文进行异或运算。
加密基础知识
4、PCBC(Propagating Cipher Block Chaining)
CBC主要差别在于,从第二块开始的分组,明文需要和前一分组明文与密文异或运算的结果去进行异或运算。
加密基础知识加密基础知识
5、CFB(Cipher Feedback)
CBC方式类似,只是后一组数据采用前一组数据方式有差别。注意CFB的解密流程和CBC的加密流程类似一致。
加密基础知识加密基础知识
6、OFB(Output Feedback)
结构和CFB类似(stream cipher,流/序列加密?)
加密基础知识加密基础知识
7、CTR(Counter)
又名ICM(Integer counter mode)SIC(Segmented integer counter )Nonce类似于其他模式上IVcounter可以是函数形式,图示中增1的变化只作为示例。
加密基础知识加密基础知识