370 likes | 533 Views
How to Implementation of Braid Group. Presenter: 陳國璋. Outline. Practical Comparison of Fast Public-Key Cryptosystem An Efficient Implementation of Braid Group A Mathmatica-package for algebraic braid groups. Practical Comparison of Fast Public-Key Cryptosystem.
E N D
How to Implementation of Braid Group Presenter: 陳國璋
Outline • Practical Comparison of Fast Public-Key Cryptosystem • An Efficient Implementation of Braid Group • A Mathmatica-package for algebraic braid groups
Practical Comparison of Fast Public-Key Cryptosystem Priit Karu and Jonne Loikkanen Seminar of Network Security, 2000
Introduction • 目的 • 在有限的環境下,如smart card, PDA’s或手機,實作公開金鑰加密系統。 • 回顧RSA, ECC, NTRU與Braid Group • 安全等級(Security Level) • 實作(Implementation)
About RSA • 1997, Shamir, Rivest and Adelman所提出。 • 要有相當長的運算子(Operands)的模數計算(Modular arithmetic) 。 • 在有限環境下,RSA的效能非常慢。 • 由於因數分解問題,RSA的金鑰長度非常長,一般來說是1024-bits。
About ECC • 1976, Whitfield Diffie and Martin Hellman所提出。 • Elliptic Curve Discrete Logarithm Problem (ECPLD) • 縮小金鑰長度,減少頻寬。 • 安全等級(Security Level) • ECC112 = RSA512 • ECC168 = RSA1024 • ECC196 = RSA2048
About ECC • 實作ECC,必須選擇明確的field • Binary field GF(2n) • 適合在硬體上實作 • Prime field GF(p) • 運算速度慢 • Even composite fields GF((2n)m) • 容易被破解 • Optimal Extension Fields GF(pm)
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。 • 使用加法來取代乘法。
About ECC • 使用OEFs優勢 • 加速modular reductions • 2n = c mod p • 加速operations modulo polynomial P(x) • xm = w mod P(x)
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
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)
About NTRU • 安全等級(Security Level) • NTRU167 = RSA512 • NTRU263 = RSA1024 • NTRU503 = RSA2048
About Braid Group • 1925, Emil Artin所提出。 • 代數群為辮群。
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 Group Accepted at CRYPTO’2000
About Braid Group • 提供permutation表示法。 • 提供permutation運算。 • n-permutation能表示成n個整數的陣列。 • 有文章提出將n-permutation(有n!個)轉換成一個整數與不同的transitions表示法,並建立運算表方便計算。這在有限環境下是個非常大的負擔。
About Braid Group • 將辮子轉換成一個基辮與一連串的permutation 。
About Braid Group • 將辮子轉換成唯一表示法 Left Canonical Form (LCF) • 提供inverse LCF與product LCF計算。
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)
About Braid Group • 提供加密機制,產生金鑰、加密、解密等等運算。
About Braid Group • 空間需求 • 一個permutation需要一個陣列,大小為n • p個permutation需要p個陣列,所以一個辮子所需空間為O(np) • 辮子相乘,只要複製特定辮子即可達成。 • 沒有額外的運算表,沒有額外資料結構。 • 總空間需求為O(np)
About Braid Group • 安全等級(Security Level) • p = 2, q = 2, n = 48, 在300MHz計算環境下,在4*108年才有辦法破解,同等於RSA1024。
An Efficient Implementation of Braid Group J. C. Cha, K. H. Ko, S. J. Lee, J. W. Han and J. H. Cheon LNCS 2002
Canonical Factors - Data Structure • Artin表示法的標準因子(Canonical factor)是一個n-permutation,也就是有n個整數的陣列。 • 第i條線接到A[i]位置。 • A稱為permutation table
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)
Braids – Data Structure • B = DqA1A2…Ap = (q, (Ai)) • D為基辮 • Ai為標準因子(Canonical factor) • B的標準長度為p
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)
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}
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 • 檢查條件並繼續
Braids - Operations • Left Canonical Form • 先從[Ap-1Ap], [Ap-2Ap-1Ap], …, [A1…Ap = P]中找maximal head當初始辮 • A, B : Canonical factor • Max-head(AB) = A[(DA-1)∧LB] • LCF轉換演算法跟Bubble Sort非常類似 • 先找最長的辮子 • 將它補成Left-weighted factorization • 對剩下的元素重複以上動作
Braids - Operations 找maximal head 補成Left-weighted factorization 拿掉基辮 拿掉單位辮
A Mathmatica-package for algebraic braid groups Ville Lukkarila Turku Centre for Computer Science Technical Report, 2005
Technical Report • 提供所有辮群的表示法。 • Word • Permutation • LCF / MCF / RCF • Buran • Lawrence-Krammer • 提供幾乎所有辮群上的運算。 • 辮群視覺化。
Summary Technical Report