Post on 11-Jan-2016
description
1
How to Implementation of Braid Group
Presenter: 陳國璋
2
Outline
Practical Comparison of Fast Public-Key Cryptosystem
An Efficient Implementation of Braid Group A Mathmatica-package for algebraic braid grou
ps
3
Practical Comparison of Fast Public-Key Cryptosystem
Priit Karu and Jonne Loikkanen
Seminar of Network Security, 2000
4
Introduction
目的 在有限的環境下,如 smart card, PDA’s或手機,實作公開金鑰加密系統。
回顧 RSA, ECC, NTRU與 Braid Group 安全等級 (Security Level) 實作 (Implementation)
5
About RSA
1997, Shamir, Rivest and Adelman所提出。 要有相當長的運算子 (Operands)的模數計算
(Modular arithmetic) 。 在有限環境下, RSA的效能非常慢。 由於因數分解問題, RSA的金鑰長度非常長,一般來說是 1024-bits。
6
About ECC 1976, Whitfield Diffie and Martin Hellman所提出。
Elliptic Curve Discrete Logarithm Problem (ECPLD)
縮小金鑰長度,減少頻寬。 安全等級 (Security Level)
ECC112 = RSA512 ECC168 = RSA1024 ECC196 = RSA2048
7
About ECC
實作 ECC,必須選擇明確的 field Binary field GF(2n)
適合在硬體上實作 Prime field GF(p)
運算速度慢 Even composite fields GF((2n)m)
容易被破解 Optimal Extension Fields GF(pm)
8
About ECC
GF(pm), p = 2n – c, this paper: GF((214 - 3)12) Irreducible binomial P(x) = xm – w, this paper:
P(x)=x12 - 2 選擇 n,讓 2n滿足處理器的暫存器長度。 c, w是個小值,通常為 1, 2或 3。
使用加法來取代乘法。
9
About ECC
使用 OEFs優勢 加速 modular reductions
2n = c mod p 加速 operations modulo polynomial P(x)
xm = w mod P(x)
10
About ECC Class Oef
實作 field運算 Inversion
Polynomial version of Extended Euclidean algorithm Binary extended gcd algorithm
Multiplication Accumulation-and-then-reduction technique
Class Ec 實作橢圓曲線運算
測試機制為 ElGamal scheme
11
About NTRU
Presented by Jeffrey Hoffstein at CRYPTO’96 and was published in 1998.
代數結構為特殊的多項式環 (Polynomial rings)
難題為給定一個網格 (Lattice),找最短的向量是困難的。
Γ為多項式環, irreducible poly為 XN – 1 Γ = Z[X] / (XN - 1)
12
About NTRU
安全等級 (Security Level) NTRU167 = RSA512 NTRU263 = RSA1024 NTRU503 = RSA2048
13
About Braid Group
1925, Emil Artin所提出。 代數群為辮群。
14
About Braid Group
K. H Ko, S. J. Leem J. H. Cheon, J. W. Han, J. Kang and C. Park.New Public-key Cryptosystem Using Braid GroupAccepted at CRYPTO’2000
15
About Braid Group
Permutation - class
ListElement - class
WordAlgorithm - class
BraidCryptoSystem - class
16
Permutation - class
ListElement - class
WordAlgorithm - class
BraidCryptoSystem - class
About Braid Group
提供 permutation表示法。 提供 permutation運算。 n-permutation能表示成 n個整數的陣列。 有文章提出將 n-permutation(有 n!個 )轉換成一個整數與不同的 transitions表示法,並建立運算表方便計算。這在有限環境下是個非常大的負擔。
17
About Braid Group
將辮子轉換成一個基辮與一連串的 permutation 。
Permutation - class
ListElement - class
WordAlgorithm - class
BraidCryptoSystem - class
18
Permutation - class
ListElement - class
WordAlgorithm - class
BraidCryptoSystem - class
About Braid Group
將辮子轉換成唯一表示法 Left Canonical Form (LCF) 提供 inverse LCF與 product LCF計算。
19
Permutation - class
ListElement - class
WordAlgorithm - class
BraidCryptoSystem - class
About Braid Group
Inverse LCF 必須看過所有的 permutation才有辦法計算
The complexity of inverse permutation is O(n), n is braid index.
The complexity of inverse LCF is O(np), p is the canonical length.
Product LCF 將一個 LCF轉成 permutations,接在另一個 LCF的左邊
Permutation個數將逼近 n! 找 maximal tail,在 worst case的時間複雜度為 O(n2)
整體來說會是 O(q(p+q)n2), p,q為 canonical length,有時會慢於理論上的 O(pqnlogn)
20
Permutation - class
ListElement - class
WordAlgorithm - class
BraidCryptoSystem - class
About Braid Group
提供加密機制,產生金鑰、加密、解密等等運算。
21
About Braid Group
空間需求 一個 permutation需要一個陣列,大小為 n p個 permutation需要 p個陣列,所以一個辮子所需空間為 O(np)
辮子相乘,只要複製特定辮子即可達成。 沒有額外的運算表,沒有額外資料結構。 總空間需求為 O(np)
22
About Braid Group
安全等級 (Security Level) p = 2, q = 2, n = 48, 在 300MHz計算環境下,在
4*108年才有辦法破解,同等於 RSA1024。
23
Conclusion
24
An Efficient Implementation of Braid Group
J. C. Cha, K. H. Ko, S. J. Lee, J. W. Han and J. H. Cheon
LNCS 2002
25
Canonical Factors - Data Structure
Artin表示法的標準因子 (Canonical factor)是一個 n-permutation,也就是有 n個整數的陣列。
第 i條線接到 A[i]位置。 A稱為 permutation table
26
Canonical Factors - Operations
Comparison : O(n) Product and Inverse : O(n) The Automorphism : O(n)
The automorphism τ defined by τ(a) = D-1aD Sends canonical factors to canonical factors. Time complexity of τu(a) = O(n)
Meet : O(nlogn)
27
Braids – Data Structure
B = DqA1A2…Ap = (q, (Ai)) D為基辮 Ai為標準因子 (Canonical factor) B的標準長度為 p
28
Braids - Operations
Group operations Product : O(pn)
(DqA1…Ap)(DsB1…Bt) = Dq+sτq(A1)…τq(Ap)B1…Bt
Inverse : O(pn) (DqA1…Ap)-1 = D-(q+p)τ-(q+p)(Ap
-1D)…τ-(q+p)(A1-1D)
Left Canonical Form : O(p2nlogn) Comparison : O(p2nlogn)
29
Braids - Operations
Left-weighted P : positive braid, P = AB, A,B≧e S(P) : starting set, S(P) {1, …, ⊂ n-1} S(P) = {i | P = σiPi, Pi ≧ e} F(P) : finishing set, F(P) {1, …, ⊂ n-1} F(P) = {i | P = Piσi, Pi ≧ e} Left-weighted factorization if S(B)⊂F(A) Right-weighted factorization if F(A)⊂S(B) P = (σ2σ3σ5)(σ2σ3) = AB
S(B) = {2, 3} ⊂ F(A) = {2, 3, 5}
30
Braids - Operations Left Canonical Form
P = DqP’, P’ = A1…Ap
∀i, S(Ai+1)⊂F(Ai) If S(Ai+1)⊂F(Ai)
Select j ∈ Ai+1 with j ∈ Ai 從後面辮子找一個沒有出現在前面辮子的單位辮
Bi = Aiσi and Bi+1 = σi-1Ai+1
將此單位辮從後面辮子移除,並放到前面辮子 Replace Ai, Ai+1
取代 Check and continue
檢查條件並繼續
31
Braids - Operations
Left Canonical Form 先從 [Ap-1Ap], [Ap-2Ap-1Ap], …, [A1…Ap = P]中找 ma
ximal head當初始辮 A, B : Canonical factor
Max-head(AB) = A[(DA-1)∧LB]
LCF轉換演算法跟 Bubble Sort非常類似 先找最長的辮子 將它補成 Left-weighted factorization 對剩下的元素重複以上動作
32
拿掉單位辮
拿掉基辮
補成 Left-weighted factorization
Braids - Operations
找 maximal head
33
Conclusion
34
A Mathmatica-package for algebraic braid groups
Ville Lukkarila
Turku Centre for Computer Science
Technical Report, 2005
35
Technical Report
提供所有辮群的表示法。 Word Permutation LCF / MCF / RCF Buran Lawrence-Krammer
提供幾乎所有辮群上的運算。 辮群視覺化。
36
Summary
Permutation - class
ListElement - class
WordAlgorithm - class
BraidCryptoSystem - class
Technical Report