Thuật tốn tính lũy thừa đa thức

Một phần của tài liệu Mã mạng trên một số cấu trúc đại số (Trang 65 - 77)

2 1 Một số cấu trúc đại số

222 Thuật tốn tính lũy thừa đa thức

Thơng thường các hệ mật sử dụng bài tốn logarit rời rạc đều phải thực hiện lũy thừa các số theo modulo trên trường số và người ta thường sử dụng thuật tốn bình phương và nhân (như trình bày tại mục 2 1 1 4)

Tương tự, với các đa thức, dựa vào một tính chất đặc biệt của đa thức sau đây, có thể thực hiện thuật tốn tính lũy thừa cho đa thức như sau [5]

Xét đa thức�(�) ∈ ℤ2[�] /(�� + 1):

a(x ) a0x 0a1x 1a2x 2 an1x n1

Biểu diễn dạng số mũ (chỉ cho các ai 1 ):

a(x ) aa0 0, a11, a22, , an1(n1) với ai[0,1] (2 16) (2 17) Phép tính Vành đa thức Z2[�]/(� + 1)� Trường số GF(p) Phép cộng � � �(�) = ∑�∈�⊂���� ;�(�) = ∑�∈�⊂���� � �(�) = �(�) + �(�) = ∑ ��� �∈�⊂�� � = (� ∪�) − (� ∩ �) �, � GF(∈ �) � = � + � ≡ (� + �)mod� Phép nhân �(�) = �(�)�(�) � ≡ �(�)�(�)mod(� + 1) � = � � ≡ (� �)mod� ˆ

+ Nếu một số k có dạng k 2u khi đó: Dạng mũ: n1 i0 u (2 18)

a0 02u modn, a112u modn, ,an1(n 1) 2u modn (2 19)

Chứng minh: u lÇn u Mà : n1 n1 a i0 , j0; i j Ta thấy với i j :

2aia jx (i j ) mod n aia jx (i j ) mod n aia jx (i j ) mod n 0

do phép cộng đa thức là cộng modulo 2 n1 a i , j0; i j n1 2 2 2i mod n i0

Tương tự như thế ta tính được:

n1 n1 4 2 2 2 2i mod n 2 i i0 0 Tổng quát: u u u u i0 0 (2 20) a(x )a(x )aix 2 i mod n 2u k aˆ [a (x )]k [a (x )]2 ((([a2 2 2 (x )] ) ) ) 2 [a(x )]2ai2x 2i mod n 2 ai jx (i j ) mod n Vì thế: 2 ai jx (i j ) mod n 0 Vậy ta có: [a(x )]ai x [a(x )] ([a(x )] )(a x )ai4x 4i mod n [a(x )]2ai2 x 2 i mod nai x 2 i mod n n1 n1

u

Điều phải chứng minh

2 4

- Nếu k 2 thì (tính theo dạng đa thức):

[a (x )]2 1 x 22 mod 5 x 24 mod 5 1 x 3 x 4

- Nếu k 23 8 thì (tính theo dạng mũ):

(aˆ)8 (0 * 8 mod 5, 2 * 8 mod 5, 4 * 8 mod 5)  (0,1,2)

x trong a (x ) với 2� rồi lấy modulo theo n như biểu thức (2 18), (2 19)

Dựa vào tính chất này của đa thức ta có thể tính lũy thừa bất kỳ cho đa thức

a (x ) như sau:

Cho số k ngun dương và có phân tích như sau:

k2utkt t t Ví dụ: k 19 20 21 24 1 2 16 uˆ (0,1, 4); k [kt ] [1,2,16] k t t t (2 21) (2 22)

Thuật tốn tính lũy thừa của đa thức theo modulo x n 1 như trong bảng 2 2  a

2

Chú ý: do ai[0,1] nên ai i

Ví dụ: xét n 5; a(x ) 1 x x aˆ (0,2, 4)

