であるから、 は法 で逆元をもつ。拡張ユークリッドの互除法を用いて、 を満たす整数 (すなわち )を求めよ。
法 での逆元(拡張ユークリッドの互除法)
のとき、互除法を逆にたどって の解を求め、(例: )を求められる。 なら逆元がないと判定できる
前提
- 1 次不定方程式の整数解 (数学A 整数の性質)
- 合同式 (数学A 整数の性質)
この技能までの道筋(22 技能)
読み込み中…
右端(太枠)がこの技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
一覧で見る(前提が先)
- 約数の見つけ方 (算数 整数の性質)
- 最大公約数と最小公倍数 (算数 整数の性質)
- 素因数分解と約数の個数 (算数 整数の性質)
- 最大公約数と最小公倍数 (数学A 整数の性質)
- ユークリッドの互除法 (数学A 整数の性質)
- 1 次不定方程式の整数解 (数学A 整数の性質)
- 分数のたし算・ひき算 (算数 計算と数のきまり)
- 小数の四則計算 (算数 計算と数のきまり)
- 正負の数の加法・減法 (中学数学 数と式)
- 分数のかけ算・わり算 (算数 計算と数のきまり)
- 四則の混じった計算の順序 (算数 計算と数のきまり)
- 正負の数の乗除・累乗と四則混合 (中学数学 数と式)
- 分配法則を使った計算のくふう (算数 計算と数のきまり)
- 文字式の計算(同類項・分配法則) (中学数学 数と式)
- 乗法公式による展開 (中学数学 数と式)
- 因数分解 (中学数学 数と式)
- 文字式で表した整数の性質 (中学数学 数と式)
- 余りによる整数の分類 (数学A 整数の性質)
- 樹形図で数え上げる (算数 場合の数)
- 積の法則と和の法則 (算数 場合の数)
- 和の法則・積の法則と樹形図 (数学A 場合の数と確率)
- 合同式 (数学A 整数の性質)
説明
法 ()での の逆元とは、 を満たす整数 のことで、 と書きます。普通の数の「 を掛ける」に当たる操作を合同式の世界で行うためのもので、 という 1 次合同式を解くときや、RSA 暗号の鍵の計算などで使います。 のときは、ユークリッドの互除法を逆にたどって の解を作れば逆元が求まります。 のときは逆元が存在しないと判定できます。
なぜそうしてよいのか
は「 が の倍数」という意味です。つまり、ある整数 を使って 、すなわち と書けることと同じです。したがって逆元を求めることは、1 次不定方程式 の整数解 を 1 組見つけて、その を取り出すことにほかなりません。
逆元があるかどうかは で決まります。 なら は と の両方を割り切るので、どんな整数 に対しても は の倍数になり、 にはなりえません。よって逆元はありません。 なら、互除法の各段の式「余り 割られる数 商 割る数」を最後の余り から上へ順に代入していくと、 を と の整数倍の和 で表せます。これで解が 1 組得られます。
さらに前提の技能から、 の解はすべて ( は整数)の形をしています。つまり逆元は法 でただ 1 つに決まります。そこで答えはふつう の範囲の代表で表します( なので実際には になります)。
手順
を で割ることから互除法を始め、各段を「余り 割られる数 商 割る数」の形で記録する。
最後の でない余り()を確認する。 でなければ「逆元なし」と答えて終わる。 なら次へ進む。
最後の式 から出発し、その式に現れる余りを、1 つ上の段の式で順に置き換える。毎回、数どうしを掛け合わせず、記号のように係数をまとめる。 と だけが残る形 になるまで続ける。
得られた の で割った余り( に直したもの)を とする。 が負なら を足して直す。
検算として、(答え)を で割った余りが になることを確かめる。
例題
を 以上 以下の整数で求めよ。
例題の解答
【手順1】互除法を行い、余りの式を記録する。
より
より
より
より
【手順2】最後の でない余りは なので、 である。よって逆元は存在する。
【手順3】下から順に代入する。
これで が得られた。
【手順4】 はすでに の範囲にある。よって である。
【手順5】検算する。 なので、 となり正しい。
答え:
よくある誤り
の ( の係数)を答えてしまう誤り。例題では から や を答えがちです。正しくは の係数 が逆元です。
負の をそのまま答えにしてしまう誤り。たとえば から とするのは、範囲の指定に合いません。正しくは で、 です。
なのに逆元を探してしまう誤り。たとえば を考えると、 は常に偶数で は常に奇数なので、 の倍数にはなりません。正しくは なので「逆元なし」と判定します。
逆にたどる途中で数どうしを掛け合わせてしまい、どの数が や だったかわからなくなる誤り。たとえば を と計算すると、 になるだけで何も得られません。正しくは や を一つの記号のように扱い、 のように係数だけをまとめていきます。
この説明は AI が書き、別の AI が例題を独立に解いて答えを確かめ、説明を一歩ずつ査読しました。
入口の問題
この技能を使う問題
以下の正の整数 で、次の 3 つの合同式をすべてみたすものを考える。
このような すべての和を求めよ。素数 , を用いて RSA 暗号の鍵を作る。 とし、公開鍵の暗号化指数を とする。秘密鍵の復号指数 は、 を満たす の整数とする。
平文 ( を満たす整数)を , により暗号化したところ、暗号文 が得られた。平文 を求めよ。
有限体 上の楕円曲線
を考える。 の 有理点全体は、無限遠点 を単位元とし、通常の加法(弦と接線による加法)によって群をなす。点 は 上の点である。 の座標 を求めよ。ただし は の整数で表し、答えは の組で答えよ。
受信者は素数 , を選び、 と暗号化指数 を公開鍵として公開した。送信者は平文 ( を満たす整数)を
によって暗号化し、暗号文 を受信者に送った。受信者は秘密鍵の復号指数 を , を満たす整数として求め、 により復号する。平文 を求めよ。
素数 と、法 の原始根 を公開パラメータとするエルガマル暗号を考える。受信者の公開鍵は である(秘密鍵 は を満たす。 は公開されていない)。
平文 ( の整数)を暗号化するとき、送信者は整数 を選び、
として暗号文 を送る。ある送信者が、本来は毎回選び直すべき を使い回して、2 つの平文 を同じ で暗号化した。得られた暗号文は
である。攻撃者は何らかの方法で であることを知った。秘密鍵 を求めずに、平文 ( の整数)を求めよ。有限体 上の楕円曲線
を考えます。 の 有理点全体は、無限遠点 を単位元とし、通常の加法(弦と接線による加法)で群になります。この曲線と基点 を公開パラメータとして、アリスとボブが楕円曲線ディフィー・ヘルマン鍵共有を行います。アリスは秘密鍵 を選んで公開鍵 を送り、ボブは秘密鍵 を選んで公開鍵 を送ります。二人が共有する点を とします。
の座標 を、 の整数の組で求めてください。
RSA 暗号の受信者は、相異なる素数 を選んで とし、公開鍵 を公開した。秘密鍵の復号指数 は
を満たす整数である。ここで である。送信者は平文 ( を満たす整数)を ()によって暗号化して送る。いま攻撃者は、 そのものは知らないが、 であることを知った。さらに暗号文 を傍受した。この暗号文に対応する平文 を求めよ。
素数 と、法 の原始根 を公開パラメータとするエルガマル暗号を考える。受信者の公開鍵は である。秘密鍵 は を満たすが、公開されていない。
送信者は平文 ( を満たす整数)を暗号化するとき、一時鍵 を選び、
として暗号文 を送る。ある送信者が、本来は毎回取り替えるべき一時鍵 を、2 つの平文 , の暗号化に同じ値のまま使ってしまった。その結果、送られた暗号文は次の 2 つである。
攻撃者は、1 つ目の暗号文の平文が であることを知っている。このとき、2 つ目の暗号文の平文 ()を求めよ。素数 と法 の原始根 を用いるエルガマル暗号を考える。受信者の秘密鍵を 、公開鍵を とする。平文 ( の整数)は、送信者が整数 ()を選び
として暗号文 に暗号化される。送信者は、誤って同じ を使い回して 2 つの平文 を暗号化し、暗号文 と をこの順に送った。盗聴者は つ目の平文が であることを知っている。 つ目の平文 を求めよ。
素数 と、法 の原始根 を公開パラメータとするエルガマル暗号を考える。受信者は秘密鍵 を選び、公開鍵 ()を公開している。
送信者は平文 ( の整数)を、整数 を選んで
により暗号文 に変換して送る。受信者が受け取った暗号文が であるとき、平文 を求めよ。素数 と、法 の原始根 を公開パラメータとするエルガマル暗号を考える。受信者の公開鍵は である(秘密鍵 は を満たすが、公開されていない)。
平文 ( の整数)を暗号化するとき、送信者は乱数 ( の整数)を選び、
として暗号文 を送る。ある送信者が、2 つの平文 を暗号化する際に、誤って同じ乱数 を使ってしまい、暗号文はそれぞれ
となった。攻撃者は、1 つ目の平文が であることを知っている。このとき、2 つ目の平文 を求めよ。素数 と、法 の原始根 を公開パラメータとするエルガマル暗号を考える。受信者の公開鍵は である(秘密鍵 は を満たすが、公開されていない)。
平文 ( の整数)を暗号化するとき、送信者は乱数 を選び、
として暗号文 を送る。ある送信者が、2 つの平文 , を暗号化する際に、誤って同じ乱数 を使ってしまった。その結果、暗号文はそれぞれ
となった。攻撃者は何らかの方法で であることを知った。このとき、秘密鍵 や乱数 を求めずに得られる ( の整数)を求めよ。素数 について、 は法 の原始根である( の法 での位数は )。
合同式
を満たす整数 はただ つ存在する。その を求めよ。を相異なる奇素数とし、、 とおく。正の整数 は をみたすとする(RSA 暗号の公開鍵 と秘密鍵 )。中国剰余定理を使った高速な復号(CRT-RSA)のために、次を定める。
- を を で割った余り、 を を で割った余りとする(、)。
- 整数 を、 をみたす整数のうちの 1 つとする( は相異なる素数なので、このような は存在する)。をみたす整数 (暗号文)に対して、
- を を で割った余り、 を を で割った余り(、)、
- を を で割った余り()、
-とおく。ここで は と互いに素であるとは限らない( や、 が または の倍数である場合も含む)。また、整数 に対して と定める( のときも含む)。このとき、 かつ であることを証明せよ。
ただし、フェルマーの小定理と、「整数 が相異なる素数 のそれぞれで割り切れるならば で割り切れる」ことは用いてよい。
である。 が で割り切れるような正の整数 のうち、最小のものを求めよ。
素数 について、 は法 の原始根である( の法 での位数は )。
を満たす整数 ( の底 に関する離散対数)を求めよ。英字 文字を と数に対応させ、アフィン暗号
で 1 文字ずつ暗号化する。ここで鍵 は , を満たす整数で、 は と互いに素である(暗号化は 1 対 1 である)。ある暗号文について、平文の文字 が に、平文の文字 が に暗号化されていることがわかった。この暗号の復号関数を
の形に表すとき、整数の組 を求めよ。有限体 上の楕円曲線
を考える。 の 有理点全体に無限遠点 を単位元として通常の加法(弦と接線による加法)を入れた群において、点 をとる。点 の座標 を求めよ。ただし は , を満たす整数で表し、 の組で答えよ。
有限体 上の楕円曲線
を考える。 の 有理点全体は、無限遠点 を単位元とし、通常の加法(弦と接線による加法)で群をなす。点 について、 となる最小の正の整数 ( の位数)を求めよ。有限体 上の楕円曲線
を考える。 の 有理点全体は、無限遠点 を単位元とし、通常の加法(弦と接線による加法)で群をなす。上の 点
について、 を満たす最小の正の整数 を求めよ。ただし は を 個加えた点を表す。を奇素数とする。整数 に対し、 はルジャンドル記号を表す( のときは と定める)。
を満たす整数 のうち、 と がともに を法とする平方剰余であるものの個数を とする( のときは である)。このとき
が成り立つことを証明せよ。ただし、ルジャンドル記号の乗法性 、 ならば であること、および のうち平方剰余と平方非剰余がちょうど 個ずつあることは用いてよい。
この技能の次に学べること
- アフィン暗号 (大学数学 暗号理論)
- RSA 暗号の鍵生成・暗号化・復号 (大学数学 暗号理論)
- ベビーステップ・ジャイアントステップ法 (大学数学 暗号理論)
- 有限体上の楕円曲線の点の加算 (大学数学 暗号理論)
- エルガマル暗号 (大学数学 暗号理論)
- 中国剰余定理と連立合同式 (大学数学 整数論)