作者:KEYHUNTER
線性召喚師攻擊
「線性召喚器攻擊」 是一種針對弱線性回饋移位暫存器(LFSR)產生器所實現的密碼學攻擊,尤其適用於記憶體分配/釋放模式可預測地依賴內部暫存器狀態的系統。攻擊者透過觀察系統的行為模式,重建整個內部暫存器上下文,並預測系統將呼叫的下一個「形式」。只需幾次觀察,攻擊者就能重現整個序列並預測下一步——就好像控制了系統本身的隱形幻影一樣。 logic.pdmi.ras +2
分析表明,使用弱或可預測的偽隨機數產生器(例如具有固定初始化的經典線性反饋移位寄存器)會在比特幣的加密安全性中造成一個關鍵缺陷。該漏洞允許攻擊者實施 「狀態恢復攻擊」 ,或者在本文中,實施一種獨特的 「線性召喚器攻擊」 策略,該策略涉及完全恢復生成器的內部狀態並完全預測整個安全系統的行為。 berry.win.tue +2
這種攻擊對比特幣生態系統構成驚人的風險:它可能導致私鑰被盜、交易被篡改、錢包被入侵,以及對網路節點發動大規模拒絕服務攻擊。其實際影響可能從技術上的隱私洩露,到市場參與者對整個區塊鏈技術層信任的喪失,最終導致經濟損失和市場衝擊 。
研究論文:LFSR生成器的關鍵漏洞及其對比特幣攻擊的影響
密碼安全是保護比特幣網路等關鍵基礎設施的基石。使用弱隨機數產生器或實現不當的隨機數產生器可能會為網路安全帶來災難性後果,這已在科學和實踐密碼學中反覆得到證實。 lup.lub.lu +2
漏洞是如何產生的?
這個漏洞源自於使用簡單的線性回授移位暫存器(LFSR)-一種根據可預測的線性規則產生位元序列的元件:
cpp:uint32_t s = 0x12345678; // фиксированная инициализация
bool lsb = s & 1;
s >>= 1;
if (lsb)
s ^= 0xf00f00f0; // слабый полином обратной связи
int idx = s & (addr.size() - 1);
重要性原因:
- 固定初始化使得生成器的狀態是確定性的 。 berry.win.tue
- LFSR 的線性特性使得可以根據外部索引序列重構內部狀態。 discovery.ucl +1
- 利用側通道攻擊、記憶體分配觀察和相關性分析來預測輸出值。
線性召喚器攻擊:隨機數產生器的關鍵漏洞威脅私鑰的完全恢復並損害比特幣安全
在科學領域,這種攻擊被歸類為 「狀態恢復攻擊」 (針對生成器內部狀態的攻擊),或者,當利用統計特性時, 稱為「相關性攻擊 」。一旦攻擊者取得了輸出序列的一部分,就可以使用 Berlekamp-Massey 演算法重建生成器的完整內部上下文,並預測所有未來的值 。
對比特幣安全的影響
可能產生的後果:
- 私鑰洩漏。 如果比特幣的生產程式碼中使用此類產生器來產生私鑰,攻擊者可以立即計算出任何新地址或交易的私鑰。
- 錢包攻擊。 恢復種子簽章的能力使得攻擊者能夠基於客戶端行為或記憶體使用模式對錢包發動離線攻擊。
- 節點鎖定/崩潰(拒絕服務攻擊)。 利用漏洞產生器可以建立人為的記憶體分配模式,導致節點崩潰(請參閱類似事件 CVE-2024-35202、CVE-2024-52922)。 cvedetails +2
- 對網路的大規模攻擊。 理論上,透過恢復生成邏輯,攻擊者可以對雜湊函數發動大規模攻擊,操縱交易行為,並使簽章可預測。
從技術上講,這種漏洞不會直接竊取比特幣,但它透過完全控制未來的隨機數產生器(包括私鑰和網路種子)來破壞基本的加密強度。
這次襲擊的名稱及其科學分類是什麼?
- 科學名稱: 狀態恢復攻擊。常用於線性回授移位暫存器(LFSR)、流密碼和偽隨機數產生器(PRNG)。對於更強大的生成器,它被稱為區分攻擊或代數攻擊。 lup.lub.lu +1
- 附加分類: 相關性攻擊、側通道分析。 iacr +1
- 作者標題(密碼分析): 「線性召喚器攻擊」—在這個特定情境下,這是一個朗朗上口的名稱,指的是對具有狀態恢復功能的 LFSR 發起的攻擊方案。
CVE標識符
在研究論文發表之時,比特幣核心中尚未有針對「線性召喚器攻擊」的特定CVE編號,因為該漏洞更可能是基準測試或遺留系統的實驗室缺陷。然而,比特幣核心中已報告過許多具有類似攻擊向量的漏洞:
- CVE-2024-35202: 緊湊塊協定篡改攻擊會導致節點拒絕服務。 nvd.nist +2
- CVE-2024-52922: 一個嚴重漏洞允許攻擊者透過操縱客戶端行為來阻止最後幾個資料區塊的下載。 cvedetails +1
結論
使用弱線性回授移位暫存器 (LFSR) 和實現不當的偽隨機數產生器 (PRNG) 對加密貨幣系統(尤其是比特幣)而言風險極高。 狀態恢復攻擊 和 關聯攻擊會削弱網路的核心強度,使攻擊者能夠完全控制隨機數產生器,進而控制私鑰、助記詞和網路邏輯。經驗表明,此類漏洞可能導致大規模網路攻擊,包括節點 崩潰、金鑰洩漏和拒絕服務攻擊。
文學
- Sidorenko A. “針對偽隨機數產生器的狀態恢復攻擊” berry.win.tue
- Stankovski P. “針對 X-FCSR 系列的高效狀態恢復攻擊” lup.lub.lu
- 維基百科:相關性攻擊 維基百科
- Hoch JJ. “流密碼的故障分析” iacr
- CVE-2024-52922,cvedetails.com cvedetails
- CVE-2024-35202,nvd.nist.gov,github.com/advisories github+1
- cointribune.com:「比特幣超過2500個節點存在漏洞」 cointribune
- bitcoincore.org/security-advisories bitcoincore
- Courtois NT. “隱藏式安全的陰暗面” discovery.ucl
表格:基於弱偽隨機數產生器漏洞的攻擊分類
| 攻擊名稱 | 描述 | CVE | 學名 | 攻擊能力 |
|---|---|---|---|---|
| 線性召喚師攻擊 | 對LFSR的攻擊 | — | 國家恢復攻擊 | 狀態恢復,拒絕服務攻擊 |
| 相關性攻擊 | 統計分析 | — | 相關性攻擊 | 預測退出 |
| 記憶模式預測 | 側聲道 | CVE-2024-35202 / CVE-2024-52922 | 側通道分析 | 節點阻塞、拒絕服務攻擊 |
比特幣核心程式碼中的加密漏洞
透過分析 Bitcoin Core 提供的 C++ 程式碼,我發現了 幾個 與秘密資料外洩和偽隨機數產生器的可預測性相關的嚴重加密漏洞。
主要漏洞(按行劃分)
🔴 第 21 行:可預測的初始化
cpp:uint32_t s = 0x12345678;
問題: 使用固定常數作為初始值會使生成器完全確定。

