基於鑑權隨機數變換的防列舉破解法

2021-05-21 18:46:47 字數 795 閱讀 4322

目前包括3g 在內的移動通訊技術,均採用傳統的「提問-響應」鑑權演算法。在此演算法中,鑑權控制器(通常是網路側,不過3g 也引入了終端對網路的認證,這個過程中鑑權控制器是終端)要求被鑑權的客戶端採用秘密金鑰ki 對乙個隨機數rand進行加密計算,返回sres, 以便鑑權控制器與網路側計算的sres進行對比。

由於rand 是明文傳輸的,如果截獲rand 和相應的sres,就可以利用計算機進行「已知明文的列舉攻擊」,從而得到ki 。

因此,這個問題的根源就是rand 的明文傳輸。

如果簡單將rand 用ki 加密,則認證就無法實現,因為用ki 加密的rand 正是sim卡要返回的sres,鑑權控制器不能將這個資訊直接傳給終端。但可以稍加改進即可。

1。網路側仍然產生隨機數rand ,但引入乙個單向函式之類的變換,將隨機數進行變換,然後再用ki 加密,結果做為網路側(鑑權控制器)期望的相應:

e_sres=a3(hash(rand),ki)

2.網路側將隨機數rand 用ki加密後,傳給終端,即傳給終端的鑑權隨機數是:a3(rand,ki)

3。sim卡用a3演算法還原出 rand,然後計算: sres=a3(hash(rand),ki),做為返回給網路側的響應。

實際上,上述變換也不一定必須使用hash 之類的單向函式,任何一種雙反約定的變換均可。比如:

可採用:e_sres=a3(rand + 1,ki),sim卡解密rand,用a3(rand + 1,ki)做為響應也是可以的。只要隨機數加密的結果值,與sim 卡返回的加密響應值不同即可。

此種改進方法徹底解決了rand 明文傳送的問題,避免了「已知明文的列舉攻擊」。

基於Box Muller變換的正態隨機數生成方法

為什麼我的眼裡常含淚水?因為我有乙個演算法不會。為了節約點眼淚,今天我們就來介紹著名的box muller變換,基於這種變換,我們便可以得到乙個從均勻分布中得到正態分佈取樣的演算法,本文也會詳細解釋其中蘊含的數學原理。box muller變換最初由 george e.p.box 與 mervin e...

FPGA產生基於LFSR的偽隨機數

1.概念 通過一定的演算法對事先選定的隨機種子 seed 做一定的運算可以得到一組人工生成的週期序列,在這組序列中以相同的概率選取其中乙個數字,該數字稱作偽隨機數,由於所選數字並不具有完全的隨機性,但是從實用的角度而言,其隨機程度已足夠了。這裡的 偽 的含義是,由於該隨機數是按照一定演算法模擬產生的...

FPGA產生基於LFSR的偽隨機數

1.概念 通過一定的演算法對事先選定的隨機種子 seed 做一定的運算可以得到一組人工生成的週期序列,在這組序列中以相同的概率選取其中乙個數字,該數字稱作偽隨機數,由於所選數字並不具有完全的隨機性,但是從實用的角度而言,其隨機程度已足夠了。這裡的 偽 的含義是,由於該隨機數是按照一定演算法模擬產生的...