A. AES和WPA2-PSK有什么区别
在密码学中又称Rijndael加密法,是美国联邦 *** 采用的一种区块加密标准。
这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。
经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。
2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。
WPA2-PSK:
WPA2 (WPA 第二版) 是 Wi-Fi 联盟对采用 IEEE 802.11i 安全增强功能的产品的认证计划。
简单一点理解,WPA2是基于WPA的一种新的加密方式。
WPA2是WPA的升级版,现在新型的网卡、AP都支持WPA2加密。
WPA2则采用了更为安全的算法。
CCMP取代了WPA的MIC、AES取代了WPA的TKIP。
区别:
WPA2-PSK中可以使用AES算法,但不代表WPA2就是AES。
AES算法应用领域很广,很多软件的加密使用的是AES加密算法。
WPA2-PSK主要应用于无线加密领域,是一种常见的安全性较高的认证类型。
B. AES DES加密有什么区别啊
AES和DES加密的区别:
1、密钥长度不同
AES 密钥长度可以是 128 位,192 位和 256 位。DES 密钥长度在 DES 中为 56 位。
2、轮数不同
AES 轮数取决于密钥长度:10 (128 位), 12 (192 位) 或 14 (256 位)。DES 涉及 16 轮相同的操作。
3、原理不同
AES 结构基于置换排列网络。DES 结构基于 feistal 网络。
4、安全性不同
AES 比 DES 密码更安全,并且是事实上的世界标准。由于 DES 具有已知漏洞,因此很容易被破坏。 3DES (三重 DES) 是 DES 的一种变体,它比通常的 DES 安全。
5、回合不同
AES 中的回合为:字节替换,移位行,混合列和键添加。DES 中的回合为:扩展,带回合键的 XOR 操作,替换和置换。
6、加密不同
AES 可以加密 128 位纯文本。DES 可以加密 64 位纯文本。
C. 用路由器设置的无线网络两种加密类型: AES 和 TKIP有何区别
1,TKIP: Temporal Key Integrity Protocol(暂时密钥集成协议)负责处理无线安全问题的加密部分,TKIP是包裹在已有WEP密码外围的一层“外壳”, 这种加密方式在尽可能使用WEP算法的同时消除了已知的WEP缺点。x0dx0a2,TKIP另一个重要特性就是变化每个数据包所使用的密钥,这就是它名纤裤称中“动态”的出处。密钥通过将多种因素混合在一起生成,包括基本密钥(即TKIP中所谓的成对瞬时密钥)、发射站的MAC地址以及数据包的序列号。x0dx0a3,AES:Advanced Encryption Standard(高级加密标准),是美国国家标准与技术研究所用于加密电子数据的规范,该算法汇聚了设计简单、密钥安装快、需要的内存空间少、在所有的平台上运行良好、支持并行处理并且可以抵抗所有已知攻击等优点。x0dx0a4,AES 是一个迭代的、尺乱对称密钥分组的密码,它可以使用128、192 和 256 位密钥,并且用 128 位(16字节)分组加密和解密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。x0dx0a5,AES提供了比 TKIP更加高级的加密技术, 现在无线路由器都提供了这2种算法,不过比较倾向于AES。x0dx0a6,TKIP安全性不如AES,而毁困简且在使用TKIP算法时路由器的吞吐量会下降3成至5成,大大地影响了路由器的性能。
D. 简述aes算法的加密过程
AES加密过程涉及到 4 种操作,分别是字节替代、行移位、列混淆和轮密钥加。
1.字节替换:字节代替的主要功能是通过S盒完成一个字节到另外一个字节的映射。
2.行移位:行移位的功能是实现一个4x4矩阵内部字节之间的置换。
4.轮密钥加:加密过程中,每轮的输入与轮密钥异或一次(当前分组和扩展密钥的一部分进行按位异或);因为二进制数连续异或一个数结果是不变的,所以在解密时再异或上该轮的密钥即可恢复输入。
5.密钥扩展:其复杂性是确保算法安全性的重要部分。当分组长度和密钥长度都是128位时,AES的加密算法共迭代10轮,需要10个子密钥。AES的密钥扩展的目的是将输入的128位密钥扩展成11个128位的子密钥。AES的密钥扩展算法是以字为一个基本单位(一个字为4个字节),刚好是密钥矩阵的一列。因此4个字(128位)密钥需要扩展成11个子密钥,共44个字。
E. 加密算法之AES
AES采用分组密码体制,首先将明文分成以16个字节长度为基准字节段,如果最后不足16字节则同样使用填充。然后分组对每段字节段进行加密得到密文,再将最后得到的密文拼接在一起形成最终的密文。AES算法的密钥长度可以分为128位,256位,512位。
整个加密过程如下图所示:
功能实现,在客户端中将明文进行AES加密后通过TCP链接发送至另一个客户端,另一端通过密钥对密文进行解密得到明文
F. 对于加密的总结(AES,RSA)
跟第三方联调的时候会碰到各种加密算法,所以总结一下。
AES不是将拿到的明文一次性加密,而是分组加密,就是先将明文切分成长度相等的块,每块大小128bit,再对每一小块进行加密。那么问题就来了,并不是所有的原始明文串能被等分成128bit,例如原串大小200bit,那么第二个块只有72bit,所以就需要对第二个块进行填充处理,让第二个块的大小达到128bit。常见的填充模式有
不进行填充,要求原始加密串大小必须是128bit的整数倍;
假设块大小8字节,如果这个块跟8字节还差n个字节,那么就在原始块填充n,直到满8字节。例:块{1,2,3},跟8字节差了5个字节,那么补全后的结果{1,2,3,5,5,5,5,5}后面是五个5,块{1,2,3,..7}跟8字节差了1个字节,那么补全后就是{1,2,3,...,7,1},就是补了一个1。
如果恰好8字节又选择了PKCS5Padding填充方式呢?块{1,2,3...8}填充后变成{1,2,3...8,8...8},原串后面被补了8个8,这样做的原因是方便解密,只需要看最后一位就能算出原块的大小是多少。
跟PKCS5Padding的填充方式一样,不同的是,PKCS5Padding只是对8字节的进行填充,PKCS7Padding可以对1~256字节大小的block进行填充。openssl里aes的默认填充方式就是PKCS7Padding
AES有多种加密模式,包括:ECB,CBC,CTR,OCF,CFB,最常见的还是ECB和CBC模式。
最简单的一种加密模式,每个块进行独立加密,块与块之间加密互不影响,这样就能并行,效率高。
虽然这样加密很简单,但是不安全,如果两个块的明文一模一样,那么加密出来的东西也一模一样。
openssl的相关函数:
CBC模式中引入了一个新的概念,初始向量iv。iv的作用就是为了防止同样的明文块被加密成同样的内容。原理是第一个明文块跟初始向量做异或后加密,第二个块跟第一个密文块做异或再加密,依次类推,避免了同样的块被加密成同样的内容。
openssl相关函数:
敲黑板!! 所以跟第三方对接的时候,如果对面说他们用aes加密,务必对他们发起灵魂三问:
签名的作用是让接受方验证你传过去的数据没有被篡改;加密的作用是保证数据不被窃取。
原理:你有一个需要被验签的原串A。
步骤一:选择hash算法将A进行hash得到hash_a;
步骤二:将hash_a进行加密,得到加密值encrypt_a;
步骤三:将原串A和加密的encrypt_a发给第三方,第三方进行验签。第三方先解密encrypt_a,得到一个hash值hash_a1,然后对原串A使用同样的hash算法进行hash,得到的即为加密前的hash_a,如果hash_a = hash_a1, 那么验签成功。
rsa使用私钥对信息加密来做签名,使用公钥解密去验签。
openssl相关函数:
注意:两个函数中的m,是原串hash后的值,type表示生成m的算法,例如NID_sha256表示使用sha256对原串进行的hash,返回1为签名成功或者验签成功,-1位为失败。
再次敲黑板!! 所以如果第三方说使用rsa验签,要让对方告知他们的hash算法。
首先明确,私钥加密不等于签名。加密的时候,使用使用公钥加密,第三方使用你的私钥进行解密。
openssl里公钥加密函数为RSA_public_encrypt,私钥解密函数为RSA_private_decrypt,具体的可以自己去查看下官方文档。
rsa也涉及到了填充方式,所以对接的时候也要问清楚
在使用公钥进行加密时,会发现每次加密出的结果都不一样,但使用私钥加密时,每次的结果都一样,网上查了一圈,说是因为填充方式的原因。
官方文档说明:
那么为什么一定要使用私钥做签名,公钥做加密,而不是公钥做签名,私钥做加密呢?
举个栗子: