作業フローを簡素化:miniwebtoolを検索。
追加
ホームページ > 数学 > 高度な数学操作 > モジュラー冪乗計算機
 

モジュラー冪乗計算機

バイナリべき乗法(高速べき乗法)アルゴリズムを使用して、モジュラー冪乗 a^b mod n を効率的に計算します。底、指数、法(モジュラス)を入力すると、平方剰余の繰り返し法、2進展開の可視化、暗号学的背景を含む詳細な計算過程と結果を即座に表示します。

モジュラー冪乗計算機
例:
計算内容
ab mod n
^
mod

Embed モジュラー冪乗計算機 Widget

モジュラー冪乗計算機

モジュラー冪乗計算機は、\(a^b \bmod n\) を計算します。これは、底 \(a\) を指数 \(b\) で累乗し、法 \(n\) で割った余りを求める操作です。この電卓は、演算回数を \(O(b)\) 回の乗算からわずか \(O(\log b)\) 回に削減する バイナリ冪乗法(高速累乗法や繰り返し二乗法とも呼ばれます)を使用しています。これは、RSA、Diffie-Hellman、ElGamal などの実際の暗号実装で使用されているのと同じアルゴリズムです。

モジュラー冪乗の用途

🔐
RSA 暗号
巨大な素数の積を用いたモジュラー冪乗によるメッセージの暗号化と復号
🤝
Diffie-Hellman
安全な共有鍵を生成するための g^a mod p を計算する鍵交換プロトコル
電子署名
DSA、ECDSA、EdDSA はすべてモジュラー冪乗に依存しています
🧪
素数判定
フェルマーやミラー・ラビン検定は a^(n-1) mod n を使用して素数かどうかを確認します
🏆
競技プログラミング
高速累乗を伴うモジュロ演算は、コンテストの問題において不可欠です
🔗
ブロックチェーン
プルーフ・オブ・ワークや暗号学的ハッシュ関数はモジュロ演算に依存しています

バイナリ冪乗法アルゴリズムの仕組み

重要な洞察は、任意の指数をバイナリ表現(2進数)を使用して2の累乗の和に分解できることです。例えば、\(b = 13 = 1101_2 = 2^3 + 2^2 + 2^0\) なので、\(a^{13} = a^{8} \times a^{4} \times a^{1}\) となります。

アルゴリズムは、指数のバイナリ数字を左から右へと処理します:

ステップ 1: 指数 \(b\) をバイナリに変換します。
ステップ 2: 結果(result)を 1 で初期化します(または最初のビットが 1 の場合は底で初期化)。
ステップ 3: それ以降の各ビットについて:結果を 二乗(mod n)します。ビットが 1 の場合は、さらに底を 掛け合わせ(mod n)ます。
ステップ 4: すべてのビットが処理された後、その結果が \(a^b \bmod n\) です。

擬似コード

function modpow(base, exp, mod):
    result = 1
    base = base mod mod
    while exp > 0:
        if exp is odd:        // ビットが 1 の場合
            result = (result × base) mod mod
        exp = exp >> 1        // 右シフト(2で割る)
        base = (base × base) mod mod
    return result

主な公式

性質公式説明
モジュラー冪乗\(a^b \bmod n\)a^b を n で割った余り
フェルマーの小定理\(a^{p-1} \equiv 1 \pmod{p}\)素数 p かつ gcd(a,p)=1 の場合
オイラーの定理\(a^{\phi(n)} \equiv 1 \pmod{n}\)gcd(a,n)=1 の場合(φはオイラーのトーシェント関数)
バイナリ法の計算量\(O(\log b)\) 回の乗算最大でも 2·log₂(b) 回のモジュロ乗算
RSA 暗号化\(c = m^e \bmod n\)公開鍵 (e, n) でメッセージ m を暗号化
RSA 復号\(m = c^d \bmod n\)秘密鍵 d で暗号文 c を復号

