唯一可能知曉答案的人於 2023 年辭世後,這個懸而未決的問題其實有一個極其平淡的解答:一個以系統時鐘初始化的 1990 年代隨機數產生器。作者表示,這個答案讓他們更加確信這些曲線是誠實選出的,而非相反。
執行摘要
- 橢圓曲線數位簽章演算法(ECDSA)於 2000 年被美國國家標準與技術研究院(NIST)納入 FIPS 186-2 數位簽章標準。規範中公佈了「種子」參數,其雜湊值用於定義曲線係數 b。然而,美國國家安全局(NSA)在提供這些種子時,並未給出任何解釋或理由。
- 2026 年 10 月,一名 Anthropic 員工在不提供任何線索提示的情況下,請內部研究模型推算這些種子是如何產生的。在不到半小時內,Claude 發現沒有任何一個種子是雜湊輸出 - 它們全都是由系統時鐘初始化的常見偽隨機數產生器 lrand48 的輸出結果。
- 這項發現並不是對 ECDSA 曲線的密碼學破解、新型攻擊或安全弱點。作者表示,這反而讓他們更加確信這些曲線在挑選時沒有被植入後門或刻意的弱點。
- Claude 還解釋了 1997 年 5 月生成的六條曲線的基點,指出它們來自 Arjen Lenstra 的長整數算術套件 FreeLIP 中的隨機數產生器。據作者所知,此前從未有任何一個 NIST 基點的來源被成功解釋過。
- 仍待解開的謎團包括:P-224、P-256、P-384 與 P-521 的基點是如何選出的,以及跳過部分候選曲線背後究竟依據了什麼標準(如果有的話)。
看似經過推導的係數,與無人能解釋的種子 #
ECDSA 於 2000 年被 NIST 採納為 FIPS 186-2 數位簽章標準的一部分。其曲線規範中帶有一個「種子」(seed)參數,該種子的雜湊值被用來定義曲線的係數 b。從紙面上看,這是一個令人放心的設計:如果係數是由公開種子的雜湊值所產生,那麼按理說,沒有人能夠手動微調曲線參數來動手腳。
但這個論證的可靠性完全取決於種子本身。這些種子是由 NSA 提供的,卻沒有附帶任何解釋或依據,而這道空白正是整個問題的癥結所在。雜湊函數是一扇單向門:它只能證明係數確實衍生自該種子,卻對種子本身的來歷隻字不提。多年來,這些種子就像無法解釋的常數一樣躺在標準文件裡。
坊間曾流傳一個故事來填補這段空白。最廣為人知的版本是,NSA 資深員工 Jerry Solinas 用一句幽默英文短語的雜湊值生成了這些種子。原始報告隨後指出,這個說法被證實是錯的。這類故事之所以容易讓人相信,是因為它細節具體、帶點趣味,而且沒有人能反駁。但它算不上證據。實際後果就是沒有人能核實這項說法,而根據傳聞去暴力搜尋這句英文短語的嘗試也全都無功而返。
最直接的求證對象自然是 Solinas 本人。但 Jerry 於 2023 年過世,當時的其他同事也沒有回應。這使得這些種子最初究竟是如何推導出來的,成了一個懸案。
我認為這是看待整件事的正確角度:一個支撐全球數位簽章的標準,其參數來源若只能依賴少數幾個人的記憶,那是一種極其脆弱的安排。而接下來發生的事情最有趣的地方在於,它根本不需要依賴那些記憶。答案一直就寫在公開的種子裡,只等著某個人來檢驗正確的假說。
三十分鐘、零提示,以及一個根本不是雜湊的結果 #
2026 年 10 月,一名充滿好奇心的 Anthropic 員工在不指出任何線索的情況下,詢問一個內部研究模型能否查明這些種子的生成方式。這裡的提問方式很關鍵:模型沒有被告知該往哪個方向找,也沒有拿到現成的答案去做驗證。
在不到半小時內,Claude 就找出了 NIST P-192、P-224、P-256、P-384 與 P-521 種子的起源。結果非常直接:沒有任何一個種子是雜湊演算法的產物,它們全都是 C 語言標準函式庫中 lrand48 隨機數產生器的輸出。
因此,人們永遠不可能找到那句所謂的「通行碼」,因為根本就不存在什麼通行碼。這些種子是由一個以系統時鐘初始化的常見偽隨機數產生器所生成的。這是一個毫無神祕感的解釋,而這恰恰是它的魅力所在:它不需要祕密、不需要特殊知識,也不需要任何無法解釋的常數。
其運作機制很容易描述。演算法的每一次迭代,都會從產生器中抽取 20 個位元組(bytes)作為候選種子。迭代次數是個有趣的細節,因為它顯示整個過程是一場搜尋,而非單次抽取。例如,P-256 進行了 1842 次迭代才輸出最終標準化的種子。當年執行這支程式的人,顯然是讓程式不斷篩選候選值,直到其中一個候選值產生出符合要求的橢圓曲線為止。
作者對於這項發現「意味著什麼」與「不意味著什麼」非常謹慎,他們的定調值得再次強調:這不是密碼學破解,不是新攻擊,也不是 ECDSA 曲線中的弱點;使用者不需要採取任何行動。他們更進一步表示,這項發現讓他們更有信心認為,這些曲線在挑選時並沒有植入任何後門或刻意弱點。這是一個審慎保留的結論,我們也應如此看待。原始報告將其表述為「作者的信心」,這與「證明曲線絕對清白」是兩回事。這項發現真正提供的,是用一個平淡、可查驗的生成過程,取代了一個無法驗證的傳聞。
掃描器如何找出 1990 年代產生器的指紋 #
這套分析方法值得特別關注,因為這是其他人可以重複使用的部分。
Claude 猜測,當年生成這些曲線的軟體使用了 1990 年代 C 語言函式庫內建的偽隨機數產生器(PRNG)。原始報告將此視為一項猜測,而且是一個非常高明的猜測:它將原本漫無邊際的搜尋,瞬間縮小為特定年代的少數幾個候選目標。
接著,Claude 編寫了一個掃描器。它沿著每個公開種子每次滑動一個位元(bit),測試相鄰的數據塊是否為某個 1990 年代產生器的連續輸出。掃描涵蓋了產生器與輸出切片的 34 種組合。最終在最高有效位元(top bits)中命中了一個規律模式,而該模式純屬巧合發生的機率僅為 1/5810。
這個模式正是線性同餘產生器 lrand48 的特徵簽章,因為 lrand48 每次只會回傳 48 位元內部狀態中的高 31 位元。產生器的設計在這裡洩露了行蹤:由於 lrand48 在每次調用時都隱藏了 48 位元狀態中的 17 個位元,其輸出會呈現出真正隨機字串不會有的規律性,而專門為尋找這種規律而建構的掃描器就能將其捕捉出來。
為了還原內部狀態,Claude 取出了第一個字組(word),並窮舉了 17 個隱藏位元的所有 2^17 種可能值。這是一個很小的搜尋空間,而且因為產生器結構極其簡單,計算成本非常低。每個候選狀態都可以拿去與種子的下一個數據塊進行比對,而正確的那個狀態會讓整個序列完美對齊。
素數域曲線(prime curves)的種子稍微難一點,但也只是一點點。它們同樣來自 lrand48 產生器,只是每次輸出保留的位元數更少。可見位元變少,意味著可用來錨定猜測的線索變少,因此單純的暴力窮舉不再那麼直接有效。原始報告給出的解答是:還原截斷線性同餘產生器(truncated LCG)的內部狀態,是一個教科書級別的格(lattice)問題,可以用 Lenstra-Lenstra-Lovasz(LLL)基底約減演算法來求解。模型能夠認出這一點,並直接套用標準數學工具,完全不需要任何奇技淫巧。
五個 NIST 素數曲線種子,加上來自 ANSI X9.62 標準的另外五個種子,全都遵循同一個模式:lrand48() >> 23。十個種子共享同一條提取規則,這是它們背後出自同一個生成流程的強力證據。
隨後的檢驗則將「僥倖吻合」與「真正還原」徹底區分開來:每一個還原出的 48 位元狀態,都能完整重新生成對應種子的全部 160 個位元,這絕不可能是巧合。局部的匹配或許還能說是運氣,但全部 160 個位元一字不差地重現,是無法用巧合來解釋的,這也是為何這項結論能夠如此篤定地公佈。
將產生器逆向倒推,讀取當年的時鐘 #
還原出內部狀態告訴了你種子是「如何」產生的,但還沒告訴你是「何時」產生的。為此,Claude 利用了該產生器的一個特性:它逆向倒推就像正向運行一樣容易。對於每一個種子,Claude 將內部狀態一步步往回推,直到狀態的低 16 位元等於 0x330E,也就是標準 srand48 初始化所會產生的特定形式。
這個形式本身就是一枚指紋。如果一個還原出的狀態可以倒推回低 16 位元為 0x330E 的形態,就代表該產生器是以標準方式啟動的,也就是將一個初始種子值傳入 srand48。而在這個案例中,那個初始種子值就是時間。這些曲線種子正是使用以 Unix 時間戳記初始化的弱偽隨機數產生器所生成的。
Claude 當時的內部思考過程記錄下了認出這一刻的瞬間:高位的 20 個位元全為零,巧合機率僅為百萬分之一(1e-6)。這雖是一個小細節,卻展示了推理是直接根據浮現出的數字運作的,而非事後拼湊出的故事。
不過,推算出來的日期並非全都乾乾淨淨。四條二元域曲線(binary curves)的初始化時間讀出來是 1984 年 2 月,對於一個在 1990 年代末期使用的產生器而言,這顯然不是任何人會預期的日期。然而,一旦將這些時間戳記乘以二,二元域曲線的初始化時間就精確對應到了 1998 年 4 月 17 日,正好在 P-224 生成運行的兩個星期之後。原始報告據此推論,當年的程式可能將時鐘數值除以了二。這項推論使用了保留語氣,而且理當如此:它是為了「為何原始數值讀起來像 1984 年」所提出的一種可能解釋;將數值加倍後剛好落在另一場運行兩週之後,這一點非常具有暗示性,但仍不足以作為確認當年程式內部細節的鐵證。
出於一個與密碼學無關的理由,我認為這是整份報告中最具說服力的部分。如果是一個編造出來的故事,一定會給出整整齊齊的日期;但這次發現卻先得出了一個怪異的日期,隨後透過一個簡單的修正,讓二元域曲線與 P-224 的運行排進了合理連貫的時間序列中。雜亂的數據在一個簡單假說下豁然開朗,這正是真實歷史溯源應有的樣貌。
基點背後也有一套配方 #
種子定義了曲線本身,而基點(base points)則是另一回事,原始報告也將它們分開處理。
1997 年 5 月生成的六條曲線(P-192,以及五條 ANSI X9.62 範例曲線 prime192v2、prime192v3 與 prime239v1 至 v3)的基點,來自 Arjen Lenstra 開發的長整數算術套件 FreeLIP 中的隨機數產生器。Victor Shoup 的 NTL 函式庫早期版本也搭載了完全相同的程式碼。第二個事實對於獨立驗證非常重要:這個產生器是作為任何人都能查閱的公開程式碼存在的,而非某個封閉的私有工具。
這套生成配方非常簡短:用一個小整數作為產生器的種子;丟棄前七次輸出;從對 p 取模(mod p)後的 26 位元輸出中生成候選 x 座標;重複此候選生成過程,直到 x 落在曲線上為止。
Claude 找出了這些產生器的初始種子:P-192 為 20000,prime239v1 至 v3 分別為 20420、20507 與 20509,而 prime192v2 與 v3 則為 20512 與 20517。這些全都是人類隨手輸入程式的那種小整數,完全吻合配方第一步的要求。
作者在此提出了一個謙遜且值得引述其精神的聲明:據他們所知,此前從未有任何一個 NIST 基點的來源被解釋過。這份保留態度是他們自己加上的,而且非常得體 - 他們並未宣稱自己讀遍了世上寫過的每一份文件,只是誠實交代自身知識的邊界。
然而,這套配方到這裡就失靈了。P-224、P-256、P-384 與 P-521 的基點並不符合這套配方,作者也無法解釋它們是如何被挑選出來。如果一份報告想粉飾太平,略過這一點會讓結論顯得更工整,但作者選擇將它如實保留。因此,這項解釋涵蓋了 1997 年 5 月的六條曲線,並將四條 NIST 素數曲線的基點留在未解狀態。
那些被跳過的候選曲線 #
最後一項發現最有可能引發爭論,因此值得字斟句酌地細讀。
對於 P-256,公開的種子是第 1842 個候選值。但是在同一次運行中,第 876 個候選值其實也產生了一條大小正確、且參數挑選方式與公開曲線完全相同的素數階(prime-order)曲線。換句話說,當年的生成流程跳過了一條表面上看來完全合格的曲線。
這並非單一偶發事件。P-224 的運行過程跳過了三條這樣的合格曲線,而生成 ANSI X9.62 範例曲線的兩次運行則另外跳過了七條。
作者對自己不知道的事情直言不諱:他們不知道當年使用了什麼額外標準來跳過這些曲線,也不知道這是否只是某種無意的程式副產物(unintentional artifact)。這是一項明確承認的研究限制,而對「無意的程式副產物」採取保留態度也是誠實的立場:數據只證明了有候選曲線被跳過,卻沒有顯示原因。
接著,作者給出了他們的專業判斷:由於被跳過的候選曲線數量很少,他們認為「刻意挑選弱化曲線」的說法在情理上是站不住腳的。這是基於計數結果對合理性所做的審慎推論:如果整個流程總共只跳過了屈指可數的幾個候選值,根本沒有多少空間去搜尋特定的數學弱點。
不過仍有一項但書,原始報告將其列為一種「可能性」而非「調查發現」:原則上,依然可以設想有人透過對隨機數產生器的輸入時間戳記進行搜尋,從而挑選出具有某種特定性質的曲線。這純屬推測,報告中也明確標記為推測。我們既不應該將其當作任何不軌行為的證據,也不應該悄悄將它抹去。一份公允的報告會將它作為未完全排除的路徑留在檯面上,同時註明作者認為挑選弱化曲線的可能性極低。
這項結果改變了什麼,又留下了什麼 #
先從它「沒有改變什麼」說起。這些曲線並沒有被破解。原始報告用不同的措辭強調了兩次,而且無需採取任何修補或替換行動。任何把這篇報告讀成「應該立刻淘汰 P-256」的人,都完全誤讀了它。
它真正改變的,是一樁陳年疑雲的地位。只要種子的來歷一天得不到解釋,「由 NSA 提供且無任何解釋」就一直是懸在標準頭上的一個巨大問號。如今,這個問號有了具體的答案:這些種子並不是某句神祕暗語的不可解雜湊值,而是由系統時鐘初始化的程式所產生的 lrand48 輸出,且從還原出的內部狀態就能一字不差地重現每個種子的全部位元。一個任何擁有公開種子的人都能動手驗證的解釋,遠勝過任何無法查證的傳言。
對於在密碼學標準之上打造產品的創辦人與工程師而言,這裡有一個重要的啟示:提出關於「來源清白」的聲稱很容易,但要核實卻很昂貴;然而一旦問對了問題,這場延宕多年的核實工作其實只花了不到半小時。滑動掃描器、2^17 搜尋與格約減全都是標準動作,過去幾十年來真正缺乏的,只是一個願意挽起袖子、拿公開數字去逐一測試這些老方法的人。
同時,我也想克制過度吹捧這套方法的誘惑。原始報告僅呈現了一個團隊針對特定一組種子的研究成果,並未宣稱同樣的方法能解開所有標準中每一個未知的常數,我也不會替他們誇下這種海口。這項成果所展示的價值更加聚焦,而在我看來也更加實用:當某個參數的起源成謎時,一個謹慎的模型只要對當代的工具鏈做出合理猜測,就能迅速檢驗該猜測並完整展示其推導過程。
尚未完成的工作非常清晰,足以構成下一階段的研究議程:P-224、P-256、P-384 與 P-521 這四條曲線的基點依然缺乏解釋;諸如 P-256 中在公開的第 1842 號候選值之前被跳過的第 876 號候選值,仍缺乏明確的篩選標準說明,也沒有人知道這種跳過究竟是刻意為之還是程式副產物。這些答案究竟還留在老舊的原始碼裡、留在健在同事的記憶中,還是藏在與破解種子相同的模式搜尋裡,仍是未解之謎。破解種子只花了半小時;但那四個基點,已經成功抵擋住這套方法一次了。
常見問題 #
這項發現是否破解了 P-256 或 P-384 等 NIST ECDSA 曲線?
沒有。發現曲線種子是由 lrand48 而非通行碼雜湊所生成,並不會對 ECDSA 曲線造成任何密碼學破解、新型攻擊或數學弱點,因此完全不需要因為這項發現而進行任何修補或系統遷移。
NIST 素數曲線的種子實際上是如何生成的?
每個 160 位元的種子都是透過調用 C 語言標準函式庫的 lrand48 線性同餘產生器生成的(具體而言,五條 NIST 素數曲線與五條 ANSI X9.62 曲線均採用 lrand48() >> 23),並透過 srand48 以 Unix 時間戳記進行初始化。利用 Lenstra-Lenstra-Lovasz(LLL)格基底約減演算法還原出 48 位元的內部狀態後,即可完整重現每個公開種子的全部 160 個位元。
關於 NIST 橢圓曲線參數,還有哪些部分尚未得到解釋?
雖然 P-192 與五條 ANSI X9.62 曲線的基點已被追溯至 Arjen Lenstra 的 FreeLIP 套件中以小整數初始化的隨機數產生器,但 P-224、P-256、P-384 與 P-521 的基點並不符合該配方;此外,當年跳過較早出現的合格素數階候選曲線(例如 P-256 中在第 1842 號候選值之前的第 876 號候選值)所依據的具體標準,目前依然未知。
參考文獻 #
- Anthropic Frontier Red Team, (2026). Claude reveals ECDSA curve origins ⧉. Anthropic.
- National Institute of Standards and Technology, (2000). FIPS PUB 186-2: Digital Signature Standard (DSS) ⧉. NIST.
- Victor Shoup, (2024). NTL: A Library for doing Number Theory ⧉. libntl.org.
最近審閱 .
轉載本文
複製 Medium 格式
# NIST 橢圓曲線背後的神祕種子從來就不是雜湊值,而 Claude 在半小時內查明了真相 — Sebastien Rousseau > Originally published at [https://sebastienrousseau.com/zh-hant/2026-10-26-nist-tuoyuan-quxian-shenmi-zhongzi-bushi-tw/](https://sebastienrousseau.com/zh-hant/2026-10-26-nist-tuoyuan-quxian-shenmi-zhongzi-bushi-tw/) 隨 NIST P-192、P-224、P-256、P-384 與 P-521 曲線發布的種子從來都不是雜湊輸出。它們來自 C 語言函式庫的 lrand48 產生器,並以 Unix 時間戳記作為種子。Claude 在... Read the full article on sebastienrousseau.com: https://sebastienrousseau.com/zh-hant/2026-10-26-nist-tuoyuan-quxian-shenmi-zhongzi-bushi-tw/
複製 Mastodon 格式
NIST 橢圓曲線背後的神祕種子從來就不是雜湊值,而 Claude 在半小時內查明了真相 — Sebastien Rousseau 隨 NIST P-192、P-224、P-256、P-384 與 P-521 曲線發布的種子從來都不是雜湊輸出。它們來自 C 語言函式庫的 lrand48 產生器,並以 Unix 時間戳記作為種子。Claude 在... https://sebastienrousseau.com/zh-hant/2026-10-26-nist-tuoyuan-quxian-shenmi-zhongzi-bushi-tw/
複製 LinkedIn 格式
NIST 橢圓曲線背後的神祕種子從來就不是雜湊值,而 Claude 在半小時內查明了真相 — Sebastien Rousseau 隨 NIST P-192、P-224、P-256、P-384 與 P-521 曲線發布的種子從來都不是雜湊輸出。它們來自 C 語言函式庫的 lrand48 產生器,並以 Unix 時間戳記作為種子。Claude 在. 以下是關鍵策略要點: - 看似經過推導的係數,與無人能解釋的種子. ECDSA 於 2000 年被 NIST 採納為 FIPS 186-2 數位簽章標準的一部分。其曲線規範中帶有一個「種子」(seed)參數,該種子的雜湊值被用來定義曲線的係數 b。從紙面上看,這是一個令人放心的設計:如果係數是由公開種子的雜湊值所產生,那麼按理說,沒有人能夠手動微調曲線參數來動手腳。. - 三十分鐘、零提示,以及一個根本不是雜湊的結果. 2026 年 10 月,一名充滿好奇心的 Anthropic 員工在不指出任何線索的情況下,詢問一個內部研究模型能否查明這些種子的生成方式。這裡的提問方式很關鍵:模型沒有被告知該往哪個方向找,也沒有拿到現成的答案去做驗證。. - 掃描器如何找出 1990 年代產生器的指紋. 這套分析方法值得特別關注,因為這是其他人可以重複使用的部分。. - 將產生器逆向倒推,讀取當年的時鐘. 還原出內部狀態告訴了你種子是「如何」產生的,但還沒告訴你是「何時」產生的。為此,Claude 利用了該產生器的一個特性:它逆向倒推就像正向運行一樣容易。對於每一個種子,Claude 將內部狀態一步步往回推,直到狀態的低 16 位元等於 0x330E,也就是標準 srand48 初始化所會產生的特定形式。. 貴組織如何應對本文所述的挑戰? → https://sebastienrousseau.com/zh-hant/2026-10-26-nist-tuoyuan-quxian-shenmi-zhongzi-bushi-tw/ #神祕 #種子 #Nist #橢圓曲線 #雜湊 Sebastien Rousseau | CC-BY-4.0
引用本文
NIST 橢圓曲線背後的神祕種子從來就不是雜湊值,而 Claude 在半小時內查明了真相 — Sebastien Rousseau
隨 NIST P-192、P-224、P-256、P-384 與 P-521 曲線發布的種子從來都不是雜湊輸出。它們來自 C 語言函式庫的 lrand48 產生器,並以 Unix 時間戳記作為種子。Claude 在...
BibTeX
@online{rousseau2026nist,
author = {Rousseau, Sebastien},
title = {{NIST 橢圓曲線背後的神祕種子從來就不是雜湊值,而 Claude 在半小時內查明了真相 — Sebastien Rousseau}},
year = {2026},
url = {https://sebastienrousseau.com/zh-hant/2026-10-26-nist-tuoyuan-quxian-shenmi-zhongzi-bushi-tw/},
urldate = {2026}
}RIS
TY - GEN AU - Rousseau, Sebastien TI - NIST 橢圓曲線背後的神祕種子從來就不是雜湊值,而 Claude 在半小時內查明了真相 — Sebastien Rousseau PY - 2026 UR - https://sebastienrousseau.com/zh-hant/2026-10-26-nist-tuoyuan-quxian-shenmi-zhongzi-bushi-tw/ ER -
Vancouver
Rousseau S. NIST 橢圓曲線背後的神祕種子從來就不是雜湊值,而 Claude 在半小時內查明了真相 — Sebastien Rousseau. sebastienrousseau.com. 2026 Oct 26. Available from: https://sebastienrousseau.com/zh-hant/2026-10-26-nist-tuoyuan-quxian-shenmi-zhongzi-bushi-tw/
Chicago
Rousseau, Sebastien. "NIST 橢圓曲線背後的神祕種子從來就不是雜湊值,而 Claude 在半小時內查明了真相 — Sebastien Rousseau." sebastienrousseau.com. October 26, 2026. https://sebastienrousseau.com/zh-hant/2026-10-26-nist-tuoyuan-quxian-shenmi-zhongzi-bushi-tw/.
APA
Rousseau, S. (2026, October 26). NIST 橢圓曲線背後的神祕種子從來就不是雜湊值,而 Claude 在半小時內查明了真相 — Sebastien Rousseau. sebastienrousseau.com. https://sebastienrousseau.com/zh-hant/2026-10-26-nist-tuoyuan-quxian-shenmi-zhongzi-bushi-tw/
重新發佈本文
NIST 橢圓曲線背後的神祕種子從來就不是雜湊值,而 Claude 在半小時內查明了真相 — Sebastien Rousseau
隨 NIST P-192、P-224、P-256、P-384 與 P-521 曲線發布的種子從來都不是雜湊輸出。它們來自 C 語言函式庫的 lrand48 產生器,並以 Unix 時間戳記作為種子。Claude 在...
本文採用以下授權條款 Creative Commons Attribution 4.0 International. 重新發佈需註明原始 URL 出處。
NIST 橢圓曲線背後的神祕種子從來就不是雜湊值,而 Claude 在半小時內查明了真相 — Sebastien Rousseau 隨 NIST P-192、P-224、P-256、P-384 與 P-521 曲線發布的種子從來都不是雜湊輸出。它們來自 C 語言函式庫的 lrand48 產生器,並以 Unix 時間戳記作為種子。Claude 在... Originally published at https://sebastienrousseau.com/zh-hant/2026-10-26-nist-tuoyuan-quxian-shenmi-zhongzi-bushi-tw/ by Sebastien Rousseau. Licensed under CC-BY-4.0.