Tức là để tính lũy thừa [�(�)]2 ta chỉ việc nhân các số mũ của từng đơn thức

Khi đó phép lũy thừa [a (x )] mod(x n 1) có thể tính như sau:

a (x )k [a (x )]k[a (x )] 2

Bảng 2 3 Thuật tốn tính lũy thừa các đa thức theo modulo x n 1

Vào: n, a (a1,a2 , ,ar )1r ,k [k1,k2 , ,kt ]1t

k n

[1] bˆ (0) , if k 0 then return bˆ [2] For i from 1 to t do:

[2 1] for j from 1 to r do:

A a jki modn

[2 2]: bˆ bˆ Aˆ [3] Return (bˆ )

Chú thích

+ Số n đảm bảo ℤ2[�] /(�� + 1) là vành đa thức có 2 lớp kề cyclic và

p 2n 1 là số nguyên tố (như mô tả trong bảng 2 1)

+ Đa thức�(�) ∈ ℤ2[�] /(�� + 1); dạng số mũ a(x ) a (a1,a2, ,ar )1r độ dài�̂ là� ≤ �

+ Số nguyên�, (0 k 2n1 1); � được biểu diễn thành một vector bao gồm�

u

kkt k [kt ]1t t

+ Mục [1]:� = (0) ↔ ̂ �(�) = 20 = 1;

Mục [2 1] tập các số�� là biểu diễn dạng mũ của đa thức�(�);

A(x ) (A1,A2 , ,Ar ) Trong một số ngơn ngữ lập trình (như Matlab) có

thể dễ dàng tính được ngay tồn bộ các phần tử trong�̂ mà khơng cần phải dùng vịng lặp Tức là ta có thể tính trực tiếp (A ) (a j ki modn): j 1,2, ,r Ra:( ) mod( )b a x 1 số thập phân , , [ ], t tk k k1 2 1 ; trong đó tik 2 : ˆ j ˆ j

+ Mục [2 2] là phép nhân đa thức theo modulo, đây là phép nhân bình thường trên vành đa thức được lấy theo modulo của�� + 1 (tính như cơng thức 2 2)

k n * Ví dụ: 2 4 k 13 1 4 8 20 22 23 , biểu diễn k như sau: k [1, 4, 8]13 Ta có: r 3; t 3

Khi đó� = ̂ �̂13 được tính như sau: [1] bˆ (0)

[2] For i from 1 to 3 do:

i 1 : (với k1 1 )

+ A (A ,A2 ,A3 ) (0 *1mod 5, 2 *1mod 5, 4 *1mod 5)  (0,2, 4)

+bˆ (0)*(0,2, 4) (0,2, 4)

� i 2 : (với k2 4 )

+ A (A ,A2 ,A3 ) (0 * 4 mod 5, 2 * 4 mod 5, 4 * 4 mod 5)  (0, 3,1)

+ bˆ (0,2, 4)*(0, 3,1) (0,1, 4)

i 3 : (với k3 8 )

+ A (A ,A2 ,A3 ) (0 * 8 mod 5, 2 * 8 mod 5, 4 * 8 mod 5)  (0,1,2) + bˆ (0,1, 4)*(0,1,2) (1, 3, 4) [3] Return bˆ (1, 3, 4) + Kết quả dạng mũ: bˆ (aˆ) mod(x 1) Xét n 5; a(x ) 1 x x aˆ (0,2, 4)13 và ˆ 1 ˆ 1 1

Vậy kết quả có được là:

13

2 2 3 Mã mạng dựa trên nhóm cộng của vành đa thức

Theo ý tưởng của Ahlswede, thơng tin từ A và B có thể coi như đa thức�(�)

và�(�) trong một vành đa thức ℤ2[�]/�� + 1 Trong trường hợp này chúng ta thực hiện mã mạng như bên dưới:

Hình 2 7 Mã mạng trên vành đa thức - Pha thứ nhất: Truyền thông tin:

Nút C nhận thông tin�(�) từ nút A và thông tin�(�) từ nút B �(�), �(�) ∈ ℤ2[�] /(�� + 1)

- Pha thứ hai: Tại nút C thực hiện phép tính:

�(�) = �(�) + �(�) (2 23)

sau đó truyền�(�) cho cả nút A và nút B

- Pha thứ ba: Tại Nút A và B khôi phục thông tin�(�) và�(�) sau khi giải mã�(�):

Tại nút A:�(�) = �(�) − �(�)

Tại nút B:�(�) = �(�) − �(�)

Chú ý: các phép cộng và trừ ở đây là cho các đa thức

Ví dụ: Xét vành đa thức ℤ2[�]/� 5 + 1, với� = 5

Giả thiết:

�(�) = 1 + � 2 + � 3⟷ (023),

�(�) = 1 + � 2 + � 4⟷ (024)

Suy ra:�(�) = �(�) + �(�) = � 3 + � 4⟷ (34)

Nút A và B khôi phục thông tin từ�(�) bằng cách thực hiện phép tính: �(�) = �(�) − �(�) = (34) − (023) = (024),

�(�) = �(�) − �(�) = (34) − (024) = (023)

Chú ý: Ký hiệu�(�) = (023) là biểu diễn dạng số mũ của đa thức:�(�) = 1 + � 2 + � 3, nó có nghĩa là: (023) ↔ � 0 + � 2 + � 3 = 1 + � 2 + � 3 Tương tự với các đa thức khác

Như vậy, chúng ta thấy phương pháp này hiệu quả như phương pháp của Ahlswere Tuy nhiên, thông tin của A, B và C được trình bày bởi các đa thức trong vành đa thức

2 2 4 Mã mạng trên trường đa thức

Xét một đa thức nguyên thủy�(�) có bậc� với các hệ số trong GF(2), từ đó

Z2[�]/�(�) là một trường đa thức [62]

2 2 4 1 Mã mạng sử dụng phép nhân trên trường đa thức

Q trình mã mạng có thể được mơ tả như Hình 2 8 bên dưới:

Hình 2 8 Mã mạng trên trường đa thức - Pha thứ nhất: Truyền thơng tin

Trong đó,�(�), �(�) Z∈ 2[�]/�(�);�(�) là một đa thức nguyên thủy;

deg�(�) = �; deg �(�) < �; deg �(�) < � - Pha thứ hai: Tại nút C thực hiện phép tính:

�(�) = �(�) �(�)����(�) (2 24)

rồi sau đó phát quảng bá�(�) tới cả nút A và B

- Pha thứ ba: Tại nút A và B khôi phục được thông tin�(�), �(�) sau khi giải mã�(�):

Tại nút A:�(�) = �(�) �−1(�)����(�)

Tại nút B:�(�) = �(�) �−1(�)����(�)

Chú ý:�−1(�) và�−1(�) là đa thức nghịch đảo tương ứng của�(�) và�(�)

Ví dụ: Xét�(�) = 1 + � 2 + � 5⟷ (025) với deg�(�) = � = 5

- Pha thứ nhất: Giả sử�(�) = (023) và�(�) = (024) Nút C nhận được cả �(�) và�(�) Sau đó chuyển sang pha 2

- Pha thứ hai: Tại nút C thực hiện phép tính:

�(�) = �(�) �(�)����(�) = (023)(024) = (14)

rồi sau đó phát quảng bả�(�) tới cả nút A và B - Pha thứ ba:

Tại nút A khôi phục thông tin�(�) từ�(�):

�(�) = �(�) �−1(�)����(�) = (14)(0123) = (024)

Tại nút B khôi phục thông tin�(�) từ�(�):

�(�) = �(�) �−1(�)����(�) = (014)(134) = (023)

Trong đó,�−1(�) = (0123) và�−1(�) = (134) là đa thức nghịch đảo tương ứng của�(�) và�(�)