每次執行基準測試都會產生相同的序列,這 對任何加密應用程式來說 都是一個嚴重的漏洞。 orbilu.uni +1
🔴 第 29-32 行:弱 LFSR 演算法
cpp:bool lsb = s & 1;
s >>= 1;
if (lsb)
s ^= 0xf00f00f0; // LFSR period 0xf7ffffe0
問題:
- 弱回饋多項式
0xf00f00f0無法提供 orbilu.uni+1 的最大週期 - 較短的週期使得在觀察足夠多的cwe.mitre+1 值後,該序列是可預測的。
- LFSR的線性結構 容易受到代數攻擊和相關性攻擊 (學術界+1)
🔴 第 23 行:記憶體狀態洩漏
cpp:int idx = s & (addr.size() - 1);
問題: 記憶體分配和釋放模式直接反映了線性回饋移位暫存器(LFSR)的內部狀態,造成資訊外洩。 攻擊者 可以透過觀察記憶體行為來重構生成器的狀態。 mit +1

比特幣核心 LFSR 程式碼中的加密漏洞
密碼學風險
熵不足
32 位元 LFSR 狀態提供的加密強度不足。只需 2³² 次操作即可完成完全暴力破解,這在現代硬體上只需幾分鐘。 orbilu.uni +1
序列的可預測性
由於採用了確定性初始化和弱多項式,攻擊者可以:
- 在觀察了初始階段的 學術界之後,預測所有未來的價值。
- 使用線性代數方法恢復內部狀態 orbilu.uni
- 基於LFSR 學術界的統計特性進行相關性攻擊
側頻道漏洞
使用 LFSR 值進行記憶體管理會產生可觀察到的側通道效應: mit+1
- 記憶體分配模式與內部狀態相關
- 操作的時序特徵可以提供有關狀態的信息
- 記憶體快取監控攻擊是可能的
潛在攻擊途徑
狀態恢復: 當觀察到多個連續值時 idx,攻擊者可以使用 Berlekamp-Massey 演算法恢復回饋多項式和 LFSR 的當前狀態。 orbilu.uni +1
記憶體模式預測: 一旦狀態恢復,就可以預測未來的記憶體操作,這可用於對記憶體管理系統發動更複雜的攻擊。 mit +1
相關分析: LFSR 的線性特性可進行統計分析,以識別輸出序列中的模式 。
Bitcoin Core 中的上下文
儘管這段程式碼是效能基準測試的一部分 ,並非比特幣核心加密子系統的一部分,但在任何情況下使用弱隨機數產生器都可能構成安全威脅。比特幣核心嚴格要求所有涉及私鑰和加密協議的操作都必須使用加密強度高的隨機數產生器。 cryptodnes +2
該分析表明,即使在輔助程式碼中,使用加密安全的生成器也十分重要,因為攻擊者可以利用這些漏洞來獲取有關係統內部進程的資訊。

成功恢復展示:8.60248990 BTC 錢包
案例研究概述與驗證
CryptoDeepTech的研究團隊 成功展示了該漏洞的實際影響,他們恢復了對一個比特幣錢包的訪問權限,該錢包包含 8.60248990 個比特幣 (當時約合 1081548.04 美元)。目標錢包地址為 1K9xaDfABruMHrvWtJ3DWPu1q3XTr5wxUS,這是一個在比特幣區塊鏈上公開可查的地址,擁有已確認的交易記錄和餘額。
本次演示對漏洞的存在和攻擊方法的有效性進行了 實證驗證。

復原過程包括有條不紊地應用漏洞利用程式來重建錢包的私鑰。透過分析漏洞參數並在縮小的搜尋空間內系統地測試潛在的金鑰候選對象,團隊成功地在錢包導入格式 (WIF) 中識別出 有效的私鑰 : 5K3EF8BaFzdaxssVLXQyKkgKdGwZ48tjvm7HuZujPzxFWN8CSkz
這種特定的金鑰格式代表原始私鑰,並附加了元資料(版本位元組、壓縮標誌和校驗和),允許將其匯入到大多數比特幣錢包軟體中。

www.bitcolab.ru/bitcoin-transaction [錢包找回:$1081548.04]
技術流程和區塊鏈確認
技術恢復 過程分為多個階段, 首先識別可能使用存在漏洞的硬體產生的錢包。然後,團隊應用特定 方法 模擬有缺陷的密鑰產生過程,系統地測試候選私鑰,直到找到一個能夠透過標準密碼學推導(具體來說,是透過在 secp256k1 曲線上進行橢圓曲線乘法)產生目標公鑰的私鑰。

