暗网潜航——盐不足故不咸
上次提及过密码学上的「柯克霍夫原则」,指出现时使用的所有密码演算法都是公开的,只是使用保护机制来保护密匙。要加强保护这些被加密了的「密文」(ciphertext或cyphertext),在密码学上便会用到「加盐」及「密匙管理」。「盐」是指在密文的任意或固定位置插入随机或特定的字串作为扰乱及增加企图破解密文的额外保护机制。这种保护机制惯常会用于「杂凑函式」/「杂凑演算法」中。
那怎样「加盐」才算正确?一般来说破解密码或逆向推算密文内容会使用预先准备好的字典单字、常用密码及「字典档」的档案进行「暴力破解」,例如著名的彩虹表可在约160秒内破解Windows2003的14位元数字密码。其实只要能识别加密演算法类别及其规律,密码被破解只是时间和算力问题,因此我常劝喻大家不要使用在字典内找得到,或常用文字及短句构造密码,并要设定帐户输入三次错误密码后便会被锁定。
此外,要使随机「盐」更为有效便需要包含两个元素:第一,使用「杂凑」一般会追赶升级最新高阶的演算法如SHA2或SHA3,再配合长度更强及更复杂的256及512位元,一旦演算法被公开便摒弃已被知晓及破解的演算法;第二,在高阶复杂位元的演算法内,加入随机分布的「盐」,以提升密文强度,扰乱破解者,如可以利用每个帐号被创造或编辑改动的年、月、日、时、分、秒及微秒作为随机「盐」的组合因素,因其拥有「绝对自然分布」的特性,这种特性可构造完全不可预测及规范的变化,这样可大大提升破解「加盐」密文的难度。
TOZ联合创办人
庞博文
那怎样「加盐」才算正确?一般来说破解密码或逆向推算密文内容会使用预先准备好的字典单字、常用密码及「字典档」的档案进行「暴力破解」,例如著名的彩虹表可在约160秒内破解Windows2003的14位元数字密码。其实只要能识别加密演算法类别及其规律,密码被破解只是时间和算力问题,因此我常劝喻大家不要使用在字典内找得到,或常用文字及短句构造密码,并要设定帐户输入三次错误密码后便会被锁定。
此外,要使随机「盐」更为有效便需要包含两个元素:第一,使用「杂凑」一般会追赶升级最新高阶的演算法如SHA2或SHA3,再配合长度更强及更复杂的256及512位元,一旦演算法被公开便摒弃已被知晓及破解的演算法;第二,在高阶复杂位元的演算法内,加入随机分布的「盐」,以提升密文强度,扰乱破解者,如可以利用每个帐号被创造或编辑改动的年、月、日、时、分、秒及微秒作为随机「盐」的组合因素,因其拥有「绝对自然分布」的特性,这种特性可构造完全不可预测及规范的变化,这样可大大提升破解「加盐」密文的难度。
TOZ联合创办人
庞博文


















