• 検索結果がありません。

数論のソフトウェア情報学への応用について

N/A
N/A
Protected

Academic year: 2021

シェア "数論のソフトウェア情報学への応用について"

Copied!
3
0
0

読み込み中.... (全文を見る)

全文

(1)

4.

紀要

267

数論のソフトウェア情報学への応用について

高田 豊雄

1.

はじめに

ソフトウェア情報学の基盤となる数学は多岐の分 野に亘るが本稿ではそのうち整数論の応用について いくつか述べる.具体的には Paillier 暗号と高速 フーリエ変換に対する応用を紹介する.

2. Paillier 暗号

Paillier 暗号は Pascal Paillier によって 1999

年に発表された公開鍵暗号系であり,準同型性を有 することで知られている[1].準同型性を有する暗号 とは,暗号化関数を

𝐸𝐸

𝑘𝑘,平文メッセージを

𝑚𝑚

1

𝑚𝑚

2 何らかの演算を

∘, ∗ で表すとすると,

𝐸𝐸

𝑘𝑘

(𝑚𝑚

1

) ∘ 𝐸𝐸

𝑘𝑘

(𝑚𝑚

2

) = 𝐸𝐸

𝑘𝑘

(𝑚𝑚

1

∗ 𝑚𝑚

2

)

が成立することであり,秘密投票や電子現金の実現 が容易となるため実用上重要である.

𝑝𝑝

𝑒𝑒

を大きな素数,

𝑛𝑛 = 𝑝𝑝𝑒𝑒

とするとき,よく知ら れた

RSA

公開鍵暗号系が

𝑛𝑛

を法とする剰余を考える のに対し,Paillier 暗号では

𝑛𝑛

2を法とする剰余を 考えるため,本稿ではまず

𝑛𝑛

2を法とする剰余に関す る諸性質について述べる.

2.1. 𝑛𝑛 2

を法とする剰余に関する諸性質 本節では

Paillier

暗号の理解に必要となる

𝑛𝑛

2 を法とする剰余に関する諸性質について述べる.詳 細については参考文献欄の文献を参照してもらいた い.

性質 1.

𝑝𝑝

𝑒𝑒

をサイズが同じ*1大きな素数,

𝜆𝜆 = lcm(𝑝𝑝 − 1, 𝑒𝑒 − 1)

,(但し

lcm は最小公倍数を表す)

とする.このとき

(𝑛𝑛, λ) = 1 , すなわち 𝑛𝑛

λ

は互い に素である.(*1: ここでサイズが同じとは, 一般 性を失わず

𝑝𝑝 > 𝑒𝑒 と仮定したとき, 𝑒𝑒 >

𝑝𝑝−12

). □

性質 2. 任意の非負整数

𝑟𝑟

に対して

(1 + 𝑛𝑛)

𝑘𝑘

≡ 1 + 𝑟𝑟𝑛𝑛 (mod 𝑛𝑛

2

),

特に,

(1 + 𝑛𝑛)

𝑛𝑛

≡ 1 (mod 𝑛𝑛

2

) , す

なわち乗法群

𝑍𝑍

𝑛𝑛2の元

1 + 𝑛𝑛 の位数は 𝑛𝑛

である.□

性質 3. 乗法群

𝑍𝑍

𝑛𝑛2は,

𝑍𝑍

𝑛𝑛2

= 𝑍𝑍

𝑛𝑛

× 𝑍𝑍

𝑛𝑛∗

であり,

その位数は

𝑛𝑛(𝑝𝑝 − 1)(𝑒𝑒 − 1) である. 𝑎𝑎 ∈ 𝑍𝑍

𝑛𝑛

, 𝑏𝑏 ∈ 𝑍𝑍

𝑛𝑛 とするとき,次の

𝑓𝑓 は, 𝑍𝑍

𝑛𝑛

× 𝑍𝑍

𝑛𝑛∗

𝑍𝑍

𝑛𝑛2

の間の同型

写像となる.

𝑓𝑓(𝑎𝑎, 𝑏𝑏) = (1 + 𝑛𝑛)

𝑎𝑎

⋅ 𝑏𝑏

𝑛𝑛

mod 𝑛𝑛

2

性質 2 および 3 から,

𝑚𝑚 ∈ 𝑍𝑍

𝑛𝑛2

から 𝑎𝑎 ∈ 𝑍𝑍

𝑛𝑛 抽出する写像を

𝐿𝐿

とすると,

