模乘法反元素計算機

使用擴展歐幾里得演算法,求互質整數的模反元素。

模反元素計算機
輸入整數與模數,求出最小非負反元素。

關於模乘法反元素計算機

模 m 的乘法反元素是在模運算中能夠抵消乘法的整數。對於整數 a,反元素 x 須滿足:a 乘以 x 後除以 m,餘數為 1。通常寫成 a 乘以 x 模 m 同餘於 1。例如,3 乘以 4 等於 12,12 除以 11 餘 1,因此 4 是 3 模 11 的乘法反元素。 並非每一對整數都有反元素。存在的充要條件是 a 與 m 互質,也就是最大公因數為 1。以 6 模 9 為例:6 的任何倍數都與 9 有公因數 3,因此不可能餘 1。相較之下,7 與 26 的最大公因數為 1,而 7 模 26 的反元素為 15,因為 105 除以 26 餘 1。計算機會先檢查最大公因數,再顯示答案。 擴展歐幾里得演算法可有效率地求出反元素。一般歐幾里得演算法藉由反覆相除並取餘數,計算最大公因數;擴展版本同時追蹤係數,將最大公因數表示為原始輸入的整數線性組合。當最大公因數等於 1,a 的係數就是一個反元素。此係數可能為負,因此計算機會將它對 m 取模,顯示從零到 m 減一之間的最小非負代表元。 模反元素讓同餘系統中的除法成為可能。若要解 a 乘以 x 模 m 同餘於 b,只要在反元素存在時,將 b 乘以 a 的反元素即可。它們在一次同餘方程式、中國剩餘定理、模分數、雜湊、錯誤偵測與公開金鑰密碼學中都很重要。例如,RSA 金鑰產生流程會求某個指數對歐拉函數值的模反元素。實際密碼學實作應使用經過嚴格稽核的任意精度函式庫,而不是一般瀏覽器數值。 請只輸入整數,模數須大於 1。a 可以是負數,因為每個負整數在模 m 下都有等價的最小非負餘數。計算機使用 JavaScript 安全整數,適合課堂練習及中等規模的數論問題。它會顯示最大公因數與直接乘法驗算,讓您確認所得反元素確實使餘數為 1。處理密碼學中的超大整數時,請使用專為大整數及安全敏感運算設計的軟體。

模反元素範例

每個結果都是使乘積餘數為 1 的最小非負整數。

整數與模數反元素驗證
3 模 114三乘以 4 等於 12,12 mod 11 等於 1。
7 模 2615七乘以 15 等於 105,105 mod 26 等於 1。
17 模 31202753十七乘以 2753,模 3120 的餘數為 1。
10 模 1712十乘以 12 等於 120,120 mod 17 等於 1。

如何計算模反元素

  1. 輸入想要求乘法反元素的整數。
  2. 輸入大於 1 的整數作為模數。
  3. 選擇「計算模反元素」,執行擴展歐幾里得演算法。
  4. 確認顯示的乘積在該模數下餘數為 1。

模乘法反元素常見問題

模乘法反元素何時存在?

當且僅當整數與模數互質時,反元素才存在。也就是兩者的最大公因數必須等於 1。

為什麼反元素看起來有多個答案?

加上模數的任意整數倍,都會得到同餘的代表元。計算機統一顯示最小非負反元素。

擴展歐幾里得演算法如何找出反元素?

它在計算最大公因數時,也追蹤原始整數的係數。最大公因數為 1 時,輸入整數的係數就是一個模反元素。

可以計算負數的反元素嗎?

可以。負整數可先化為模 m 下的等價餘數。計算機會自動處理,並傳回最小非負反元素。

模反元素如何用於密碼學?

它們可在 RSA 與橢圓曲線系統等演算法中反向處理模乘法。安全應用需要大整數及固定時間實作,超出本教學計算機的範圍。