发新帖我要提问
12
返回列表
打印

【讨论】论坛密码的安全存储、方法及规范

[复制链接]
楼主: hotpower
手机看帖
扫描二维码
随时随地手机跟帖
21
hotpower|  楼主 | 2011-12-25 06:40 | 只看该作者 回帖奖励 |倒序浏览
20 年前电脑的 BIOS 和 Windows 就已经用“存储散列值”替代“存储密码”了,现在又提出这个技术,是否有新的改进?
流行音乐 发表于 2011-12-24 22:50


是的,关键是为验证HotWC3.

存储散列值是正确的做法,但无法避免碰撞的发生,故必须联合用户名。
密码丢失也意味着此散列值索引作废。

那么只能靠:
用户名+绑定手机
用户名+绑定邮箱

这些间接证明论坛或邮箱身份的确认。
根据这些条件为索引在论坛或邮箱数据库中找到此流失密码的记录,即找到此散列值。

通过手机或邮箱让用户给出新的密码。
由用户名+新密码构成新的散列值。

论坛或邮箱数据库只需更改或复制删除记录等修改成新的散列值。

使用特权

评论回复
22
hotpower|  楼主 | 2011-12-25 06:48 | 只看该作者
本帖最后由 hotpower 于 2011-12-25 07:14 编辑

CRC不可逆的“真谛”

根据《菜农CRC可逆定理》:
在任意CRC多项式对应的CRC算法中,当CRC多项式满足一定条件时,该CRC移动方向上
可能存在CRC的逆向算法,CRC逆向算法确保从CRC正向算法的运算结果即CRC校验值中
逆算出原始输入时的待校验信息。
任意CRC多项式字符串可逆条件判别:
CRC多项式字符串内出现“+1”时存在CRC逆向算法,不出现“+1”时不存在CRC逆向算法。
任意CRC多项式数字权值可逆条件判别:
若将CRC多项式对应的数字值称为CRC权值,则有具体CRC移动方向的判别:
对于左移CRC运算,CRC权值为奇数时存在CRC逆向算法,偶数时不存在CRC逆向算法。
对于右移CRC运算,CRC权值为负数时存在CRC逆向算法,正数时不存在CRC逆向算法。

给出CRC4表达式:左移CRC4=X4+X3+X2+X,初值=0,出值=0
对应的CRC4简写:CRCL4_E_0_0
根据《菜农CRC可逆定理》:CRC4权值可逆=0xF,CRC4权值不可逆=0xE,
//CRC位域8表(大端):
const unsigned char CRCL4_E_Table[16] = {//此表不可逆
0x0,0xE,0x2,0xC,0x4,0xA,0x6,0x8,0x8,0x6,0xA,0x4,0xC,0x2,0xE,0x0
};

可以看出0x1,0x3,0x5,0x7,0x9,0xB,0xD,0xF这8个数据在表中(CRC[明文]对应的密文)从未出现
那么久意味着0~F这16个明文只对应0x0,0xE,0x2,0xC,0x4,0xA,0x6,0x8这8个密文。
发生了一半的CRC碰撞,即每两个明文对应一个密文。

给出CRC4表达式:右移CRC4=X4+X3+X2+X,初值=0,出值=0
对应的CRC4简写:CRCR4_7_0_0
根据《菜农CRC可逆定理》:CRC4权值可逆=0xF,CRC4权值不可逆=0x7,
//CRC位域8表(小端):
const unsigned char CRCR4_7_Table[16] = {//此表不可逆
0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0
};

可以看出0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF这8个数据在表中(CRC[明文]对应的密文)从未出现
那么久意味着0~F这16个明文只对应0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7这8个密文。
发生了一半的CRC碰撞,即每两个明文对应一个密文。

故我们可以给出CRC不可逆的“真谛”:
在CRCn中(n=4,...128,...1024...),其CRC位域8表中元素的排列若属于全排列(2^n)!的一组子排列,
那么此CRCn的权值必然是可逆的,即满足《菜农CRC可逆定理》中对可逆的定义。
否则此CRCn的权值必然是不可逆的,即不满足《菜农CRC可逆定理》中对可逆的定义。而且其排列一定
是全排列(2^n)!的一组子排列的一半。此时发生“CRC碰撞”,故CRC不可逆、



菜农HotPower@126.com 2009.12.15 于雁塔菜地

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则