モジュラー冪乗計算機の使い方

  1. 底 (a) を入力: 累乗したい数値を入力します。正負どちらも可能です。例えば、7^256 mod 13 を計算する場合は 7 を入力します。
  2. 指数 (b) を入力: 非負の整数である必要があります。これは累乗のパワーを表します。暗号用途では非常に大きな値になることがありますが、この電卓は 10^18 までサポートしています。
  3. 法 (n) を入力: 正の整数である必要があります。これは割り算をして余りを求めるための数値です。RSA では通常、2つの大きな素数の積になります。
  4. 計算をクリック: 電卓はバイナリ冪乗法を使用して a^b mod n を計算し、即座に結果を表示します。
  5. アニメーションを見る: 「再生」を押すと、バイナリ冪乗法アルゴリズムがステップごとに実行される様子を確認できます。指数の各ビットが順番に処理され、アルゴリズムが「二乗」のみを行うか、「二乗して乗算」を行うかが示されます。
  6. 追跡データを確認: ステップごとの表にはすべての中間計算が表示され、効率の比較では、バイナリ冪乗法が素朴な連続乗算よりもどれだけ速いかが示されます。

なぜバイナリ冪乗法は速いのか

\(2^{1000} \bmod 13\) の計算を考えてみましょう。素朴な方法では 999 回の乗算が必要です。バイナリ冪乗法では 1000 をバイナリ(1111101000)に変換しますが、これは 10 ビットです。必要なのは最大 9 回の二乗と、ビットが「1」の場所での数回の乗算だけで、合計約 15 回の演算で済みます。これは 約 98.5% の演算削減 になります。数百桁の指数を持つ暗号規模の計算では、その差は天文学的です。バイナリ法では数千回の演算で済みますが、素朴な方法では宇宙にある原子の数よりも多くの演算が必要になってしまいます。

FAQ

モジュラー冪乗とは何ですか?
モジュラー冪乗は (a^b) mod n を計算する操作です。底を指数で累乗し、その結果を法で割った余りを求めます。これは公開鍵暗号(RSA、Diffie-Hellman、ElGamal)の核心的な操作であり、数論、競技プログラミング、コンピュータサイエンスで広く使用されています。バイナリ冪乗法により、O(log b) 回の乗算で効率的に計算できます。
バイナリ冪乗法(繰り返し二乗法)はどのように機能しますか?
バイナリ冪乗法は、指数をそのバイナリ表現に変換し、各ビットを左から右(または右から左)へ処理します。各ビットについて、現在の結果を法 n で二乗します。ビットが 1 の場合は、さらに結果に底(mod n)を掛けます。これにより、乗算回数を b−1 回(素朴な方法)から最大 2×log₂(b) 回に減らすことができ、巨大な指数でも計算が可能になります。
なぜ暗号においてモジュラー冪乗が重要なのですか?
RSA暗号では、暗号化のために c = m^e mod n、復号のために m = c^d mod n を計算します。ここで n は2つの大きな素数の積であり、指数は数百桁に及ぶことがあります。高速なモジュラー冪乗がなければ、これらの操作は計算上不可能です。安全性は、逆操作(離散対数の計算)が計算上実行不可能であると信じられていることに基づいています。
底が負の数でも大丈夫ですか?
はい、負の底も完全にサポートされています。電卓はまず底を法 n で簡約します(正の n に対して常に非負の結果を返す Python のモジュロ演算を使用)。例えば、(−3)^2 mod 7 = 9 mod 7 = 2 です。モジュロ簡約は常に [0, n−1] の範囲の値を生成するため、負の結果が出ることはありません。
法が1の場合はどうなりますか?
任意の整数を 1 で割った余りは 0 です。これは、任意の整数を 1 で割ると、その整数自身が商となり、余りが 0 になるためです。したがって、a と b のすべての値に対して a^b mod 1 = 0 となります。電卓はこれを特殊なケースとして処理します。

このコンテンツ、ページ、またはツールを引用する場合は、次のようにしてください:

