ikautak.log

C/C++, Python, CUDA, Android, Linux kernel, Network, etc.

暗号理論入門 3.7〜3.10

暗号理論入門 原書第3版

暗号理論入門 原書第3版

3.7 剰余環の演算に対する計算時間

公開鍵暗号のあらゆる方式で、剰余環の計算が行われるので、計算量の知ることが重要。

modulo m の二つの剰余類の和と差は時間 O(size\ m) で計算される。
積と商は O((size\ m)^{2}) の時間がかかる。
すべての演算は O(size\ m) の大きさの格納領域が必要。

3.8 既約剰余群

mod mのすべての既約剰余類の集合は、乗法に関する有限アーベル群である。

mod mの既約剰余類の群は、mod mの規約剰余群(primitive residue class group)といい、(\mathbb{Z} / m \mathbb{Z})^* と書く。
その位数を \phi(m) で表す。
写像
  \mathbb{N} \to \mathbb{N}m \to \phi(m)
オイラー\phi 関数という。
 \phi(m) は、{1, 2, ..., m} の中の gcd(a, m) = 1である数aの総数である。特に \phi(1) = 1 である。
例. (\mathbb{Z}/ 12\mathbb{Z})^* = \{1 + 12\mathbb{Z},\ 5 + 12\mathbb{Z},\ 7 + 12\mathbb{Z},\ 11 + 12\mathbb{Z}\} は mod 12の規約剰余群である。\phi(12) = 4 である。

p が素数のとき、 \phi(p) = p - 1 が成り立つ。

3.9 群の元の位数

G を乗法を演算とする群とし、1をその単位元とする。
g \in G とし、g^{e} = 1 となる自然数 e が存在すれば、そのような最小の数を gG での位数(order)という。
その他の場合、G での g の位数は無限大であるという。
G での g の位数は  order_G g と書く。
例.2 + 13\mathbb{Z}(\mathbb{Z}/13\mathbb{Z}) の中での位数は12となる。

k 0 1 2 3 4 5 6 7 8 9 10 11 12
2^{k} mod\ 13 1 2 4 8 3 6 12 11 9 5 10 7 1

4 + 13\mathbb{Z} は位数6をもつ。

k 0 1 2 3 4 5 6
4^{k} mod\ 13 1 4 3 12 9 10 1

3.10 部分群

G の部分集合 U は、G の演算により自分自身が群をなすとき、G部分群(subgroup)という。

g \in G に対して集合 \{ g^{k}\ \ :\ \ k \in \mathbb{Z}\}G の部分群をなす。それを g により生成された部分群といい、この部分群を  \langle g \rangle と書く。

ある g \in G について G = \langle g \rangle が成立すれば、G巡回群(cyclic group)といい、gG生成元(generator)という。

G が有限群であるとき、G の任意の部分群の位数は G の位数を割り切る。(ラグランジュの定理)

3.11 フェルマーの小定理

 gcd(a, m ) = 1 であれば、a^{\phi(m)} \equiv 1\ mod\ m が成立する。