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

1 How to Implementation of Braid Group Presenter: 陳國璋

  • View
    216

  • Download
    1

Embed Size (px)

Citation preview

Page 1: 1 How to Implementation of Braid Group Presenter: 陳國璋

1

How to Implementation of Braid Group

Presenter: 陳國璋

Page 2: 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

Page 3: 1 How to Implementation of Braid Group Presenter: 陳國璋

3

Practical Comparison of Fast Public-Key Cryptosystem

Priit Karu and Jonne Loikkanen

Seminar of Network Security, 2000

Page 4: 1 How to Implementation of Braid Group Presenter: 陳國璋

4

Introduction

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

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

Page 5: 1 How to Implementation of Braid Group Presenter: 陳國璋

5

About RSA

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

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

Page 6: 1 How to Implementation of Braid Group Presenter: 陳國璋

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: 1 How to Implementation of Braid Group Presenter: 陳國璋

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: 1 How to Implementation of Braid Group Presenter: 陳國璋

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: 1 How to Implementation of Braid Group Presenter: 陳國璋

9

About ECC

使用 OEFs優勢 加速 modular reductions

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

xm = w mod P(x)

Page 10: 1 How to Implementation of Braid Group Presenter: 陳國璋

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: 1 How to Implementation of Braid Group Presenter: 陳國璋

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: 1 How to Implementation of Braid Group Presenter: 陳國璋

12

About NTRU

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

Page 13: 1 How to Implementation of Braid Group Presenter: 陳國璋

13

About Braid Group

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

Page 14: 1 How to Implementation of Braid Group Presenter: 陳國璋

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: 1 How to Implementation of Braid Group Presenter: 陳國璋

15

About Braid Group

Permutation - class

ListElement - class

WordAlgorithm - class

BraidCryptoSystem - class

Page 16: 1 How to Implementation of Braid Group Presenter: 陳國璋

16

Permutation - class

ListElement - class

WordAlgorithm - class

BraidCryptoSystem - class

About Braid Group

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

Page 17: 1 How to Implementation of Braid Group Presenter: 陳國璋

17

About Braid Group

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

Permutation - class

ListElement - class

WordAlgorithm - class

BraidCryptoSystem - class

Page 18: 1 How to Implementation of Braid Group Presenter: 陳國璋

18

Permutation - class

ListElement - class

WordAlgorithm - class

BraidCryptoSystem - class

About Braid Group

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

Page 19: 1 How to Implementation of Braid Group Presenter: 陳國璋

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: 1 How to Implementation of Braid Group Presenter: 陳國璋

20

Permutation - class

ListElement - class

WordAlgorithm - class

BraidCryptoSystem - class

About Braid Group

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

Page 21: 1 How to Implementation of Braid Group Presenter: 陳國璋

21

About Braid Group

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

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

Page 22: 1 How to Implementation of Braid Group Presenter: 陳國璋

22

About Braid Group

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

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

Page 23: 1 How to Implementation of Braid Group Presenter: 陳國璋

23

Conclusion

Page 24: 1 How to Implementation of Braid Group Presenter: 陳國璋

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: 1 How to Implementation of Braid Group Presenter: 陳國璋

25

Canonical Factors - Data Structure

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

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

Page 26: 1 How to Implementation of Braid Group Presenter: 陳國璋

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: 1 How to Implementation of Braid Group Presenter: 陳國璋

27

Braids – Data Structure

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

Page 28: 1 How to Implementation of Braid Group Presenter: 陳國璋

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: 1 How to Implementation of Braid Group Presenter: 陳國璋

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: 1 How to Implementation of Braid Group Presenter: 陳國璋

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: 1 How to Implementation of Braid Group Presenter: 陳國璋

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: 1 How to Implementation of Braid Group Presenter: 陳國璋

32

拿掉單位辮

拿掉基辮

補成 Left-weighted factorization

Braids - Operations

找 maximal head

Page 33: 1 How to Implementation of Braid Group Presenter: 陳國璋

33

Conclusion

Page 34: 1 How to Implementation of Braid Group Presenter: 陳國璋

34

A Mathmatica-package for algebraic braid groups

Ville Lukkarila

Turku Centre for Computer Science

Technical Report, 2005

Page 35: 1 How to Implementation of Braid Group Presenter: 陳國璋

35

Technical Report

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

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

Page 36: 1 How to Implementation of Braid Group Presenter: 陳國璋

36

Summary

Permutation - class

ListElement - class

WordAlgorithm - class

BraidCryptoSystem - class

Technical Report