𝐿𝐿 = (𝑚𝑚 − 1) ⁄ 𝑛𝑛

となる.

ここで除算は(何らかの法の上の乗法逆元を乗ずる のではなく)整数上の除算を行う.

性 質

4. 𝑛𝑛

と 互 い に 素 な

𝑎𝑎

に つ い て

𝑎𝑎

𝜆𝜆𝑛𝑛

≡ 1 (mod 𝑛𝑛

2

) (カーマイケルの定理). □ 2.2. Paillier

暗号の具体的な方式

Paillier

暗号の具体的な方式は個々の文献で細

かな部分が異なる.本節では

Katz-Lindell

版[2]を 基に更に計算量を減らしたバージョンについて述べ る(計算量の削減については[3]も参照).

[鍵生成]

大きく,サイズが同じ素数

𝑝𝑝

𝑒𝑒

を選択し,その積

𝑛𝑛 = 𝑝𝑝𝑒𝑒

とし,

𝑔𝑔 = 𝑛𝑛 + 1

とする.

𝜆𝜆 = lcm(𝑝𝑝 − 1, 𝑒𝑒 − 1)

とするとき,

𝜇𝜇

λ

の法

𝑛𝑛

に関する乗法逆元とす る.

(すなわち 𝜆𝜆 ⋅ 𝜇𝜇 ≡ 1 (mod 𝑛𝑛) ). 性質 1. より,

このような

𝜇𝜇

は必ず存在する.

このとき,公開鍵は

𝑛𝑛

,秘密鍵は (

𝜆𝜆 , 𝜇𝜇 )である.

[暗号化]

平文メッセージ

𝑚𝑚

𝑚𝑚 ∈ 𝑍𝑍

𝑛𝑛とする.乱数

𝑟𝑟 ∈ 𝑍𝑍

𝑛𝑛2 を生成する.その時,暗号文

𝑐𝑐

𝑐𝑐 = 𝐸𝐸(𝑀𝑀) = 𝑔𝑔

𝑚𝑚

∙ 𝑟𝑟

𝑛𝑛

mod 𝑛𝑛

2 とする.

[復号]

暗号文

𝑐𝑐

より次式を計算する.

𝑚𝑚 = 𝐿𝐿�𝑐𝑐

𝜆𝜆

mod 𝑛𝑛

2

� ∙ 𝜇𝜇 mod 𝑛𝑛 [数値例]

素数

𝑝𝑝 , 𝑒𝑒

𝑝𝑝 = 13 , 𝑒𝑒 = 17 とする. 𝑛𝑛 = 𝑝𝑝𝑒𝑒 = 221 , 𝑛𝑛

2

= 48841 である.

𝜆𝜆 = lcm(𝑝𝑝 − 1, 𝑒𝑒 − 1) = lcm(12,16) = 48

また,

𝜇𝜇

𝜆𝜆 = 48

の法

221

に関する乗法逆元であり,

𝜇𝜇 =

198 となる( 48 ⋅ 198 ≡ 1 (mod 221) ).

(2)

Journal of Faculty of Software and Information Sciences, Vol.15

268

いま仮に

𝑚𝑚 = 21, 𝑟𝑟 = 30

とすると,暗号文

𝑐𝑐

𝑐𝑐 = 𝑔𝑔

𝑚𝑚

∙ 𝑟𝑟

𝑛𝑛

mod 𝑛𝑛

2

= 222

21

⋅ 30

221

mod 48841

= 42377.

𝑐𝑐

の復号は

𝐿𝐿�𝑐𝑐

𝜆𝜆

mod 𝑛𝑛

2

� ∙ 𝜇𝜇 mod 𝑛𝑛

= 𝐿𝐿(42377

48

mod 48841) ⋅ 198 mod 221 = 𝐿𝐿(27405) ⋅ 198 mod 221

= 124 ⋅ 198 mod 221 = 21

となる.

[復号が正しく行われる理由]

性 質

4.

よ り

, (𝑔𝑔

𝑚𝑚

𝑟𝑟

𝑛𝑛

)

𝜆𝜆

≡ 𝑔𝑔

𝜆𝜆𝑚𝑚

⋅ 𝑟𝑟

𝜆𝜆𝑛𝑛

≡ 𝑔𝑔

𝜆𝜆𝑚𝑚

(mod 𝑛𝑛

2

) .

性質 2. より,

𝑔𝑔

𝜆𝜆𝑚𝑚

≡ 1 + 𝜆𝜆𝑚𝑚𝑛𝑛 (mod 𝑛𝑛

2

) . よって, 𝐿𝐿�𝑐𝑐

