一、 恺撒密码
1.简单介绍
凯撒密码是古时候欧洲常用的一种加密方式:英文一共26个字母,它的加密方式是将这26个字母分别平移固定的位数,
假设位数=3,那么A=D,B=E,如下图:
如果想加密一个单词HELLO,根据上面的唯一对比,加密后的结果应该是LHOOR。颠倒字母后的顺序,使得常人无法读懂这些语句或者单词。如何解密呢,也很简单,只需要将收到的单词向前平移3个位置,就可以恢复到加密前的单词HELLO了。
2.破解
破解凯撒密码的方法很多,有一种暴力破解的方式,就是“遍历”。根据凯撒密码的加密方式,平移固定的位数,26个英文字母总共可以平移的方式是26种,假如位数n=26,其实相当于没有平移,A=A,循环了一次。
进行暴力破解:
n=1:LHOOR=KGNNQ
n=2:LHOOR=JFMMP
n=3:LHOOR=HELLO
这样就破解了,可以推算发位数n=3,其实就是秘钥=3,
最多尝试25次即可推算出加密的n值等于多少(当然这里只是讨论原理,不排除真实情况,可能凑巧某一个错误的n值解密出来的也是一个完整的单词或一段话的情况)。
二、 替换密码
1.简单介绍
替换密码和恺撒密码原理有些类似,个人感觉相当于恺撒密码的变种,替换密码增加了字母替换的随机性.
举个简单的例子,A=G,B=X,C=K
这里ABC..等26个字母都随机指向了“密码”本上的另一个随机的字母,这下就比较难反向推算出“秘钥”是多少了,数量级完全不一样。
简单的算一下可能存在的情况:
A=有25种表示方式BCD…
B=有除A以外24种方式表示CDE..
…
那么秘钥的存在情况是:
N=25!种方式,远远大于恺撒密码的26。
2.破解
面对25!数量级的加密方式,使用暴力破解的方式不再实用了,但是可以使用另一种方法,统计学
通过大量扫描英文书籍,可以得出如下结果(,这里只探究原理,并不追究这个统计的准确性):
26个字母在日常用语中的使用频率并不一样,比如字母E的使用频率遥遥领先,字母Z使用频率最低,这个相当于语言所残留在文字中的指纹,很难察觉但是真实存在。
根据这个原理,扫描“随机密码”文本,统计出各个字母的使用频率分布,找出使用频率最高的那个字母,极可能就是加密后的字母E。
3.随机加密还有很多变种,双重加密,擦掉“指纹”使得加密方式更进一步加固,不得不感叹古人的智慧,数学之美真奇妙。
用户密码加密方式
用户密码保存到数据库时,常见的加密方式有哪些?以下几种方式是常见的密码保存方式:
1. 明文保存
比如用户设置的密码是“123456”,直接将“123456”保存在数据库中,这种是最简单的保存方式,也是最不安全的方式。但实际上不少互联网公司,都可能采取的是这种方式。
2. 对称加密算法来保存
比如3DES、AES等算法,使用这种方式加密是可以通过解密来还原出原始密码的,当然前提条件是需要获取到密钥。不过既然大量的用户信息已经泄露了,密钥很可能也会泄露,当然可以将一般数据和密钥分开存储、分开管理,但要完全保护好密钥也是一件非常复杂的事情,所以这种方式并不是很好的方式。
3. MD5、SHA1等单向HASH算法
使用这些算法后,无法通过计算还原出原始密码,而且实现比较简单,因此很多互联网公司都采用这种方式保存用户密码,曾经这种方式也是比较安全的方式,但随着彩虹表技术的兴起,可以建立彩虹表进行查表破解,目前这种方式已经很不安全了。
其实之前公司也是采用的这种MD5加密方式。
4. PBKDF2算法
该算法原理大致相当于在HASH算法基础上增加随机盐,并进行多次HASH运算,随机盐使得彩虹表的建表难度大幅增加,而多次HASH也使得建表和破解的难度都大幅增加。
在使用PBKDF2算法时,HASH一般会选用sha1或者sha256,随机盐的长度一般不能少于8字节,HASH次数至少也要1000次,这样安全性才足够高。一次密码验证过程进行1000次HASH运算,对服务器来说可能只需要1ms,但对于破解者来说计算成本增加了1000倍,而至少8字节随机盐,更是把建表难度提升了N个数量级,使得大批量的破解密码几乎不可行,该算法也是美国国家标准与技术研究院推荐使用的算法。
5. bcrypt、scrypt等算法
这两种算法也可以有效抵御彩虹表,使用这两种算法时也需要 指定 相应的参数,使破解难度增加。
在密码学中,scrypt(念作“ess crypt”)是Colin Percival于2009年所发明的金钥推衍函数,当初设计用在他所创立的Tarsnap服务上。设计时考虑到大规模的客制硬件攻击而刻意设计需要大量内存运算。
Scrypt不仅计算所需时间长,而且占用的内存也多,使得并行计算多个摘要异常困难,因此利 用rainbow table进行暴力攻击更加困难。Scrypt 没有在生产环境中大规模应用,并且缺乏仔细的审察和广泛的函数库支持。但是,Scrypt 在算法层面只要没有破绽,它的安全性应该高于PBKDF2和bcrypt。
各个算法的特性
总结
采用PBKDF2、bcrypt、scrypt等算法可以有效抵御彩虹表攻击,即使数据泄露,最关键的“用户密码”仍然可以得到有效的保护,黑客无法大批量破解用户密码,从而切断撞库扫号的根源。
【加密软件编辑推荐】
易控网盾加密软件--重要文件防泄密专家!轻松实现单位内部文件自动加密保护,加密后的文件在单位内部正常流转使用。未经许可,任何私自拷贝加密文件外发出去,都将打开为乱码,无法使用!对于发送给客户等第三方的文件,可实现控制打开时间和打开次数等防泄密参数!同时可设置对员工电脑文件自动备份,防止恶意删除造成核心数据的遗失!从源头防止企业核心文件被外泄!
相关页面:加密软件,文件加密,文档加密,图纸加密软件,防泄密软件,CAD加密软件,文件外发加密
一、主体不同
1、WPA-PSK/WPA2-PSK:WEP预分配共享密钥的认证方式,在加密方式和密钥的验证方式上作了修改,使其安全性更高。
2、WPA/WPA2: Wi-Fi 联盟对采用 IEEE 802.11i 安全增强功能的产品的认证计划。是基于WPA的一种新的加密方式。
3、WEP:有线等效保密(WEP)协议是对在两台设备间无线传输的数据进行加密的方式。
二、加密方式不同
1、WPA-PSK/WPA2-PSK:客户的认证仍采用验正用户是否使用事先分配的正确密钥。
2、WPA/WPA2:用了更为安全的算法。CCMP取代了WPA的MIC、AES取代了WPA的TKIP。
3、WEP:使用了rsa数据安全性公司开发的rc4 ping算法。如果无线基站支持MAC过滤,推荐你连同WEP一起使用这个特性。
三、特点不同
1、WPA-PSK/WPA2-PSK:预先分配的密钥仅仅用于认证过程,而不用于数据加密过程,因此不会导致像WEP密钥那样严重的安全问题。
2、WPA/WPA2:其口令长度为 20 个以上的随机字符,或者使用 McAfee 无线安全或者 Witopia Secure MyWiFi 等托管的 RADIUS 服务。
3、WEP: WEP 系统要求钥匙得用十六进制格式指定,有些用户会选择在有限的 0-9 A-F 的十六进制字符集中可以拼成英文词的钥匙。
参考资料来源:百度百科-WEP
参考资料来源:百度百科-WPA2
参考资料来源:百度百科-WPA-PSK
无线路由器里带有的加密模式主要有:WEP,WPA-PSK(TKIP),WPA2-PSK(AES)和WPA-PSK(TKIP)+WPA2-PSK(AES)。\x0d\x0aWPA2-PSK的加密方式基本无法破解,无线网络加密一般需要用此种加密方式才可以有效防止不被蹭网,考虑到设备兼容性,有WPA-PSK(TKIP)+WPA2-PSK(AES)混合加密选项的话一般选择此项,加密性能好,兼容性也广。\x0d\x0a\x0d\x0aWEP是Wired Equivalent Privacy(有线等效保密)的英文缩写,目前常见的是64位WEP加密和128位WEP加密。它是一种最老也是最不安全的加密方式,不建议大家选用。\x0d\x0aWPA是WEP加密的改进版,包含两种方式:预共享密钥和Radius密钥(远程用户拨号认证系统)。其中预共享密钥(pre-share key缩写为PSK)有两种密码方式:TKIP和AES,而RADIUS密钥利用RADIUS服务器认证并可以动态选择TKIP、AES、WEP方式。相比TKIP,AES具有更好的安全系数,建议用户使用。\x0d\x0aWPA2即WPA加密的升级版。WPA2同样也分为TKIP和AES两种方式,因此也建议选AES加密不要选TKIP。