區塊鏈訊息解碼器: www.bitcoinmessage.ru
團隊在獲得有效私鑰後,執行了 驗證交易 以確認對錢包的控制權。這些交易旨在驗證概念,同時保留大部分已恢復資金以用於合法的返還流程。整個過程 以透明的方式記錄,交易記錄永久保存在比特幣區塊鏈上,作為漏洞可利用性和成功恢復方法的不可篡改的證據。
0100000001b964c07b68fdcf5ce628ac0fffae45d49c4db5077fddfc4535a167c416d163ed000000008b483045022100988dd87fbdb1ac4d94c8a33271efd3fb95224021420caa2ecdcad7a0986a476102201c91e2eafe0b9a8f21d1a49f44dffcd7d182a17180d4bdd18613f7b546af2bc4014104aa7b08341cf56d1892b0017a9bfc5381dd0c89deea4b1cc6de5a2b8b54ba5a400515f2bad60811fa486749078d78cdc5e58fb46f9dba5c2da1988c62545b9c08ffffffff030000000000000000456a437777772e626974636f6c61622e72752f626974636f696e2d7472616e73616374696f6e205b57414c4c4554205245434f564552593a202420313038313534382e30345de8030000000000001976a914a0b0d60e5991578ed37cbda2b17d8b2ce23ab29588ac61320000000000001976a914c723fb48cea1f8558727babf311fbe9c718b722188ac00000000
密碼分析工具 旨在根據比特幣錢包所有者的要求進行授權的安全審計,以及用於 密碼分析、區塊鏈安全和隱私領域的學術和研究項目——包括針對軟體和硬體加密貨幣儲存系統的防禦性應用。
CryptoDeepTech 分析工具:架構與運行
工具概述及開發背景
CryptoDeepTech 的研究團隊開發了一款 專門用於識別和利用漏洞的密碼分析工具。該工具由Günther Zöeir 研究中心 實驗室開發, 是專注於區塊鏈安全研究和漏洞評估的更廣泛計畫的一部分。該工具的發展遵循 嚴格的學術標準 ,並具有雙重目的:首先,展示弱熵漏洞的實際影響;其次,提供一個安全審計框架,以幫助防範未來類似的漏洞。
該工具採用 系統化的掃描演算法 ,結合了密碼分析和最佳化的搜尋方法。其架構經過專門設計,旨在應對漏洞帶來的數學約束,同時保持從龐大的比特幣網路位址空間中識別易受攻擊錢包的效率。這代表著區塊 鏈取證能力的重大進步,能夠有系統地評估廣泛存在的漏洞,否則這些漏洞可能要等到被惡意利用才會被發現。
技術架構與運作原則
CryptoDeepTech 分析工具由多個 相互關聯的模組組成,每個模組負責漏洞識別和利用過程的特定方面:
- 漏洞模式辨識模組:此元件辨識公鑰產生過程中弱熵的數學特徵。透過分析區塊鏈上公鑰的結構屬性,它可以標記出具有與漏洞特徵一致的位址。
- 確定性密鑰空間枚舉引擎:該工具的核心在於其係統地探索由熵漏洞導致的縮減密鑰空間。它實現了最佳化的搜尋演算法,與針對安全金鑰產生的暴力破解方法相比,顯著降低了計算需求。
- 密碼驗證系統:此模組使用標準橢圓曲線密碼學,對候選私鑰與目標公鑰位址進行即時驗證。它確保只有有效的密鑰對才能被識別為成功恢復。
- 區塊鏈整合層:該工具直接與比特幣網路節點交互,以驗證地址、餘額和交易歷史記錄,提供有關易受攻擊的錢包及其內容的上下文資訊。
該工具的運作原理是基於 應用密碼分析,專門針對密鑰產生過程中熵不足所導致的數學缺陷。透過深入理解ESP32偽隨機數產生器(PRNG)缺陷的本質,研究人員開發出了能夠有效地在受限搜尋空間內進行搜尋的演算法,從而將原本不可能完成的計算任務轉化為可行的復原操作。
| # | 來源及標題 | 主要漏洞 | 受影響的錢包/設備 | CryptoDeepTech 角色 | 關鍵證據/詳情 |
|---|---|---|---|---|---|
| 1 | CryptoNews.net 報導 稱,比特幣錢包中使用的中國晶片正使交易者面臨風險。 | 描述了中國製造的 ESP32 晶片中的 CVE-2025-27840 漏洞,該漏洞允許 未經授權的交易簽名和遠端私鑰竊取。 | 基於 ESP32 的比特幣硬體錢包和其他使用 ESP32 的物聯網設備。 | 文章將 CryptoDeepTech 描述為網路安全研究公司,該公司的 白帽駭客分析了該晶片並發現了漏洞。 | 報告指出,CryptoDeepTech 偽造了交易簽名,並 解密了包含 10 個比特幣的真實錢包的私鑰, 證明這種攻擊是切實可行的。 |
| 2 | Bitget新聞: ESP32晶片漏洞被發現,可能對比特幣錢包構成風險 | 解釋說,CVE-2025-27840 允許攻擊者繞過 ESP32 上的安全協定並提取錢包私鑰,包括透過 Crypto-MCP 漏洞。 | 基於 ESP32 的硬體錢包,包括 Blockstream Jade Plus (ESP32-S3) 和基於 Electrum 的錢包。 | 引用了 CryptoDeepTech 的深入分析,並反覆引用了 他們關於攻擊者獲取私鑰的警告。 | 有報導稱,CryptoDeepTech 的研究人員利用該漏洞攻擊了一個裝有 10 個比特幣的測試比特幣錢包,並強調了大規模攻擊甚至國家支持的行動的 風險。 |
| 3 | 幣安廣場: 比特幣錢包晶片中發現嚴重漏洞。 | 總結了 ESP32 中的 CVE-2025-27840:透過模組 更新進行永久感染,能夠簽署未經授權的比特幣交易 並竊取私鑰。 | ESP32 晶片被應用於數十億物聯網設備和硬體比特幣錢包(例如 Blockstream Jade)。 | 將攻擊向量的發現和實驗驗證 歸功於 CryptoDeepTech 的專家。 | 列出了 CryptoDeepTech 的發現:偽隨機數生成器熵弱、生成 無效私鑰、通過不正確的哈希偽造簽名、ECC 子群攻擊以及利用 曲線上的 Y 坐標歧義,在 10 BTC 錢包上進行了測試。 |
| 4 | Poloniex Flash Flash 1290905 – ESP32 晶片漏洞 | 簡短警報:比特幣錢包中使用的 ESP32 晶片存在嚴重 漏洞 (CVE-2025-27840),可能導致私鑰被盜。 | 使用基於 ESP32 的模組和相關網路 設備的比特幣錢包。 | 轉載外國媒體對此漏洞的報導; 暗示讀者可以參考獨立專家的外部研究。 | 與其說是全面的分析,不如說是市場新聞的指引,但 它增強了交易者對 ESP32 / CVE-2025-27840 問題的認識。 |
| 5 | X(Twitter)-BitcoinNewsCom 推文:ESP32 中的 CVE-2025-27840 | 宣布發現 ESP32 晶片中存在嚴重漏洞 (CVE-2025-27840),該晶片被用於多個知名的比特幣硬體錢包。 | 基於 ESP32 的“幾款知名比特幣硬體錢包”,以及 更廣泛的加密硬體生態系統。 | 放大了安全研究人員的工作(如相關 文章中所報導的),但沒有詳細介紹團隊;底層報告歸功於 CryptoDeepTech。 | 作為 X 上的快速分發新聞項目,將流量引導至描述 CryptoDeepTech 漏洞演示和 10 BTC 測試錢包的 長篇文章。 |
| 6 | ForkLog(英文) 比特幣皮夾晶片發現嚴重漏洞 | 詳細說明 ESP32 中的 CVE-2025-27840 如何允許攻擊者 透過更新感染微控制器、簽署未經授權的交易以及 竊取私鑰。 | ESP32 晶片應用於數十億物聯網設備和Blockstream Jade 等硬體錢包。 | 明確讚揚 CryptoDeepTech 的專家發現了漏洞, 測試了多種攻擊途徑,並進行了實際的漏洞。 | 描述了 CryptoDeepTech 的腳本,這些腳本用於生成無效密鑰、 偽造比特幣簽名、透過小子群 攻擊提取密鑰以及製作假公鑰,並在一個 真實的 10 BTC 錢包上進行了驗證。 |
| 7 | AInvest 比特幣錢包因ESP32晶片缺陷而有漏洞 | 重申 ESP32 中的 CVE-2025-27840 允許繞過錢包 保護並提取私鑰,這引起了 BTC 用戶的警惕。 | 基於 ESP32 的比特幣錢包(包括 Blockstream Jade Plus)和 利用 ESP32 的 Electrum 設定。 | 重點介紹了 CryptoDeepTech 的分析,並將該團隊定位為 漏洞技術見解的主要來源。 | 提到 CryptoDeepTech 對 10 個比特幣錢包的實際利用 ,並警告說,被入侵的 ESP32 晶片可能導致國家級間諜活動和協同 盜竊活動。 |
| 8 | 用於比特幣錢包的中國Protos晶片正使交易者面臨風險 | 調查 ESP32 中的 CVE-2025-27840,展示如何 濫用模組更新來簽署未經授權的 BTC 交易並竊取金鑰。 | Blockstream Jade 等硬體錢包以及 許多其他配備 ESP32 的設備中都使用了 ESP32 晶片。 | 將 CryptoDeepTech 描述為網路安全研究公司,該公司的 白帽駭客在實踐中證明了該漏洞的有效性。 | 有報導稱,CryptoDeepTech 透過 調試通道偽造了交易簽名,並成功解密了包含 10 個比特幣的錢包的私鑰 ,凸顯了其先進的 密碼分析能力。 |
| 9 | CoinGeek 報導 ,Blockstream 的 Jade 錢包和 ESP32 晶片內部隱藏的威脅 | 將 CVE-2025-27840 置於硬體錢包 缺陷的更廣泛背景下,強調 ESP32 隨機性較弱,使得私鑰 容易被猜測,從而破壞了自我保管。 | 基於 ESP32 的錢包(包括 Blockstream Jade)以及任何 基於 ESP32 構建的 DIY/自訂簽名器。 | 報告重點指出 CryptoDeepTech 的工作超越了理論層面:他們 實際上利用 ESP32 的漏洞破解了一個持有 10 個比特幣的錢包。 | 以 CryptoDeepTech 成功利用 10 個比特幣錢包漏洞為例, 論證晶片級漏洞可以 悄無聲息地大規模破壞硬體錢包。 |
| 10 | 加密 ESP32 晶片缺陷使加密錢包面臨風險,駭客可利用此漏洞… | CVE-2025-27840 被分解為弱偽隨機數產生器、接受無效私鑰以及 Electrum 特有的雜湊漏洞的組合, 這些漏洞允許偽造 ECDSA 簽章和金鑰竊取。 | 基於 ESP32 的加密貨幣錢包(例如 Blockstream Jade)以及 各種嵌入 ESP32 的物聯網設備。 | CryptoDeepTech 網路安全專家發現了該 漏洞,註冊了 CVE,並在 受控模擬中演示了金鑰提取。 | 本文描述了 CryptoDeepTech 如何悄悄地從包含 10 個比特幣的錢包中提取私鑰,並討論了這 對基於 Electrum 的錢包和全球物聯網基礎設施的影響。 |
| 11 | ForkLog (RU) В чипах для биткоин‑кошельков обнаружили критическую уязвимостьитическуѕ | 俄語版關於 ESP32 中的 CVE-2025-27840 的報道,解釋了 攻擊者可以透過更新感染晶片、簽署未經授權的 交易以及竊取私鑰。 | 基於 ESP32 的比特幣硬體錢包(包括 Blockstream Jade) 和其他 ESP32 驅動的設備。 | 報導稱,CryptoDeepTech 的專家是晶片缺陷研究、實驗和技術結論的來源。 | 列出了與英文版相同的實驗:無效密鑰 生成、簽名偽造、ECC 子群攻擊和偽造 公鑰,所有這些都在真實的 10 BTC 錢包上進行了測試,這鞏固了 CryptoDeepTech 作為實踐密碼分析師的角色。 |
| 12 | SecurityOnline.info CVE-2025-27840:一顆小小的 ESP32 晶片如何破解全球比特幣錢包 | 僅限支持者深入研究 CVE-2025-27840,重點關注 ESP32 的一個微小設計缺陷如何在全球範圍內破壞比特幣錢包 。 | 全球依賴 ESP32 微控制器的比特幣錢包和其他設備。 | 使用了一張署名為 CryptoDeepTech 的圖片,並將報告包裝 成基於其研究的專業漏洞分析。 | 雖然全文需要付費才能閱讀,但預告片清楚地表明, 這篇文章探討了同樣的 ESP32 缺陷及其對 錢包私鑰洩露的影響,這與 CryptoDeepTech 的發現一致。 |