2 2 4 2 Mã mạng Affine trên trường đa thức

Trong mơ hình mã mạng này, NCS sử dụng cả phép cộng và phép nhân đa thức trên trường đa thức để thực hiện mã mạng

Hình 2 9 Mã mạng Affine trên trường đa thức - Pha thứ nhất: Truyền thông tin

Nút C nhận thông tin là các đa thức�(�) và�(�) từ nút A và B Trong đó,�(�), �(�) Z∈ 2[�]/�(�);�(�) là một đa thức nguyên thủy;

deg�(�) = �; deg �(�) < �; deg �(�) < � - Pha thứ hai: Tại nút C thực hiện phép tính:

�(�) = �(�) �(�) + [�(�) + �(�)] (2 25)

rồi sau đó C phát quảng bá�(�) tới cả nút A và B

- Pha thứ ba: Tại nút A và B khôi phục được thông tin�(�), �(�) sau khi giải mã�(�) Tại nút A: �(�) − �(�) = �(�) �(�) + �(�) = �(�) [�(�) + 1] Hoặc: � �(�) = c(x)−a(x)�(�)+1 �(�) = [�(�) − �(�)] [�(�) + 1]−1 Tại nút B: �(�) − �(�) = �(�) �(�) + �(�) = �(�) [�(�) + 1] (2 26) Hoặc: � �(�) = c(x)−b(x) �(�)+1

�(�) = [�(�) − �(�)] [�(�) + 1]−1 (2 27)

Ví dụ: Xét trường đa thức Z2[�]/�(�) với�(�) = 1 + � 3 + � 5⟷ (035) là một đa thức nguyên thủy và deg�(�) = � = 5

- Pha thứ nhất:

Nút A chọn�(�) = 1 + � + � 2 Z∈ 2[�]/�(�),() = (���)

với deg �(�) = 2 < �; Sau đó A tính trước:

[�(�) + 1]−1 = [1 + � + � 2 + 1]−1 = [� + � 2]−1 = � 2 + � 3⟷ (23)

Nút B chọn�(�) = � 2 + � 4 Z∈ 2[�]/�(�),() = (��)

với deg �(�) = 4 < �; Sau đó B thực hiện phép tính:

[�(�) + 1]−1 = [� 2 + � 4 + 1]−1 = 1 + � 3 + � 4⟷ (034)

- Pha thứ hai: Nút C nhận�(�) và�(�) từ nút A và B, rồi C thực hiện phép tính: �(�) = �(�)�(�) + [�(�) + �(�)] = (012)(24) + [(012) + (24)] = (2)

Sau khi tính được�(�), nút C phát�(�) = � 2⟷ (2) cho cả nút A và B - Pha thứ ba: Khôi phục thông tin

Tại nút A: �(�) = [�(�) − �(�)][�(�) + 1]−1 = [(2) − (012)](23) = (01)(23) = (��) Tại nút B sẽ thực hiện phép tính: �(�) = [�(�) − �(�)][�(�) + 1]−1 = [(2) − (24)](034) = (4)(034) = (���)

2 3 MÃ MẠNG TRÊN ĐƯỜNG CONG ELLIPTIC

2 3 1 1 Đường cong elliptic

Lý thuyết đường cong Elliptic (EC- Elliptic Curve) được xác định trên trường số hữu hạn và ứng dụng trong lĩnh vực mật mã Lý do cơ bản của nó là đường cong elliptic trên trường hữu hạn đã cung cấp cho chúng ta một cơ sở xây dựng thuật toán khơng thể dùng thuật tốn vét cạn để thám mã của nhóm Abelian [63]

Đường cong elliptic [54, 55] là tập hợp các điểm có tọa độ (x, y) thỏa mãn phương trình có dạng sau đây :

� 2 + �1�� � + 3� = � 3 + �2� 2 + �4� + �6 (2 28) Hình 2 10 sau mơ tả các đường cong EC:

� 2 = � 3 + 2� + 5 và� 2 = � 3 − 2� + 1

2 3 2 3

Xét đường cong elliptic trên trường nguyên tố hữu hạn F� (p là số nguyên tố, p

> 3) với công thức biến đổi như sau: � → � − � 2

3 , � → � −

1� + � 3

2

Khi đó phương trình Weierstrass có dạng: � 3 + �� + � Vậy trong trường F� phương trình trở thành:

� 2 = � 3 + �� + � (2 29) Hình 2 10 Các đường cong y x 2x 5 và y x 2x1

Giả sử K là một trường có đặc số khác 2, 3 và xét đa thức:� 3 + �� + � với �, � K∈ Khi đó đường cong elliptic trên trường K:� 2 = � 3 + �� + � là tập hợp tất cả các điểm (�, �) với�, � K∈ sao cho phương trình khơng có các nghiệm bội tức là 4�3 + 27�2 ≠ 0 theo���� cùng với phần tử O - điểm O này được gọi là điểm vô hạn Vậy đường cong elliptic là tập hợp S:

� = {(�, �): � 2 = � 3 + �� + � ; �, � ∈�} {0}∪

Với�, K � ∈ cho trước sao cho 4�3 + 27�2 ≠ 0 theo���� Nếu K là trường đặc số 2 thì ta định nghĩa:

� = {(�, �): � 2 + � = � 3 + �� + �} {0}∪

Nếu K là trường đặc số 3 thì ta định nghĩa:

� = {(�, �): � 2 = � 3 + �� + �� + �} {0}∪

Tính chất

- Nếu hai điểm P1(�1, �1) và P2(�2, �2) với�1 ≠ �2 nằm trên đường cùng một đường cong EC, thì đường thẳng qua hai điểm P1 và P2 sẽ cắt một điểm duy nhất

P3(�3, �3) có thể xác định thơng qua P1 và P2 nằm trên đường cong EC

- Tiếp tuyến tại điểm bất kỳ P(�, �) trên đường cong EC cũng cắt EC tại một điểm duy nhất, điểm này cũng có thể xác định được thơng qua P

Dựa vào những tính chất đó người ta đã nghiên cứu và phát hiện ra một khả năng mới cho kỹ thuật mã bảo mật mới đó là kỹ thuật mật mã đường cong

elliptic (ECC)

Người ta đã chỉ ra rằng các hệ mật đường cong elliptic có độ bảo mật cao hơn nhiều so với các hệ mã hóa cơng khai khác như RSA, Elgamal Độ bảo mật dựa trên độ khó phân tích số ngun thành các thừa số nguyên tố cũng như bài tốn logarit rời rạc, độ dài khóa giảm đi nhiều lần và do đó tốc độ thực hiện cũng sẽ nhanh hơn rất nhiều Chính vì vậy người ta áp dụng kỹ thuật mật mã đường cong elliptic vào nhiều lĩnh vực khác nhau đặc biệt là việc xây dựng các giải pháp bảo mật thông tin cho các thiết bị điện tử có khả năng tính tốn và khơng gian bộ nhớ hạn chế

2 3 1 2 Đường cong elliptic trên trường Galois

Đường cong elliptic� 2 = � 3 + �� + � trên trường hữu hạn ℤ� (với� là nguyên tốt) được định nghĩa là tập hợp tất cả các điểm (�, �) ∈ ℤ� thỏa mãn phương trình [56, 57, 59, 60, 62]:

� 2 = � 3 + �� + �(mod�)

với� ∈ ℤ�,�, �: nguyên dương

Điều kiện tồn tại là:

= 4

Δ �3 + 27�2(����) ≠ 0

Một phần của tài liệu Mã mạng trên một số cấu trúc đại số (Trang 65 - 77)

Tải bản đầy đủ (DOCX)

(111 trang)
w