• evo真人(中国)

    文章橫幅PC版
    文章橫幅iPad版
    文章橫幅手機版

    密碼技術中隨機數的特點

    TIME:2019-03-20 17:00  click: 265 次 來源: 未知

    在這裏我們將隨機數的性質分為以下三類。

    隨機性——不存在統計學偏差,是完全雜亂的數列

    不可預測性不能從過去的數列推測出下一個出現的數

    不可重現性—除非將數列本身保存下來,否則不能重現相同的數列

    上面三個性質中,越往下就越嚴格。具備隨機性,不代表一定具備不可預測性。密碼技術中所使用的隨機數,僅僅具備隨機性是不夠的,至少還需要具備不可預測性才行。

    具備不可預測性的隨機數,一定具備隨機性。具備不可重現性的隨機數,也一定具備隨機性和不可預測性。

    下面我們來按順序講解一下隨機性、不可預測性和不可重現性。

    我們先來介紹一下隨機性

    所謂隨機性,簡單來說就是看上去雜亂無章的性質。我們可以用偽隨機數生成器大量生成0到9範圍內的整數,然後看一看所生成的數列。如果數列是像0、1、2、3、4、5、6、7、8、9、0、1、2…這樣不斷循環的,那肯定不是雜亂無章的。或者乍一看是雜亂無章的,但實際上在數列中0一次都沒有出現,或者整個數列中有一半都是6,這樣的數列也不能算是雜亂無章的。

    如果偽隨機數列中不存在統計學偏差,則我們可以認為這個偽隨機數列是隨機的。判斷個偽隨機數列是否隨機的方法稱為隨機數測試,隨機數測試的方法有很多種。

    密碼技術中所使用的隨機數,僅僅具備隨機性是不夠的。密碼技術中使用的隨機數需要具備怎樣的性質。由於隨機數會被用來生成密鑰,因此密鑰不能被攻擊者看穿。但是,雜亂無章並不代表不會被看穿,因此本書中將只具備隨機性的偽隨機數稱為“弱偽隨機數”。

    不可預測性

    密碼中所使用的隨機數僅僅具備隨機性是不夠的,還需要具備避免被攻擊者看穿的不可預測性。

    所謂不可預測性,是指攻擊者在知道過去生成的偽隨機數列的前提下,依然無法預測出下一個生成出來的偽隨機數的性質。其中,“在知道過去生成的偽隨機數列的前提下………,”是非常重要的一點。

    現在我們假設攻擊者已經知道偽隨機數生成器的算法。此外,正如攻擊者不知道密鑰一樣,他也不知道偽隨機數的種子。偽隨機數生成器的算法是公開的,但偽隨機數的種子是保密的。在上述假設的前提下,即便攻擊者知道過去所生成的偽隨機數列,他也無法預測出下一個生成出來的偽隨機數—這就是不可預測性。

    不可預測性是顺利获得使用其他的密碼技術來實現的。例如,可以顺利获得單向散列函數的單向性和密碼的機密性來保證偽隨機數生成器的不可預測性。我們將具備不可預測性的偽隨機數稱為強偽隨機數。

    不可重現性

    所謂不可重現性,是指無法重現和某一隨機數列完全相同的數列的性質。如果除了將隨機數列本身保存下來以外,沒有其他方法能夠重現該數列,則我們就說該隨機數列具備不可重現性。

    僅靠軟件是無法生成出具備不可重現性的隨機數列的。軟件只能生成偽隨機數列,這是因為運行軟件的計算機本身僅具備有限的內部狀態。而在內部狀態相同的條件下,軟件必然只能生成相同的數,因此軟件所生成的數列在某個時刻一定會出現重複。首次出現重複之前的數列長度稱為周期,對於軟件所生成的數列,其周期必定是有限的。

    當然,這個周期可能會很長,但總歸還是有限的。凡是具有周期的數列,都不具備不可重現性。要生成具備不可重現性的隨機數列,需要從不可重現的物理現象中獲取信息,比如周圍的溫度和聲音的變化、用戶移動的鼠標的位置信息、鍵盤輸入的時間間隔、放射線測量儀的輸出值等,根據從這些硬件中所獲取的信息而生成的數列,一般可以認為是具備不可重現性的隨機數列。我們將具備不可重現性的隨機數稱為真隨機數。

     

    上一篇:密碼學與認證 下一篇:隨機數在密碼技術中作用