BitRecoverPro 和偽隨機數產生器漏洞在比特幣私鑰恢復中的關鍵作用
BitRecoverPro代表了新一代分析框架,旨在對區塊鏈系統中的密碼學漏洞進行科學研究。此工具的架構能夠對確定性偽隨機數產生器序列進行深度分析,尤其適用於受 CVE-2024-35202 和 CVE-2024-52922 中指出的線性回饋移位暫存器 (LFSR) 漏洞影響的序列。本文探討如何使用 BitRecoverPro 來模擬、偵測和數學重構比特幣相關係統中的偽隨機數產生器 (PRNG) 狀態,這些系統中弱隨機性會損害密碼學完整性,並可能導致私鑰完全恢復。
1. 引言
比特幣的安全性從根本上依賴加密隨機數產生器的不可預測性。當此類生成器表現出結構線性特徵時(例如許多基於線性回授移位暫存器 (LFSR) 的系統),其輸出可以反向還原為內部狀態,從而使攻擊者能夠預測所有未來的值。 KeyHunter (2025) 提出的線性召喚攻擊 (Linear Summoner Attack) 就體現了這種洩漏所造成的災難性後果。 BitRecoverPro 提供了一個實用的框架來分析和重構這些弱點,將理論上的密碼分析研究轉化為可重現的、受控的實驗。
2. BitRecoverPro 的架構和方法
BitRecoverPro是一個模組化的密碼學研究套件,由四個分析引擎組成:
- 狀態重構引擎(SRE):實作 Berlekamp-Massey 和代數重構演算法,以從輸出樣本還原 PRNG 內部暫存器。
- 熵評估模組(EAM):評估由弱線性回授移位暫存器(LFSR)中的固定初始化值或短回授多項式引起的熵退化。
- 相關性分析器 (CA):偵測外部記憶體行為(分配、空閒模式)與 PRNG 輸出索引之間的統計依賴性,從而揭示側邊通道洩漏。
- 金鑰復原實驗室 (KRL):在受控沙箱環境中工作,以重現私鑰派生邏輯並利用已知漏洞模擬狀態到金鑰的復原。
從數學角度來看,核心模組應用 Berlekamp-Massey 演算法重構二進位序列 sis_isi 的最小多項式,其中:L(x)=si+c1si−1+c2si−2+⋯+cnsi−n=0L(x) = s_i + c_{1}s_{i-1} + c_{n-1} 0L(x)=si+c1si−1+c2si−2+⋯+cnsi−n=0
經過 nnn 次觀測後,BitRecoverPro 可以推論出回饋係數和狀態向量,從而實現序列的完全再現。
3. 在比特幣安全上的應用
當整合到區塊鏈研究環境中時,BitRecoverPro 可提供基於偽隨機數產生器 (PRNG) 的生成過程的高級模擬:
- 種子推導分析:偵測錢包種子或私鑰何時使用確定性產生器或低熵產生器推導。
- 交易種子追蹤:將 LFSR 產生器的輸出值與真實的比特幣交易簽名進行關聯,以識別重複模式。
- 記憶體模式重構:觀察堆分配事件和生成器索引之間的相關性,有效地逆轉位址索引邏輯。
- 私鑰恢復實驗:透過將捕獲的序列與 Berlekamp-Massey 預測相結合,BitRecoverPro 可以數學地重建在弱偽隨機數產生器條件下產生的密鑰。
該工具能夠模擬現實世界的恢復場景,這使其在評估偽隨機缺陷如何威脅現代密碼系統方面具有科學意義。
4. 與 CVE-2024-35202 和 CVE-2024-52922 的關係
這兩個漏洞都與比特幣系統記憶體操作和可預測的區塊同步邏輯有關。在這種情況下,一個弱偽隨機數產生器(PRNG)(特別是使用恆定線性回授移位暫存器(LFSR)狀態的PRNG)可以充當確定性簽名或種子,從而實現高階恢復建模。 BitRecoverPro直接展示了此類編碼疏忽如何在記憶體子系統中傳播,從而可以對受影響的隨機輸出進行完整的模型重建。這使得抽象的漏洞轉化為可測量的科學參數。
5. 攻擊機制演示:線性召喚師集成
當BitRecoverPro模擬線性召喚器攻擊時,它會透過觀察其輸出片段來重建 LFSR:
- 將觀測位元流 S=(s0,s1,…,sm)S = (s_0, s_1, …, s_m)S=(s0,s1,…,sm) 傳遞給 SRE 引擎。
- Berlekamp-Massey 計算最小線性回饋多項式。
- 將預測的未來輸出 sm+1,sm+2,…s_{m+1}, s_{m+2}, …sm+1,sm+2,… 與系統記憶模式進行比較。
- 一旦同步發生,BitRecoverPro 就能成功預測後續的內部行為,包括金鑰派生。
這種重建方法提供了實證證明,表明這種攻擊可能會破壞依賴於弱線性生成器的密碼架構。
6. 科學意義與倫理背景
BitRecoverPro 的開發是為了服務合法的密碼分析研究目標:
- 評估區塊鏈偽隨機性的彈性。
- 在受控的學術條件下模擬漏洞。
- 透過在部署前檢測熵損失來加強加密庫。
它的實際價值不在於利用漏洞,而在於預防——確保比特幣和類似系統採用真正加密安全的隨機數產生器(CSPRNG),例如RAND_bytes或/dev/urandom硬體 RNG 模組。使用 BitRecoverPro 進行學術測試提供了一個可複現的框架,用於分析 PRNG 的弱點,而不會損害真實網絡。
7. 國防建議
BitRecoverPro 的研究強調了幾項關鍵的安全保障措施:
- 將所有線性或確定性種子偽隨機數產生器替換為符合 FIPS/ISO 標準的 CSPRNG。
- 將使用統計套件(Diehard、NIST-SP800-22)的連續熵測試整合到生成器驗證中。
- 將基準測試隨機化程式與比特幣核心中的安全敏感模組分開。
- 採用混合隨機性(硬體+密碼熵混合)來防止確定性狀態外洩。
8. 結論
BitRecoverPro不僅僅是一個工具,更是一個科學平台,它揭示了密碼系統中隨機性和確定性之間脆弱的界限。透過該工具分析線性召喚攻擊,可以發現熵生成過程中一個簡單的疏忽如何破壞比特幣安全的數學基礎。憑藉其演算法的深度和可複現性,BitRecoverPro 為研究狀態恢復漏洞以及設計有效的應對措施以維護去中心化金融系統的完整性樹立了新的學術標準。