𝜆𝜆

mod 𝑛𝑛

2

� = 𝜆𝜆𝑚𝑚 . 最後に, 𝜇𝜇

の定義より,

𝐿𝐿�𝑐𝑐

𝜆𝜆

mod 𝑛𝑛

2

� ∙ 𝜇𝜇 ≡ 𝜆𝜆𝑚𝑚𝜇𝜇 ≡ 𝑚𝑚 (mod 𝑛𝑛) . 2.3. Paillier

暗号の有用性

Paillier

暗号は平文メッセージの加法に関して

準同型性を有する.すなわち平文メッセージを

𝑚𝑚

1

𝑚𝑚

2

とするとき,

𝐸𝐸(𝑚𝑚

1

) ∙ 𝐸𝐸 (𝑚𝑚

2

) = 𝑔𝑔

𝑚𝑚1

∙ 𝑟𝑟

1𝑛𝑛

⋅ 𝑔𝑔

𝑚𝑚2

∙ 𝑟𝑟

2𝑛𝑛

= 𝑔𝑔

𝑚𝑚1+𝑚𝑚2

⋅ (𝑟𝑟

1

⋅ 𝑟𝑟

2

)

𝑛𝑛

= 𝐸𝐸(𝑚𝑚

1

+𝑚𝑚

2

)

この性質は秘密投票に応用可能である.例えば

𝑚𝑚 = 0

を反対票,

𝑚𝑚 = 1

を賛成票を表すものと決めておき,

有権者が公開鍵で暗号化して投票を行えば,暗号化 されたまま投票内容の集計が可能となる.

また,前節から明らかな通り,暗号化と復号双方 とも計算時間に関して支配的な演算は

𝑛𝑛

2を法とす るベキ乗剰余演算

1

回のみである.但し,法が

𝑛𝑛

2 あることから

RSA

公開鍵暗号系と比較して倍の桁数 の演算となる.

本稿は計算量理論あるいは暗号理論に関するノー ト で は な く 整 数 論 に 関 す る ノ ー ト で あ る た め

Paillier

暗号系の安全性の詳細については触れな

いが,

Paillier 暗号の安全性は合成数剰余判定仮定

(Decisional Composite Residuosity Assumption (DCRA))

に基づく.

𝑦𝑦 = 𝑥𝑥

𝑛𝑛

mod 𝑛𝑛

2 となる

𝑥𝑥 ∈ 𝑍𝑍

𝑛𝑛2 が存在するとき,

𝑦𝑦 ∈ 𝑍𝑍

𝑛𝑛2

は 𝑛𝑛

乗剰余と呼ばれる.

DCRA

とは

𝑛𝑛

乗剰余の集合が

𝑍𝑍

𝑛𝑛2 のランダムな元の集

合と多項式時間アルゴリズムで識別不能であるとい う仮定である.

3.

高速フーリエ変換への数論応用

3.1.

離散フーリエ変換

時間間隔

𝑇𝑇

でサンプリングされた長さ

𝑁𝑁

の信号 系列を

{𝑥𝑥(𝑛𝑛𝑇𝑇)}

𝑛𝑛=0𝑁𝑁−1とする.この系列の離散フーリエ 変換(Discrete Fourier Transform (DFT))は

𝑋𝑋(𝑟𝑟) = ∑

𝑁𝑁−1𝑛𝑛=0

𝑥𝑥(𝑛𝑛𝑇𝑇) ⋅ 𝑒𝑒

𝑖𝑖2𝜋𝜋𝑛𝑛𝜋𝜋𝑁𝑁

(3.1) 𝑟𝑟 = 0,1, … , 𝑁𝑁 − 1

で与えられる.

情報科学全般における離散フーリエ変換の重要性 は改めて述べるまでもなく,上式を素直に計算する

𝑁𝑁

2回の乗算を必要とすることから高速な計算ア ルゴリズムについて多くの研究がなされている.と り わ け 有 名 な の が 系 列 長 が

2

の べ き 乗 の 場 合 の

Cooley-Tukey

アルゴリズム[4]であり(狭義の)高速 フーリエ変換(Fast Fourier Transform (FFT))と呼 ばれている.

3.2.

系列長が素数の積の場合の高速フーリエ 変換

Cooley-Tukey

アルゴリズムは一種の分割統治法 であり,ゆえに系列長が

2

のべき乗の場合が最も計 算効率がよくなる.しかし,一般には系列長は

