how to implementation of braid group

36
1 How to Implementation of Braid Group Presenter: 陳陳陳

Upload: dani

Post on 11-Jan-2016

44 views

Category:

Documents


0 download

DESCRIPTION

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. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: How to Implementation of Braid Group

1

How to Implementation of Braid Group

Presenter: 陳國璋

Page 2: How to Implementation of Braid Group

2

Outline

Practical Comparison of Fast Public-Key Cryptosystem

An Efficient Implementation of Braid Group A Mathmatica-package for algebraic braid grou

ps

Page 3: How to Implementation of Braid Group

3

Practical Comparison of Fast Public-Key Cryptosystem

Priit Karu and Jonne Loikkanen

Seminar of Network Security, 2000

Page 4: How to Implementation of Braid Group

4

Introduction

目的 在有限的環境下,如 smart card, PDA’s或手機,實作公開金鑰加密系統。

回顧 RSA, ECC, NTRU與 Braid Group 安全等級 (Security Level) 實作 (Implementation)

Page 5: How to Implementation of Braid Group

5

About RSA

1997, Shamir, Rivest and Adelman所提出。 要有相當長的運算子 (Operands)的模數計算

(Modular arithmetic) 。 在有限環境下, RSA的效能非常慢。 由於因數分解問題, RSA的金鑰長度非常長,一般來說是 1024-bits。

Page 6: How to Implementation of Braid Group

6

About ECC 1976, Whitfield Diffie and Martin Hellman所提出。

Elliptic Curve Discrete Logarithm Problem (ECPLD)

縮小金鑰長度,減少頻寬。 安全等級 (Security Level)

ECC112 = RSA512 ECC168 = RSA1024 ECC196 = RSA2048

Page 7: How to Implementation of Braid Group

7

About ECC

實作 ECC,必須選擇明確的 field Binary field GF(2n)

適合在硬體上實作 Prime field GF(p)

運算速度慢 Even composite fields GF((2n)m)

容易被破解 Optimal Extension Fields GF(pm)

Page 8: How to Implementation of Braid Group

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。

使用加法來取代乘法。

Page 9: How to Implementation of Braid Group

9

About ECC

使用 OEFs優勢 加速 modular reductions

2n = c mod p 加速 operations modulo polynomial P(x)

xm = w mod P(x)

Page 10: How to Implementation of Braid Group

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

Page 11: How to Implementation of Braid Group

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)

Page 12: How to Implementation of Braid Group

12

About NTRU

安全等級 (Security Level) NTRU167 = RSA512 NTRU263 = RSA1024 NTRU503 = RSA2048

Page 13: How to Implementation of Braid Group

13

About Braid Group

1925, Emil Artin所提出。 代數群為辮群。

Page 14: How to Implementation of Braid Group

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

Page 15: How to Implementation of Braid Group

15

About Braid Group

Permutation - class

ListElement - class

WordAlgorithm - class

BraidCryptoSystem - class

Page 16: How to Implementation of Braid Group

16

Permutation - class

ListElement - class

WordAlgorithm - class

BraidCryptoSystem - class

About Braid Group

提供 permutation表示法。 提供 permutation運算。 n-permutation能表示成 n個整數的陣列。 有文章提出將 n-permutation(有 n!個 )轉換成一個整數與不同的 transitions表示法,並建立運算表方便計算。這在有限環境下是個非常大的負擔。

Page 17: How to Implementation of Braid Group

17

About Braid Group

將辮子轉換成一個基辮與一連串的 permutation 。

Permutation - class

ListElement - class

WordAlgorithm - class

BraidCryptoSystem - class

Page 18: How to Implementation of Braid Group

18

Permutation - class

ListElement - class

WordAlgorithm - class

BraidCryptoSystem - class

About Braid Group

將辮子轉換成唯一表示法 Left Canonical Form (LCF) 提供 inverse LCF與 product LCF計算。

Page 19: How to Implementation of Braid Group

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)

Page 20: How to Implementation of Braid Group

20

Permutation - class

ListElement - class

WordAlgorithm - class

BraidCryptoSystem - class

About Braid Group

提供加密機制,產生金鑰、加密、解密等等運算。

Page 21: How to Implementation of Braid Group

21

About Braid Group

空間需求 一個 permutation需要一個陣列,大小為 n p個 permutation需要 p個陣列,所以一個辮子所需空間為 O(np)

辮子相乘,只要複製特定辮子即可達成。 沒有額外的運算表,沒有額外資料結構。 總空間需求為 O(np)

Page 22: How to Implementation of Braid Group

22

About Braid Group

安全等級 (Security Level) p = 2, q = 2, n = 48, 在 300MHz計算環境下,在

4*108年才有辦法破解,同等於 RSA1024。

Page 23: How to Implementation of Braid Group

23

Conclusion

Page 24: How to Implementation of Braid Group

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

Page 25: How to Implementation of Braid Group

25

Canonical Factors - Data Structure

Artin表示法的標準因子 (Canonical factor)是一個 n-permutation,也就是有 n個整數的陣列。

第 i條線接到 A[i]位置。 A稱為 permutation table

Page 26: How to Implementation of Braid Group

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)

Page 27: How to Implementation of Braid Group

27

Braids – Data Structure

B = DqA1A2…Ap = (q, (Ai)) D為基辮 Ai為標準因子 (Canonical factor) B的標準長度為 p

Page 28: How to Implementation of Braid Group

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)

Page 29: How to Implementation of Braid Group

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}

Page 30: How to Implementation of Braid Group

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

檢查條件並繼續

Page 31: How to Implementation of Braid Group

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 對剩下的元素重複以上動作

Page 32: How to Implementation of Braid Group

32

拿掉單位辮

拿掉基辮

補成 Left-weighted factorization

Braids - Operations

找 maximal head

Page 33: How to Implementation of Braid Group

33

Conclusion

Page 34: How to Implementation of Braid Group

34

A Mathmatica-package for algebraic braid groups

Ville Lukkarila

Turku Centre for Computer Science

Technical Report, 2005

Page 35: How to Implementation of Braid Group

35

Technical Report

提供所有辮群的表示法。 Word Permutation LCF / MCF / RCF Buran Lawrence-Krammer

提供幾乎所有辮群上的運算。 辮群視覺化。

Page 36: How to Implementation of Braid Group

36

Summary

Permutation - class

ListElement - class

WordAlgorithm - class

BraidCryptoSystem - class

Technical Report