"モジュラー冪乗計算機"(https://MiniWebtool.com/ja/モジュラー冪乗計算機/) MiniWebtool からの引用、https://MiniWebtool.com/

by MiniWebtool チーム. 更新日: 2026-04-16

また、AI 数学ソルバー GPT を使って、自然言語による質問と回答で数学の問題を解決することもできます。

その他の関連ツール:

高度な数学操作:

おすすめ:

標準偏差電卓 - 高精度ランダムカラージェネレーターHEX電卓war電卓パーセント増加電卓ランダム誕生日ジェネレーターパーセンテージ減少電卓合計電卓英単語ランダム生成ツール手数料電卓番号を並べ替える中央値電卓ai句読点追加円錐展開図テンプレートジェネレーター動画を逆再生画像分割ツールフィートとインチからセンチメートルへのコンバーターランダム名前ジェネレーターパーセント誤差電卓売上総利益率電卓ランダム日付ジェネレーターlog-base-2電卓マスターナンバー電卓分散電卓 高精度迷路ジェネレーターMACアドレス検索対数電卓MP3ルーパーセンチメートルからフィートとインチへのコンバーター動画を結合血糖値コンバーターランダム音周波数ジェネレーターランダムトーナメント表作成ツールYouTubeチャンネル統計ランダム絵文字ジェネレーター小数時間から普通の時間へのコンバーター筆算割り算電卓CAGR電卓ボウリングスコア計算機じゃんけんジェネレーター弧長電卓FPSコンバーターランダムポーカーハンドジェネレーターマン・ホイットニーのU検定計算機t検定電卓逆テキスト動画を回転空の行を削除する相対標準偏差電卓配当利回り電卓労働時間計算ツール中間点電卓平方根電卓平方完成電卓指数電卓-高精度fena電卓楕円円周電卓シグマ記法電卓 総和上下反転テキストジェネレーター変動係数電卓ASCIIコード表SRTからTXTへの変換ツールクロスワードパズルメーカー年の日電卓 - 今日は今年の何日目InstagramユーザーID検索ピザ生地計算機相関係数計算機ビンゴカードジェネレーター階段電卓SRT 時間シフト 電卓🎮 ゲーム感度変換器多項式展開電卓アナグラム生成器バイナリ電卓階乗電卓太陽・月・上昇星座電卓 🌞🌙✨歩数距離変換電卓カロリー赤字電卓ビデオ速度を調整ランダムトランプカードジェネレーター土星回帰電卓表面積電卓外れ値電卓血液型計算機XMLバリデーターhba1c電卓ランダム国ジェネレーター有効数字電卓BUN対クレアチニン比電卓Twitch収益計算ツールトルク電卓比較分数電卓デシベル (dB) 電卓パーセントから小数へのコンバーターピタゴラスの定理電卓圧力電卓TikTok収益計算ツールZalgoテキストジェネレーターモジュロ電卓乗算電卓砂利・砂・表土計算機鋼材重量電卓ボルト締付トルク計算機配管流量電卓梁の電卓ドルから金への変換ツールオプション電卓株式分割電卓ESPP電卓請求書遅延手数料電卓フリーランス時給電卓リース対購入電卓高度なチップ割り勘電卓持ち物リストジェネレーター時差ぼけ電卓旅行予算電卓飛行距離電卓熱損失電卓発電コスト電卓水使用量電卓家電電気代計算機家庭エネルギー監査電卓太陽光ROI電卓太陽光パネル電卓堆肥cn比計算機芝生肥料電卓霜の日付電卓レイズドベッド用土電卓NPK肥料電卓種子発芽率電卓動画ビットレート電卓音楽キー移調ツール音楽BPMタッパー写真ファイルサイズ推定電卓メガピクセルから印刷サイズ計算機クロップファクター電卓露出トライアングル電卓車両牽引能力電卓カーリース計算機0–60とクォーターマイル電卓EV充電時間電卓EV航続距離計算機燃費計算機服のサイズ変換用紙サイズ一覧指輪サイズ変換器天文単位変換器燃費変換ツール MPG L/100km km/L 電卓データ転送速度変換ツールトルク変換器 (Nm, ft-lb, kgf-cm)取り消し線テキスト生成ツール空白文字可視化ツール読書時間電卓スピーチ時間電卓段落カウンター文カウンター音節カウンターテキストからバイナリ/16進数/ASCII変換器Lorem Picsum / プレースホルダー画像ジェネレーター.env ファイルジェネレーターGitコマンド生成ツールカラーコード変換器全形式bcryptハッシュ生成・検証ツールJWTジェネレーターCSS Grid生成ツール数値積分電卓z変換電卓高速フーリエ変換FFT電卓テンソル積電卓行列指数関数電卓ジョルダン標準形電卓環と体の電卓群論の位数電卓常微分方程式系ソルバーベルヌーイ方程式ソルバーオイラー法電卓方向場・傾き場プロッター二階常微分方程式ソルバー一階常微分方程式ソルバー安定結婚問題ソルバーネットワークフロー電卓最大フロー平面グラフ判定ハミルトン路チェッカー巡回セールスマン問題ソルバー TSP線形計画法ソルバー包除原理電卓漸化式ソルバー隣接行列電卓トポロジカルソート電卓グラフ彩色電卓論理ゲートシミュレーターカルノー図 (K-Map) ソルバーブール代数簡略化ツール分割数電卓デジタルルート電卓フィボナッチ数チェッカーエジプト分数電卓メビウス関数電卓ゴールドバッハ予想検証ツールメルセンヌ素数チェッカー双子素数ファインダー友愛数チェッカー完全数チェッカーモジュラー冪乗計算機重複順列電卓効果量電卓相対リスク電卓オッズ比電卓分割表電卓フィッシャーの正確確率検定電卓スピアマン順位相関係数計算機ベータ分布電卓ワイブル分布電卓指数分布電卓幾何分布電卓負の二項分布電卓超幾何分布電卓F検定・F分布電卓ベイズの定理電卓固有多項式計算機行列べき乗電卓コレスキー分解電卓QR分解電卓行列対角化電卓クラメルの公式電卓列空間電卓零空間電卓ベクトル間の角度電卓単位ベクトル電卓ベクトルの大きさ電卓外積電卓内積電卓行列の掛け算電卓逆行列電卓RREF計算機行簡約階段形ニュートン法電卓ヤコビ行列電卓面積分電卓線積分計算機回転カール電卓発散計算機勾配計算機多変数最適化電卓微積分関連変化率ソルバー瞬間変化率電卓平均変化率計算機無限級数和電卓級数収束判定電卓べき級数電卓マクローリン級数電卓ロピタルの定理計算機広義積分電卓シンプソン則電卓台形公式電卓リーマン和電卓パラメトリック曲線グラフ作成ツール回転体の表面積計算機回転体の体積電卓座標幾何距離計算機ヘロンの公式計算機円の接線電卓角の二等分線電卓内接円インサークル電卓外接円電卓大圏距離計算機3d距離電卓トーラス電卓円錐台電卓不規則多角形面積電卓正多角形電卓円錐曲線識別ツール双曲線電卓放物線電卓二項定理展開電卓パスカルの三角形ジェネレーター積の記号電卓 (Π パイ記法)有理根定理 電卓デカルトの符号法則電卓平行線と垂直線の電卓直線の方程式電卓標準形から傾き切片形への変換点傾き形式電卓非線形連立方程式ソルバー有理方程式ソルバー文字式方程式ソルバー三角方程式ソルバー指数方程式ソルバー対数方程式ソルバー四次方程式計算機三次方程式ソルバー概算電卓数値から分数への変換器スキップカウントジェネレーター単価電卓天井関数と床関数 電卓絶対値電卓数列パターン検出ツール位取り表ジェネレーター演算の順序電卓PEMDAS筆算足し算・引き算計算機筆算かけ算計算機九九表ジェネレーター🎮 ゲーム内通貨変換器🎲 ドロップ確率電卓🎰 ガチャ天井計算機⚔️ DPS電卓❄️ 雪の日計算機🚚 引っ越し費用見積もり🔍 盗作チェッカー📷 OCR / 画像からテキスト抽出📈 折れ線グラフ作成ツール🥧 円グラフ作成ツール📊 棒グラフ作成ツール🔊 トーンジェネレーター🖱️ クリックカウンターオンラインメモ帳⬛ アスペクト比電卓🌍 カーボンフットプリント電卓👙 ブラサイズ電卓タイヤサイズ電卓燃料費電卓💧 露点電卓🌡️ 暑さ指数電卓🌬️ 体感温度電卓⏰ オンラインアラーム時計⏰ タイムカード電卓📅 日付差分電卓🕐 ミリタリータイム変換器⏱️ 時間計算機⏱️ オンラインストップウォッチ⏱️ カウントダウンタイマー🌐 タイムゾーン変換器カーペット計算機擁壁電卓HVAC容量計算電卓断熱材電卓ペーバー電卓鉄筋電卓木材計算機平方フィート計算機交差掛け算電卓五数要約電卓パーセンタイル電卓正規分布電卓p値電卓比率電卓四捨五入電卓Twitter/X 文字数カウンターYouTubeコメントピッカーYouTubeタグ抽出ツールyoutubeサムネイルダウンローダーyoutube収益見積もりツールランダムRPGキャラクタージェネレーター