SlideShare a Scribd company logo
1 of 32
Download to read offline
Mersenne 数を用いた公開鍵暗号システムについて
AJPS Public-Key Cryptosystem
1
手塚 真徹 田中 圭介
東京工業大学
※ 本スライド は2018年CREST暗号数理ミニワークショップ
「未解決問題ワークショップ」の前半スライドである.
Version: 2020/12/23
Mersenne 数を用いた公開鍵暗号システム
2
Aggrawal,Joux,Prakash,Sanatha [AJP+18] (CRYPTO 2018)
メルセンヌ数に関連する,新たな計算困難な問題を
ベースとした暗号方式を提案した.
本発表では AJPS 公開鍵暗号方式の概略を解説する.
[AJP+18] Divesh Aggarwal, Antoine Joux, Anupam Prakash, Miklos Santha:
A New Public-Key Cryptosystem via Mersenne Numbers: CRYPTO2018
AJPS 暗号方式の解説
□ AJPS 公開鍵暗号方式の提案の動機
□ メルセンヌ数の性質
□ メルセンヌ数に関連した計算困難な問題
□ 1ビットメッセージ AJPS 公開鍵暗号方式
□ 多ビットメッセージ AJPS 公開鍵暗号方式
3
公開鍵暗号の歴史
4
1976年 Diffie,Hellman
➡ 公開鍵暗号の概念を提案
1978年 Rivest ,Shamir,Adleman
➡ RSA暗号: RSA仮定(素因数分解と関連あり)
1984年 ElGamal
➡ エルガマル暗号: 離散対数問題
公開鍵暗号の歴史
5
1976年 Diffie,Hellman
➡ 公開鍵暗号の概念を提案
1978年 Rivest ,Shamir,Adleman
➡ RSA暗号: RSA仮定(素因数分解と関連あり)
1984年 ElGamal
➡ エルガマル暗号: 離散対数問題
1997年
Shorのアルゴリズム
量子コンピュータ
耐量子暗号
6
暗号に利用される数学問題の種類
・ 格子
・ 符号
・ 多変数多項式
・ ハッシュ関数
・ 同種写像
・ その他
耐量子暗号
7
暗号に利用される数学問題の種類
・ 格子
・ 符号
・ 多変数多項式
・ ハッシュ関数
・ 同種写像
・ その他
本発表の暗号
AJPS
AJPS 暗号方式の解説
□ AJPS 公開鍵暗号方式の提案の動機
□ メルセンヌ数の性質
□ メルセンヌ数に関連した計算困難な問題
□ 1ビットメッセージ AJPS 公開鍵暗号方式
□ 多ビットメッセージ AJPS 公開鍵暗号方式
8
メルセンヌ素数とは
9
メルセンヌ素数 ! とは
! = 2$
− 1 ((: 素数)
の形で表せる素数のこと.
メルセンヌ素数 ! = 2$
− 1 を ( bit で表すと,
11 … … … 1
となる.
(
メルセンヌ素数を法とした算術
10
メルセンヌ素数: ! = 2$
− 1
加法 ' + ),乗法 ' × ) を次のように定める.
' + ) = +,-(/01 ' + /01 ) 234 !)
' 6 ) = +,- /01 ' 6 /01 ) 234 !
', ) ∈ {0, 1}$
ハミング重み
11
二進文字列 ! のハミング重みとは
文字列 ! の中の 1 であるビットの総数.
※ (メルセンヌ素数: " = 2%
− 1に対して
文字列(1%
) のハミング重みは 0 とする.
→*+, 1%
= *+,(-./ 012 1%
,34 " = *+,(0) .
1 0 1 1 0 0 1
! = *+,(!) = 4
例.
メルセンヌ素数とハミング重み
12
メルセンヌ素数: ! = 2$
− 1, ', ) ∈ {0, 1}$
次のハミング重みの評価式が成り立つ.
./0 ' + ) ≤ ./0 ' + ./0 )
./0 ' 3 ) ≤ ./0 ' × ./0 )
./0 −' ≤ 5 − ./0 ' ( ' ≠ 0$
)
AJPS 暗号方式の解説
□ AJPS 公開鍵暗号方式の提案の動機
□ メルセンヌ数の性質
□ メルセンヌ数に関連した計算困難な問題
□ 1ビットメッセージ AJPS 公開鍵暗号方式
□ 多ビットメッセージ AJPS 公開鍵暗号方式
13
Mersenne Low Hamming Ratio Assumption
14
メルセンヌ素数: ! = 2$
− 1,パラメータ: ℎ
( : ランダム ) bit 文字列
*, , : ハミング重み ℎ のランダム ) bit 文字列
( -). /01
2)3(*)
2)3(,)
を識別することが困難である.
Mersenne Low Hamming Ratio Assumption
Mersenne Low Hamming Combination Assumption
15
メルセンヌ素数: ! = 2$
− 1,パラメータ: ℎ
(), (+, (,, (-: ランダム . bit 文字列
/, 0), 0+ : ハミング重み ℎ のランダム . bit 文字列
()
(+
() 1 / + 0)
(+ 1 / + 0+
3.4
()
(+
(,
(-
を識別することが困難である.
Mersenne Low Hamming Combination Assumption
AJPS 暗号方式の解説
□ AJPS 公開鍵暗号方式の提案の動機
□ メルセンヌ数の性質
□ メルセンヌ数に関連した計算困難な問題
□ 1ビットメッセージのAJPS公開鍵暗号方式
□ 多ビットメッセージのAJPS公開鍵暗号方式
16
公開鍵暗号方式
17
公開鍵暗号方式 PKE = (KeyGen, Enc, Dec)
KeyGen
Enc
Dec
!! (!#, %#)
(!#, ')
(%#, ()
(
' )* ⊥
公開鍵暗号方式
18
公開鍵暗号方式 PKE = (KeyGen, Enc, Dec)
KeyGen
Enc
Dec
!! (!#, %#)
(!#, ')
(%#, ()
(
' )* ⊥
∀' ∈ ., ∀ !#, %# ← KeyGen(11
) に対し,
Dec(%#, Enc(!#, ')) = '
正当性
公開鍵暗号方式の安全性
19
Seman(cally security (IND-CPA)
・ ("#, %#) ← KeyGen(1)
)
・ * ←$
{0,1}
/0 ← Enc("#, 10)
・ * = *∗
?
Challenger Adversary
"#
15, 16
/0
*∗
1ビットメッセージ AJPS 公開鍵暗号方式
20
!! = ($, ! = 2'
− 1, ℎ)
・ Choose , bits strings -, . s.t
Ham - = Ham . = ℎ
・ !/ ≔ 1 = 234
5,6 -
5,6 .
, 2/ ≔ .
・ Return (!/, 2/)
KeyGen(!!)
1ビットメッセージ AJPS 公開鍵暗号方式
21
・ Choose ! bits strings ", $ s.t
Ham " = Ham $ = ℎ
・ Return ' ≔ −1 +
(" - . + $)
Enc(12 = ., 3)
・ Compute ' - 4 = −1 +
(" - 5 + $ - 4)
・ If Ham ' - 4 ≤ 2ℎ8
, return 1
・ If Ham ' - 4 ≥ ! − 2ℎ8
, return 0
Dec(:2 = 4, ')
1ビットメッセージ AJPS の正当性
22
正当性 ( ! = 0 のとき)
・ $ % & = ' % ( + * % & = ' % + + * % &
(,- $ % & ≤ (,- ' % + + (,- * % &
≤ (,- ' × (,- +
+(,- * × (,- & ≤ 2ℎ2
(,- ' + * ≤ (,- ' + (,- *
(,- ' % * ≤ (,- ' × (,- *
( = 345
678 +
678 &
1ビットメッセージ AJPS の正当性
23
正当性 ( ! = 1 のとき)
・ $ % & = − ( % ) + + % &
,-. $ % & = / − ,-. ( % ) + + % &
≥ / − 2ℎ3
,-. −( ≤ / − ,-. ( ( ( ≠ 08
)
, = :;<
=/> )
=/> &
1ビットメッセージ AJPS の正当性
24
!"#(% & ')
正当性は,4ℎ+
< - のときに成り立つ.
. = 0 のとき . = 1のとき
0 2ℎ+ - − 2ℎ+ -
1ビットメッセージ AJPS の安全性
25
Mersenne Low Hamming Ra2o Assump2on が成り立つ
⇨ 1ビットメッセージ AJPS は Seman2cally Secure
である.
" #$% &'(
)$*(,)
)$*(.)
を識別することが困難である.
Mersenne Low Hamming Ratio Assumption
AJPS 暗号方式の解説
□ AJPS 公開鍵暗号方式の提案の動機
□ メルセンヌ数の性質
□ メルセンヌ数に関連した計算困難な問題
□ 1ビットメッセージ AJPS 公開鍵暗号方式
□ 多ビットメッセージ AJPS 公開鍵暗号方式
26
誤り訂正符号 (Error Correcting Code )
27
誤り訂正符号
データを記録・伝送する際に発生する誤りを
受け手の側で検出し、訂正することができる
ように付加される符号.
多ビットメッセージ AJPS 公開鍵暗号方式
28
!! = ($, ! = 2'
− 1, ℎ)
・ Choose , bits strings -, . s.t
Ham - = Ham . = ℎ
・ Choose , bits string /
・ !0 ≔ (/, 2) = (/, - 3 / + .), 50 ≔ -
・ Return (!0, 50)
KeyGen(!!)
多ビットメッセージ AJPS 公開鍵暗号方式
29
ℰ: error correc(ng encoding algorithm
・ Choose # bits strings $, &', &( s.t
Ham $ = Ham &' = Ham &( = ℎ
・ +' ≔ $ - . + &'
・ +( ≔ $ - 0 + &( ⨁ ℰ(3)
・ Return + ∶= (+', +()
Enc(67 = (., 0), 3)
多ビットメッセージ AJPS 公開鍵暗号方式
30
!: error correc(ng decoding algorithm
・ Parse # as (#%, #')
・ Compute )
* ∶= !( - . #% ⨁ #')
・ Return )
*
Dec(01 = -, #)
多ビットメッセージ AJPS の復号
31
復号は ! " #$ と #% のハミング距離が低くなると
期待できることを利用.(復号の失敗の可能性あり)
! " #$ ⨁ #%
= ! " ( " ) + +$ ⨁ ( " , + +% ⨁ ℰ(/)
= ( " ! " ) + +$ " ! ⨁ ( " , + +% ⨁ ℰ(/)
= (( " (, − 2) + +$ " !) ) ⨁ ( " , + +% ⨁ ℰ(/)
= ( " , + +% − +% − ( " 2 + +$ " !
⨁ ( " , + +% ⨁ ℰ(/)
多ビットメッセージ AJPS の安全性
32
Mersenne Low Hamming Combina3on Assump3on
が成り立つ.
⇨ 多ビットメッセージ AJPS は Seman3cally Secure .
"#
"$
"# % & + (#
"$ % & + ($
)*+
"#
"$
",
"-
を識別することが困難である.
Mersenne Low Hamming Combination Assumption

More Related Content

Similar to AJPS Public-Key Cryptosystem

How to study stat
How to study statHow to study stat
How to study stat
Ak Ok
 

Similar to AJPS Public-Key Cryptosystem (9)

katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
 
公開鍵暗号(1): RSA暗号
公開鍵暗号(1): RSA暗号公開鍵暗号(1): RSA暗号
公開鍵暗号(1): RSA暗号
 
C07
C07C07
C07
 
How to study stat
How to study statHow to study stat
How to study stat
 
第15回 配信講義 計算科学技術特論B(2022)
第15回 配信講義 計算科学技術特論B(2022)第15回 配信講義 計算科学技術特論B(2022)
第15回 配信講義 計算科学技術特論B(2022)
 
公開鍵暗号1: RSA暗号
公開鍵暗号1: RSA暗号公開鍵暗号1: RSA暗号
公開鍵暗号1: RSA暗号
 
StanとRでベイズ統計モデリング 11章 離散値をとるパラメータ
StanとRでベイズ統計モデリング 11章 離散値をとるパラメータStanとRでベイズ統計モデリング 11章 離散値をとるパラメータ
StanとRでベイズ統計モデリング 11章 離散値をとるパラメータ
 
C02
C02C02
C02
 
C++によるソート入門
C++によるソート入門C++によるソート入門
C++によるソート入門
 

AJPS Public-Key Cryptosystem