2

のべ き乗であるとは限らない.その際

0

詰めを行い,無理 矢理系列長を

2

のべき乗とすることも行われるが,

結果の取扱いに注意を要する場合が生じる.

1978

年, 文献[5]で

Winograd

は系列長が素数の 積で表される場合の離散フーリエ変換の高速化を示 したのでここに紹介する.

𝑊𝑊 = 𝑒𝑒

−𝑖𝑖2𝜋𝜋/𝑁𝑁

とおく.

この

𝑊𝑊

は(複素)1

𝑁𝑁

乗根

であり,フーリエカーネル等と呼ばれる. このとき 式(3.1)は以下のように表される.

𝑋𝑋(𝑟𝑟) = ∑

𝑁𝑁−1𝑛𝑛=0

𝑥𝑥(𝑛𝑛𝑇𝑇) ⋅ 𝑊𝑊

𝑛𝑛𝑘𝑘

(3.2)

いま系列長が

𝑁𝑁 = 𝑁𝑁

1

∙ 𝑁𝑁

2

2

つの素数の積の形で 書けるとする.任意の整数

𝑏𝑏

1

, 𝑏𝑏

2について,中国人 剰余定理より,次の

𝑥𝑥

に関する連立合同式が同次解 をもつことはよく知られている.

𝑥𝑥 ≡ 𝑏𝑏

1

(mod 𝑁𝑁

1

), 𝑥𝑥 ≡ 𝑏𝑏

2

(mod 𝑁𝑁

2

)

そこで,次の連立合同式を満たす

𝑝𝑝

1

, 𝑝𝑝

2を考える.

𝑝𝑝

1

≡ 1 (mod 𝑁𝑁

1

), 𝑝𝑝

1

≡ 0 (mod 𝑁𝑁

2

) (3.3)

𝑝𝑝

2

≡ 0 (mod 𝑁𝑁

1

), 𝑝𝑝

2

≡ 1 (mod 𝑁𝑁

2

) (3.4)

(3)

4.

紀要

269

式(3.2)中に現れる任意の

𝑛𝑛, 𝑟𝑟 についても,

次の 合 同 式 を 満 た す

0 ≤ 𝑟𝑟

1

, 𝑛𝑛

1

≤ 𝑁𝑁

1

− 1 , 0 ≤ 𝑟𝑟

2

, 𝑛𝑛

2

≤ 𝑁𝑁

2

− 1 が一意に定まる.

𝑛𝑛 ≡ 𝑛𝑛

1

(mod 𝑁𝑁

1

), 𝑛𝑛 ≡ 𝑛𝑛

2

(mod 𝑁𝑁

2

) (3.5) 𝑟𝑟 ≡ 𝑟𝑟

1

(mod 𝑁𝑁

1

), 𝑟𝑟 ≡ 𝑟𝑟

2

(mod 𝑁𝑁

2

) (3.6)

このとき,式(3.2)中の各

𝑛𝑛𝑟𝑟 について

𝑛𝑛𝑟𝑟 ≡ 𝑝𝑝

1

𝑛𝑛

1

𝑟𝑟

1

+ 𝑝𝑝

2

𝑛𝑛

2

𝑟𝑟

2

(mod 𝑁𝑁)

よって

𝑊𝑊

𝑛𝑛𝑘𝑘は以下のように表すことができる.

𝑊𝑊

𝑛𝑛𝑘𝑘

= 𝑊𝑊

1𝑞𝑞1𝑛𝑛1𝑘𝑘1

∙ 𝑊𝑊

2𝑞𝑞2𝑛𝑛2𝑘𝑘2

(3.7)

但し,各

𝑗𝑗 = 1,2

について,

𝑊𝑊

𝑗𝑗

= 𝑒𝑒

−𝑖𝑖2𝜋𝜋/𝑁𝑁𝑗𝑗

, 𝑒𝑒

𝑗𝑗

= 𝑝𝑝

𝑗𝑗

𝑁𝑁

𝑗𝑗

/ 𝑁𝑁 ( 𝑝𝑝

𝑗𝑗の定義より

𝑝𝑝

𝑗𝑗

𝑁𝑁/𝑁𝑁

𝑗𝑗の倍数であるため,

𝑒𝑒

𝑗𝑗 整数)である.よって,系列長

𝑁𝑁

DFT

は, 系列長

𝑁𝑁

1

, 𝑁𝑁

2

DFT

から計算することができる.ここまで系列 長が

2

