• evo真人(中国)

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

    密碼安全中的隨機數的特點

    TIME:2019-03-20 16:58  click: 217 次 來源: 未知

    在網絡安全的各種應用里,隨機數在加密算法里扮演重要的角色。大量的基於密碼學的網絡安全算法和協議都使用了二進制隨機數。例如:

    密鑰分發和相互認證方案,例如通信的雙方顺利获得交換信息共同合作分發密鑰和或互相認證對方。許多時候需要使用時變值進行握手以防止重放攻擊。時變值使用隨機數可以防止攻擊者判斷或者猜測出時變值。

    會話密鑰的產生。大量的協議,需要為對稱加密產生一個短時間內使用的秘密密鑰。這個密鑰通常稱為會話密鑰。

    RSA公鑰加密算法中密鑰的產生。

    用於對稱流密碼加密的位流的產生。

    這些應用對隨機數序列產生提出了兩個不同且未必兼容的要求:隨機性和不可預測性。

    隨機性

    一般認為隨機序列應有良好的統計特性。下面是兩個評價標準:

    分佈均勻性:序列中的位分佈應是均勻的,即0和1出現的頻率大約相等。

    獨立性:序列中任何子序列不能由其他子序列推導出。

    儘管有一些成熟的測試來判斷位序列是否符合某個特定的分佈,比如均勻性分佈,然而還沒有某種方法可以表明一個序列的獨立性好。相反,卻有很多測試可以證明一個序列不具有獨立性。通常的策略是多進行一些測試直至可認為它的獨立性足夠強。

    密碼學中算法的設計經常使用這種“似乎隨機”的數序列。比如RSA公開密鑰加密方案的一個基本要求就是產生素數的能力。一般來說,判斷一個給定的大數是否是素數很難的。採用窮舉測試的方法需要把N除以N的1/2次方以內的奇數。如果N是10的150次方這種數量級的,這種大數在公鑰密碼中並非罕見,用窮舉測試它是否為素數則超出了人和計算機的實際能力。然而,有許多有效的算法,可以隨機地選擇一些隨機數來進行相對簡單的運算,只要隨機數足夠多,就幾乎可判定這個大數是否為素數。這類方法稱為不確定性方法,在算法設計中經常用到。本質上說,若某問題的精確求解很難或很耗時,可以採用簡單、簡短、不確定性方法來取得某種可信程度的解。

    不可預測性

    在相互認證、會話密鑰生成以及流密碼之類的應用中,對隨機數的要求不能僅僅停留在序列是統計隨機的,而是要求隨機數序列是不可預測的。所謂的“真隨機數序列”是每個數都統計獨立於其他數,因而不可預測。不過,馬上就可以看到,真正的隨機數序列很少用;一般看上去隨機的隨機數序列是由算法產生的。此時,必須要注意對手不能夠從先前的隨機數推導出後面的隨機數。

     

    上一篇:解決無線安全傳輸的方法 下一篇:盤點無線安全威脅有哪些?