
如果說隨機數和密碼技術是相關的,可能有些讀者還無法理解。實際上,和對稱密碼、公鑰密碼、數字簽名等技術相比,生成隨機數的技術確實不是很引人注意,但是,隨機數在密碼技術中卻扮演着十分重要的角色。
例如,下面的場景中就會用到隨機數。
生成密鑰
用於對稱密碼和消息認證碼。
生成密鑰對
用於公鑰密碼和數字簽名。
生成初始化向量(IV)
用於分組密碼的CBC、CFB和OFB模式。
生成 nonce
用於防禦重放攻擊以及分組密碼的CTR模式等。
生成鹽
用於基於口令的密碼(PBE)等。
上面這些用途都很重要,但其中尤為重要的是“生成密鑰”和“生成密鑰對”這兩個。即使密碼算法的強度再高,只要攻擊者知道了密鑰,就會立刻變得形同虛設。因此,我們需要用隨機數來生成密鑰,使之無法被攻擊者看穿。