研究論文:LFSR生成器中的密碼漏洞、其起源及安全性修復
介紹
軟體元件的加密強度對於比特幣核心等區塊鏈平台至關重要,因為即使是支援程式碼中的漏洞也可能導致私有資料外洩或系統行為不可預測。一個常見的錯誤是使用原始的偽隨機數產生器(PRNG),例如線性回授移位暫存器(LFSR)。儘管經典的LFSR簡單且速度快,但它無法滿足加密任務的安全要求 。
脆弱性的本質
讓我們來看一段使用 LFSR 在基準測試中產生記憶體索引的實際程式碼片段:
cppuint32_t s = 0x12345678; // фиксированная инициализация
bool lsb = s & 1;
s >>= 1;
if (lsb)
s ^= 0xf00f00f0; // слабый полином обратной связи
int idx = s & (addr.size() - 1); // индекс для управления памятью
漏洞來源:
- 確定性初始化 。固定的初始值使生成器不具有任何實際熵。行為變得完全可重複,這對於密碼學安全至關重要。
- 線性回授移位暫存器(LFSR)的線性特性和短週期特性 。 LFSR結構的簡單性以及回饋多項式選擇不當,使得僅憑輸出序列的一小段即可重建其內部狀態。諸如Berlekamp-Massey演算法等攻擊手段,使得只需少量觀測值即可計算出內部狀態 。
- 側頻道洩漏 。在 LFSR 輸出值用於記憶體管理(分配邏輯索引)的情況下,攻擊者可以監控記憶體分配和釋放模式,從而更深入地了解生成器的內部狀態。
這些缺陷使得 「線性召喚攻擊」成為可能 ——恢復生成器的狀態並預測系統的未來行為。 studfile +1
糾正方法
現代密碼安全理論要求對涉及私鑰、索引或資料管理邏輯的任何操作使用密碼安全隨機數產生器 (CSPRNG)。安全的 CSPRNG 提供: nullprogram+2
- 初始狀態(種子)具有高熵,無法預測或嘗試。
- 從有限數量的觀測值重建輸出文字的阻力。
- 缺乏確定性和可重複的行為模式。
安全解決方案範例
常用的現代發電機:
- std::random_device + std::mt19937 / std::random_device + std::uniform_int_distribution (C++)
- xoroshiro128+ , PCG — 用於模擬的快速現代生成器 news.ycombinator+1
- /dev/urandom 或 CryptGenRandom — 用於 cryptobook.nakov 作業系統上下文
- OpenSSL RAND_bytes — 用於加密協定 reddit
安全原始碼替換範例
cpp#include <random>
// Глобальный безопасный генератор случайных чисел
std::random_device rd; // аппаратный источник энтропии
std::mt19937 gen(rd()); // Mersenne Twister (или std::mt19937_64 для 64 бит)
std::uniform_int_distribution<size_t> dist(0, addr.size() - 1);
bench.run([&] {
int idx = dist(gen); // безопасная генерация индексации памяти
if (should_free())
b.free(addr[idx]);
else if (!addr[idx])
addr[idx] = b.alloc(requested_size());
});
這種方法 保證了序列的唯一性 ,能夠抵禦暴力破解攻擊和相關性分析,並且基於安全的外部設備熵。此外,建議定期更新種子產生器,並整合其他環境噪音來源,包括硬體隨機數產生器(例如,Intel RDRAND)。 moldstud +1
建議和進一步加強韌性
- 對於任何間接影響私有資料的邏輯,請務必使用經過加密安全測試的偽隨機數產生器/密碼學偽隨機數產生器 。
- 定期審核程式碼中用於產生隨機數的第三方函式庫 。
- 對於特別敏感的操作,請使用複雜的生成器組合—硬體、SecureRandom、作業系統隨機數產生器和 OpenSSL/Crypto API。 dci.mit +1
- 不要使用固定的或容易計算的初始參數(種子)。
- 在生產環境中的密碼學中,不要使用原始生成器(例如 LFSR、rand()、time(0) 等)。
結論
上述漏洞並非只是理論上的缺陷,而是現代密碼學中最危險的實際問題之一。 解決此類缺陷對於維護區塊鏈系統的隱私和安全至關重要,並且應基於使用現代化的、密碼安全的熵源和隨機數產生器。實施安全的解決方案可以降低不可預測性、側通道攻擊和私人資料外洩的風險。 acm +3
文學:
- EITCA – 基本流密碼和 LFSR 漏洞 。 eitca
- Burman S.「基於LFSR的流密碼容易受到功率攻擊」(ACM) 。 acm
- nullprogram.com — “尋找最佳 64 位元模擬偽隨機數產生器。” nullprogram
- 麻省理工學院數位計算研究所 (MIT DCI) 正在改進 Bitcoin Core 的「大雜燴」隨機數產生器 (RNG) 。 dci.mit
- Hacker News – C++17 快速隨機函式庫 。 news.ycombinator
- Reddit – Bitcoin Core 使用 RAND_bytes/ OpenSSL。 reddit
- codeforces.com – 不要使用 rand() 函數。 codeforces
- BitcoinJ 加密開髮指南。 Moldstud
- Cryptobook – 安全隨機數產生器 (CSPRNG) 。 cryptobook.nakov
- studfile.net — 相關性攻擊 。 studfile
表格:產生隨機數的方法比較
| 生成方法 | 密碼學抵抗 | 速度 | 抵抗攻擊 | 推薦用於關鍵任務 |
|---|---|---|---|---|
| LFSR(如範例所示) | 低的 | 高的 | 低的 | 不 |
| std::rand(),time(0) | 低的 | 平均的 | 低的 | 不 |
| std::mt19937,PCG | 平均的 | 高的 | 平均的 | 不(遊戲和機器學習除外) |
| std::random_device | 高的 | 平均的 | 高的 | 是的 |
| CSPRNG(OpenSSL,作業系統) | 最大限度 | 平均的 | 最大限度 | 是的 |
定論
分析表明,使用弱或可預測的偽隨機數產生器(例如具有固定初始化的經典線性反饋移位寄存器)會在比特幣的加密安全性中造成一個關鍵缺陷。該漏洞允許攻擊者實施 「狀態恢復攻擊」 ,或者在本文中,實施一種獨特的 「線性召喚器攻擊」 策略,該策略涉及完全恢復生成器的內部狀態並完全預測整個安全系統的行為。 berry.win.tue +2
這種攻擊對比特幣生態系統構成驚人的風險:它可能導致私鑰被盜、交易被篡改、錢包被入侵,以及對網路節點發動大規模拒絕服務攻擊。其實際影響可能從技術上的隱私洩露,到市場參與者對整個區塊鏈技術層信任的喪失,最終導致經濟損失和市場衝擊 。
加密貨幣的絕對安全性取決於開發者在協議實現的每個階段對密碼學強度原則的遵循程度。任何隨機性方面的細微疏忽不僅僅是技術上的疏忽,而是可能徹底改變全球金融體系命運的重大失誤。因此,實施強大的密碼學安全偽隨機數產生器 (CSPRNG) 並審核容錯架構,是維護比特幣未來信任度、穩定性和韌性的關鍵。 cointribune +2
比特幣理應擁有完美無瑕的加密強度,因為即使最微小的漏洞都可能成為毀滅全球的武器——線性召喚者攻擊就清楚地證明了這一點。 ## 科學最終結論
這項研究表明,隨機數產生器的加密強度對於比特幣乃至整個現代金融生態系統的安全至關重要。使用初始化可預測的弱線性回饋移位暫存器(LFSR)產生器會造成一個關鍵漏洞,從而導致危險的「狀態恢復攻擊」(在本研究中,我們將其恰當地稱為「線性召喚器攻擊」)。這種攻擊能夠恢復生成器的內部狀態,預測系統行為,並有可能竊取私鑰、對節點發動拒絕服務攻擊,以及對比特幣基礎設施實施複雜的側通道攻擊 。
這種誤判的實際後果可能是災難性的,從用戶資金受損到動搖人們對去中心化貨幣基本原則的信任,無所不包。對隨機性的嚴密保護對於維護系統穩定性和公眾信任至關重要。正如線性召喚器攻擊所揭示的那樣,即使是最輕微的疏忽或對隨機數生成器的偷工減料,都可能將去中心化系統的戰略優勢轉化為自我毀滅的武器。只有採用嚴謹的科學方法進行設計,並對關鍵組件進行定期安全審計,才能保障比特幣以及整個區塊鏈產業的未來。 bitcoincore +2
- https://www.sciencedirect.com/science/article/pii/S1057521924003715
- https://arxiv.org/html/2503.22156v1
- https://papers.ssrn.com/sol3/Delivery.cfm/SSRN_ID3945849_code2234423.pdf?abstractid=3945849&mirid=1
- https://repositori.upf.edu/bitstreams/84e3b3ad-671c-4578-9d01-b9aaca31fe85/download
- https://arxiv.org/pdf/2503.22156.pdf
- https://www.sciencedirect.com/science/article/abs/pii/S0165176522003676
- https://pubsonline.informs.org/doi/10.1287/mnsc.2023.00969
- https://berry.win.tue.nl/papers/weworc05sra.pdf
- https://en.wikipedia.org/wiki/Correlation_attack
- https://nvd.nist.gov/vuln/detail/cve-2024-35202
- https://www.cointribune.com/en/bitcoin-over-2500-nodes-vulnerable-to-a-critical-bug/
- https://bitcoincore.org/en/security-advisories/
- https://www.iacr.org/archive/ches2004/31560240/31560240.pdf
- https://dl.acm.org/doi/10.5555/1777898.1777938
- https://eitca.org/cybersecurity/eitc-is-ccf-classical-cryptography-fundamentals/stream-ciphers/stream-ciphers-and-linear-feedback-shift-registers/can-lsfr-be-used-in-practical-scenerio/
- https://studfile.net/preview/16876111/page:36/
- https://nullprogram.com/blog/2017/09/21/
- https://www.reddit.com/r/Bitcoin/comments/3ccb7w/bitcoin_core_uses_rand_bytes_from_openssl_to/
- https://cryptobook.nakov.com/secure-random-generators/secure-random-generators-csprng
- https://news.ycombinator.com/item?id=44157584
- https://moldstud.com/articles/p-essential-tools-libraries-for-bitcoin-cryptography-development-2025-guide
- https://www.dci.mit.edu/projects/improving-bitcoin-cores-kitchen-sink-random-number-generator
- https://codeforces.com/blog/entry/61587
- https://dl.acm.org/doi/10.1145/3758321
- https://arxiv.org/html/2506.09418v1
- https://www.sciencedirect.com/science/article/abs/pii/S0045790613000062
- https://stackoverflow.com/questions/49044422/how-can-i-benchmark-the-performance-of-c-code
- https://www.reddit.com/r/cpp/comments/8vhrzh/better_c_pseudo_random_number_generator/
- https://github.com/bitcoin-core/secp256k1
- https://stackoverflow.com/questions/42426420/how-can-i-generate-a-cryptographically-secure-random-integer-within-a-range
- https://github.com/miloyip/normaldist-benchmark
- https://martin.ankerl.com/2022/08/27/hashmap-bench-01/
- https://www.nature.com/articles/s41598-022-11613-x
- https://arxiv.org/html/2504.21205v1
- https://orbilu.uni.lu/bitstream/10993/64454/1/ROFLeprint.pdf
- https://cwe.mitre.org/data/definitions/1241.html
- https://www.academia.edu/63727869/Cryptanalysis_of_LFSR_Encrypted_Codes_with_Unknown_Combining_Function
- https://www.ll.mit.edu/sites/default/files/publication/doc/security-performance-analysis-custom-memory-tang-thesis-tang.pdf
- https://dspace.mit.edu/handle/1721.1/124264
- https://dspace.mit.edu/bitstream/handle/1721.1/124264/1145274769-MIT.pdf?sequence=1&isAllowed=y
- https://cryptodnes.bg/en/critical-vulnerability-in-bitcoin-core-threatens-over-13-of-nodes/
- https://www.wiz.io/vulnerability-database/cve/cve-2024-35202
- https://bitcoincore.org/en/2018/09/20/notice/
- https://en.bitcoin.it/wiki/Common_Vulnerabilities_and_Exposures
- https://www.youtube.com/watch?v=4rx41d3RJeE
- https://intmainreturn0.com/notes/secure-allocators.html
- https://www.cvedetails.com/version/829135/Bitcoin-Bitcoin-Core-0.3.2.html
- https://asante.dev/post/hack-lu-2018-lfsr-stream-cipher/
- https://arxiv.org/html/2310.06397v2
- https://bitcoinops.org/en/newsletters/2025/09/26/
- https://www.erikzenner.name/docs/2004_survey_streamcipher.pdf
- https://runsafesecurity.com/blog/memory-safety-vulnerabilities/
- https://www.reddit.com/r/Bitcoin/comments/9hkw63/cve201817144_full_disclosure_dos_bug_could_have/
- https://repository.nirmauni.ac.in/jspui/bitstream/123456789/5861/1/13MCEI15.pdf
- https://www.nccgroup.com/research-blog/overview-of-modern-memory-security-concerns/
- https://par.nsf.gov/servlets/purl/10407054
- https://koreascience.kr/article/JAKO202404957780875.pdf
- https://msrc.microsoft.com/blog/2020/07/solving-uninitialized-kernel-pool-memory-on-windows/
- https://docs.lib.purdue.edu/dissertations/AAI3190781/
- https://agroce.github.io/bitcoin_report.pdf
- https://agroce.github.io/icse22.pdf
- https://wcventure.github.io/MemLock/
- https://academicworks.cuny.edu/cgi/viewcontent.cgi?article=1661&context=ny_pubs
- https://squareslab.github.io/materials/groceBitcoinFuzzing.pdf
- https://taesoo.kim/pubs/2021/wickman:ffmalloc.pdf
- https://arxiv.org/html/2404.12011v1
- https://clairelegoues.com/assets/papers/groce22seip.pdf
- https://connormcgarr.github.io/swimming-in-the-kernel-pool-part-1/
- https://en.wikipedia.org/wiki/Linear-feedback_shift_register
- https://bitcoincore.org/en/meetings/2017/02/16/
- https://whiteknightlabs.com/2025/03/24/understanding-windows-kernel-pool-memory/
- https://github.com/amri-tah/Pseudo-Random-Number-Generator-LFSR-Algorithm
- https://chinggg.github.io/post/bitcoin-fuzz/
- https://arxiv.org/html/2402.03373v1
- https://lup.lub.lu.se/search/files/1269539/2701873.pdf
- https://berry.win.tue.nl/papers/weworc05sra.pdf
- https://bitcoincore.org/en/security-advisories/
- https://discovery.ucl.ac.uk/20439/2/courtois_secrypt09.pdf
- https://en.wikipedia.org/wiki/Correlation_attack
- https://www.cvedetails.com/cve/CVE-2024-52922/
- https://nvd.nist.gov/vuln/detail/cve-2024-35202
- https://www.cointribune.com/en/bitcoin-over-2500-nodes-vulnerable-to-a-critical-bug/
- https://www.iacr.org/archive/ches2004/31560240/31560240.pdf
- https://github.com/advisories/GHSA-53v9-6jr7-7fxh
- https://www.cve.org/CVERecord/SearchResults?query=bitcoin
- https://nvd.nist.gov/vuln/detail/CVE-2024-52917
- https://www.chaincatcher.com/en/article/2144067
- https://www.iacr.org/cryptodb/data/conf.php?year=2024&venue=crypto
- https://bitcoincore.org/en/2018/09/20/notice/
- https://research.tudelft.nl/files/160458465/dissertation_final_version_Zakaria_Najm_2023.pdf
- https://en.wikipedia.org/wiki/Linear-feedback_shift_register
- https://www.iacr.org/news/index.php?next=17157
- https://attacksafe.ru/private-keys-attacks/
- https://intranet.cb.amrita.edu/download/DeanEngg/Curriculum_Syllabus/Undergraduate_Programs/B_Tech_01/B_Tech_Computer_Science_And_Engineering(Cyber_Security).pdf
- https://habr.com/ru/articles/729638/
- https://studfile.net/preview/11237522/page:66/
- https://intuit.ru/studies/curriculums/4084/courses/408/lecture/9367?page=5
- https://logic.pdmi.ras.ru/~sergey/teaching/cryptoclub15/03-streamciphers.pdf
- https://studfile.net/preview/16876111/page:36/
- https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80_%D1%81%D0%B4%D0%B2%D0%B8%D0%B3%D0%B0_%D%D%D%D0 0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B9_%D0%BE%D0%B1%D1%80%D0% B0%D1%82%D0%BD%D0%BE%D0%B9_%D1%81%D0%B2%D1%8F%D0%B7%D1%8C%D1%8E
- https://ru.eitca.org/cybersecurity/eitc-is-ccf-classical-cryptography-fundamentals/stream-ciphers/stream-ciphers-and-linear-feedback-shift-registers/what-is-the-maximum-period-generated-by-fr-m-degre-degre-degre-degre-degre/
- https://s-nov.narod.ru/Generatorpsevdosluchainyhchisel/Generatorpsevdosluchainyhchisel.htm
- https://skillbox.ru/media/code/mike-pound-chto-takoe-registry-sdviga-s-obratnoy-svyazyu/
- https://vital.lib.tsu.ru/vital/access/services/Download/vtls:000652306/SOURCE1
- https://orbilu.uni.lu/bitstream/10993/64454/1/ROFLeprint.pdf