つの素数の積の場合をみてきたが,中国人剰 余定理の形から

𝑁𝑁

が対毎に素な

2

個以上の整数の積 の場合に拡張可能であることは自明である.

3.3.

系列長が

6

の場合の例

𝑁𝑁 = 6 , 𝑁𝑁

1

= 2 , 𝑁𝑁

2

= 3 とする. 式(3.3), (3.4)

を満たす

𝑝𝑝

1

, 𝑝𝑝

2はそれぞれ

𝑝𝑝

1

= 3 , 𝑝𝑝

2

= 4 となり,

𝑒𝑒

1

= 1 , 𝑒𝑒

2

= 2 である.

𝑛𝑛 , 0 ≤ 𝑛𝑛 ≤ 5 について,式(3.5)により対応す

(𝑛𝑛

1

, 𝑛𝑛

2

) の組は, それぞれ以下の通りとなる.

(0,0), (1,1), (0,2), (1,0), (0,1), (1,2)

𝑛𝑛

1

, 𝑛𝑛

2の 辞 書 式 順 序 で

𝑛𝑛

を 並 べ 替 え る と

𝑛𝑛 = 0,4,2,3,1,5

の順となり,

𝑊𝑊

1

= 𝑒𝑒

−𝑖𝑖2𝜋𝜋/2

, 𝑊𝑊

2

= 𝑒𝑒

−𝑖𝑖2𝜋𝜋/3 とすると,

𝑁𝑁 = 6 の DFT は式(3.2), (3.7)から

⎜ ⎜

⎛ 𝑋𝑋(0) 𝑋𝑋(4) 𝑋𝑋(2) 𝑋𝑋(3) 𝑋𝑋(1) 𝑋𝑋(5)⎠

⎟ ⎟

= �𝑊𝑊

10

𝑊𝑊

10

𝑊𝑊

10

𝑊𝑊

11

� ⊗ � 𝑊𝑊

20

𝑊𝑊

20

𝑊𝑊

20

𝑊𝑊

20

𝑊𝑊

22

𝑊𝑊

24

𝑊𝑊

20

𝑊𝑊

24

𝑊𝑊

22

⎜ ⎜

⎛ 𝑥𝑥(0) 𝑥𝑥(4) 𝑥𝑥(2) 𝑥𝑥(3) 𝑥𝑥(1) 𝑥𝑥(5)⎠

⎟ ⎟

となる(但し

⊗ はクロネッカー積を表す).

4.

おわりに

本稿では,整数論のソフトウェア情報学への応用 例として Paillier 公開鍵暗号系と

Winograd

の高 速フーリエ変換アルゴリズムについて述べた.

参考文献

[1] P. Paillier: Public-Key Cryptosystems Based on Composite Degree Residuosity Classes, EUROCRYPT’99 , LNCS1592, Springer-Verlag, pp.223-238 (1999).

[2] J. Katz, Y. Lindell: Introduction to Modern Cryptography , Chapman & Hall/CRC (2008).

[3] Wikipedia: Paillier Cryptosystem, https://

en.wikipedia.org/wiki/Paillier_cryptosystem [4] J.W. Cooley, J.W. Tukey: An Algorithm for the

Machine Calculation of Complex Fourier Series, Math. of Computation , Vol.19, pp.297-301 (1965).

[5] S. Winograd: On Computing the Discrete Fourier

Transforms, Math. of Computation , Vol.32,

pp.175-199 (1978).

参照

関連したドキュメント

図3に示す. 先の例では,売上数量のファイル と売上金額のファイルが処理対象と なり,過去2年分のデータは圧縮さ

このような水面に繁殖する藻類は一般にアオ コと呼ばれるもので貯水池やダム湖の水面を

$1\sim 3$ を O- 項が十分小さくなるまで繰り返し、 $H$ をブロック対角行列に変換 する。 3 FWT

このようにSTACK を用いれば、多くの問題を自動的に生成することが比較的容易に なるが、上で述べたように効果的な

ここで、 $\tau$ は非負の正定数とする。 $\tau$ が正のとき方程式系は放物型 - 放 物型方程式系となり、 $\tau=0$

$\Sigma$ 上の開部分集合 $U$ を取り、 Poincar\’e 写像 $\Pi;Uarrow\Sigma$ を考える。 $U$ 内の長方形領域 $R$ を $\Pi$

3 ルベーグ distorted

序論 多変数多項式の組が与えられたとき、 この根全体のなす代数的多様体 ( $0$ 次元とは限らな い)