Luận văn Ứng dụng mã Xyclic cục bộ xây dựng hệ mật

MỤC LỤC

MỤC LỤC 1

CÁC CHỪ VIẾT TẤT 3

DANH MỤC BÀNG BIẺU - 4

DANH MỤC HÌNH VẺ 5

CHƯƠNG 1 - TÒNG QUAN HẸ MẬT 10

Ị.ỉ. Khái quát chung hệ mậr mà có điên 10

1.1.1. Mô hint bệ thõng trụỵèn tin mật 10

1.1.2. Một sô hệ mật mà cô điên điên hình 11

1.2. Hệ mậr khoã công khai. lì

1.2.1. Khái quát chung 13

1.2.2. Nguyên tãc chung mà hoá vói khoá công khai 14

1.2.3. Quá trinh phát triên cũa hệ mật mà khoá cõng khai 14

Li KÌtỉuận 24

CHƯƠNG 2 - LÝ THỰYẺT ĂỶ MÀ XYCLIC cục BỌ VÀ PHÁN

HOẠCH VÀNH ĐA THỨC 25

2.1. Khôi niệm mà xycỉĩc và vãnh đa ĩhủc 25

2.1.1. Mà tuyến tính 25

2.1.2. Vành đa thúc 26

2.1.3. Màxydic 28

2.1.4. Mà hoá cho mà xyclic 30

2.1.5. Giãimàngưòng 31

2.1.6. Khái niệm mà xyclic cục bộ 34

2.1.7. Môi quan hệ giừa mà xyclic và xyclic cục bộ 34

2.1.8. Mà xyclic cục bộ xây dựng trẽn các nhóm nhân xyclic 35

2.2. Phán hoạch vãnh đa ĩhừc theo nhóm nhàn xyclic 35

2.2.1. Phàn hoạch của vãnh theo các nhóm nhãn xyclic 35

2.2.2. Phàn hoạch '.-ảnh đa thức theo nhõm nhân xyclic đon vị 37

2.2.3. Thuật toán xây dựng vành đa thúc theo nhóm nhân xyclic đon ụ 39

2.3. Kêĩ luận 41

CHƯƠNG 3 - XÂY DỤNG HẸ MẠT MCELIECE TRÊN MÀ XCB 42

3.1. Tiêu chi lựa chọn bộ mà xyclic cục bộ và mô hình toán học đé xây dựng hệ mật McEliece 42

3.1.1. Tiêu chi lựa chọn bộ mà XCB đẽ xây dựng hệ mật McEliece 42

3.1.2. Mô binh toán học xây dụng hệ mật McEliece • ’ói mà xyclic cục bộ 42

 

pdf71 trang | Chia sẻ: mimhthuy20 | Lượt xem: 579 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Luận văn Ứng dụng mã Xyclic cục bộ xây dựng hệ mật, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
è ø = =y yP = (1, 0, 0, 0, 1, 1, 1) Tiếp theo người nhận giải mã y1 để nhận được x1 = (1, 0, 0, 0, 1, 1, 0) (cần để ý là e1 ¹ e do phép nhân với P-1). Sau đó lập x0 = (1, 0, 0, 0) (bốn thành phần đầu tiên của x1). Cuối cùng người nhận tính: 1 0 1 1 0 1 1 1 0 0 (1,0,0,0) (1,1,0,1) 0 1 1 1 1 0 0 1 - æ ö ç ÷ ç ÷ ç ÷ ç ÷ è ø = = =x S x Đây chính là bản rõ cần nhận được. 1.3. Kết luận Trong chương này đã đề cập tới các nội dung về các hệ mật mã cổ điển và các hệ mật mã khoá công khai, trên cơ sở phân tích các ưu nhược điểm của các hệ mật, chúng ta nhận thấy rằng trong các hệ mật khoá công khai chỉ có hệ mật McEliece là sử dụng lý thuyết mã đại số cụ thể là mã Goppa để xây dựng hệ mật. Với sự phát triển của lý thuyết xây dựng mã xyclic cục bộ, chúng ta hoàn toàn có thể tự xây dựng một hệ mật khoá công khai dựa trên lược đồ McEliece sử dụng mã xyclic cục bộ. 25 Chương 2 - LÝ THUYẾT VỀ Mà XYCLIC CỤC BỘ VÀ PHÂN HOẠCH VÀNH ĐA THỨC 2.1. Khái niệm mã xyclic và vành đa thức 2.1.1. Mã tuyến tính a) Mã tuyến tính Mã tuyến tính độ dài n là mã mà từ mã của nó có các dấu mã là các dạng tuyến tính. Mã tuyến tính (n,k) là mã tuyến tính độ dài n trong đó ta có thể chỉ ra được vị trí của k dấu thông tin trong từ mã. Mã tuyến tính ngẫu nhiên là mã tuyến tính có các dấu mã được chọn ngẫu nhiên từ các dạng tuyến tính có thể có. b) Ma trận sinh và ma trận kiểm tra Để đơn giản cho việc mô tả mã tuyến tính người ta thường sử dụng ma trận sinh G[k x n]. Ma trận này chứa k véc-tơ hàng độc lập tuyến tính tạo nên không gian mã V(n,k). Trong đại số tuyến tính ta biết rằng với mỗi G sẽ tồn tại ma trận H[r x n] thỏa mãn: G . HT = 0, r = n - k Ma trận H được gọi là ma trận kiểm tra của mã tuyến tính (n, k). Ta thấy rằng H chứa r véc-tơ hàng trực giao với các véc-tơ hàng của G. Hiển nhiên là nếu a là một véc-tơ mã a Î V(n,r) thì a.HT = 0. Ở đây, H cũng là một ma trận sinh của một mã tuyến tính V(n,r) và G lại chính là ma trận kiểm tra của mã này. Ta có thể viết ra r phương trình: 1 0, 1,2,.., n j ij j a h i r = = =å Các phương trình này còn được gọi là các tổng kiểm tra của mã tuyến tính. 26 2.1.2. Vành đa thức Nhóm hữu hạn , với G = { ai, "i } thì G gọi là nhóm xyclic sinh bởi a, và a được gọi là phần tử sinh của nhóm. Vành đa thức là tập hợp các đa thức thực hiện được hai phép toán cộng (+) và nhân (.) đa thức theo modulo xn + 1, trong đó tạo thành một nhóm còn tạo thành nửa nhóm. Ký hiệu vành đa thức là Rn. Nếu xét trên trường nhị phân GF(2) thì vành đa thức được kí hiệu dưới dạng Z2[x]/xn+1. Trên vành đa thức Z2[x]/xn+1 ta định nghĩa phép nhân modulo như sau: a(x), b(x) là các đa thức của vành, a(x).b(x) = c(x) (mod xn+1) cũng là một đa thức của vành. Ví dụ, trên vành Z2[x]/x5+1: a(x) = 1 + x4, b(x) = x, phép nhân hai đa thức này là c(x) = a(x).b(x)= (1+x4)(x)= x5+x = x+1 (mod x5+1). Ideal I của vành đa thức gồm tập các đa thức a(x) là bội của một đa thức g(x) thỏa mãn: - g(x) là ước của xn + 1. - deg g(x) = min deg a(x) với mọi a(x) Î I, a(x) ¹ 0. Ký hiệu Ideal I trong vành đa thức là I = . Xét trong vành đa thức, đa thức a(x) = 1 0 n i i i a x - = å 0 1 1( , ,..., )na a a a -Û = . Nhân a(x) với nhân tử x ta có: b(x) = a(x). x = x.( 1 0 n i i i a x - = å ) 1 0 2( , ,..., )n nb a a a- -Û = . Biểu diễn của véc tơ b là dịch vòng sang phải một cấp so với của véc-tơ a. * Phần tử đối xứng a(x) được gọi là phần tử đối xứng của ( )a x nếu: 1 0 0 ( ) ( ) ( ) - = + = = å n i i a x a x c x x với: ( ) , ( ) Î Î = =å åi ji j i I j J a x a x a x a x , 27 I È J = S = {0,1,2,,n-1} , I Ç J = Æ Định lý 2.1 (Với n lẻ): Trong vành luôn luôn tồn tại đa thức có bậc lớn nhất bằng m. Ký hiệu: m = max deg fi(x). Cấp lớn nhất của một đa thức trong vành được xác định: max ord a(x) = 2m – 1, với "a(x) Î Rn. Ví dụ: n = 9: x9 + 1 = (1+ x)(1 + x + x2)(1 + x3 + x6) ® m = 6 ® max ord a(x) = 26 – 1 = 63 Xét đa thức a(x) Î Rn ( Z2[x]/(xn+1) ). * Nhóm nhân xyclic đơn vị Nhóm nhân xyclic đơn vị là nhóm bao gồm mọi đơn thức có bậc <n (nhóm có n phần tử). Ký hiệu là : I = { x, x2 , x3 , , xn-1 , 1 } Nhóm nhân xyclic đơn vị I bao gồm n phần tử với phần tử sinh là x. Nhóm nhân này nhóm nhân cấp n. * Nhóm nhân xyclic với phần tử sinh a(x) Nhóm nhân xyclic với phần tử sinh a(x) bao gồm các phần tử là luỹ thừa của phần tử sinh và có thể viết: A = { a(x), (a(x))2 , (a(x))3 , } * Cấp số nhân xyclic trên vành đa thức Xét vành đa thức Z2[x]/ xn+1 với n lẻ, giả sử a(x) là số hạng đầu tiên của cấp số nhân xyclic và q(x) là công bội của cấp số nhân. Cấp số nhân xyclic trên vành đa thức là một tập con có dạng: A(a,q) = { a(x), a(x).q(x), a(x).q2(x), , a(x).qm-1(x)} Trong đó, m là số số hạng của cấp số nhân này, a(x).qm(x) º a(x) mod (xn+1). 28 2.1.3. Mã xyclic a) Định nghĩa Định nghĩa 2.2 Mã xyclic (n, k) là ideal I = của vành đa thức Z2[x]/xn+1. Mã xyclic là một bộ mã tuyến tính có tính chất sau: Nếu a(x) là một từ mã thì dịch vòng của a(x) cũng là một từ mã thuộc bộ mã này. Ví dụ: Xét các mã xyclic trên vành Z2[x]/x7+1, ta có 7 ideal tương ứng với 7 bộ mã xyclic: Ta có: x7+1 = (1+x)(1+x+x3)(1+x2+x3) Bảng 2.1: Các mã xyclic trên vành Z2[x]/x7+1 Đa thức sinh g(x) Mã (n,k) Khoảng cách Hamming d0 1 (7,7) 1 1 + x (7,6) 2 1 + x + x3 (7,4) 3 1 + x2 + x3 (7,4) 3 1 + x + x2 + x4 (7,3) 4 1 + x2 + x3 + x4 (7,3) 4 1 + x + x2 + x3 + x4 + x5 + x6 (7,1) 7 b) Ma trận sinh của mã xyclic Vì mã xyclic (n, k) là một mã tuyến tính nên ta có thể mô tả nó thông qua ma trận sinh G chứa k véc-tơ hàng độc lập tuyến tính. Ta có thể thiết lập G như sau: 29 1 ( ) . ( ) ... . ( )k g x x g x G x g x- æ ö ç ÷ ç ÷= ç ÷ ç ÷ è ø Ví dụ: Mã xyclic (7,4) có đa thức sinh g(x) = 1 + x + x3, ma trận sinh của mã này có thể mô tả như sau: 3 2 4 2 3 5 3 4 6 1 1 0 1 0 0 01 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 x x x x x G x x x x x x æ ö+ + æ ö ç ÷ ç ÷+ +ç ÷ ç ÷= = ç ÷ ç ÷+ + ç ÷ ç ÷ç ÷+ + è øè ø c) Ma trận kiểm tra của mã xyclic Vì g(x) là ước của xn + 1 nên ta có thể viết g(x).h(x) = xn + 1. Đa thức h(x) được gọi là đa thức kiểm tra. Vì g(x).h(x) º 0 mod xn + 1 nên g(x) và h(x) được gọi là các đa thức trực giao. Ta có h(x) = 0 k j j j h x = å , với h0 = hk = 1, hj Î {0,1}, với j = 2,..,k-1. Ma trận kiểm tra của mã xyclic sinh bởi g(x) là: * * 1 * ( ) . ( ) ... . ( )r h x x h x H x h x- æ ö ç ÷ ç ÷= ç ÷ ç ÷ç ÷ è ø Trong đó, r = n – k, và h*(x) là đa thức đối ngẫu của h(x): h*(x) = xdeg h(x).h(x-1). Ví dụ: Ma trận mã kiểm tra cho mã xyclic (7,4) với đa thức sinh g(x) = 1+x+x3 là: Ta có: h(x) = (x7+1)/(1+x+x3) = (1+x)(1+x2+x3) = x4+x2+x+1 h*(x) = 1+x2+x3+x4 Ma trận kiểm tra: 30 2 3 4 3 4 5 2 4 5 6 1 1 0 1 1 1 0 0 0 1 0 1 1 1 0 0 0 1 0 1 1 1 x x x H x x x x x x x x æ ö+ + + æ ö ç ÷ ç ÷= + + + =ç ÷ ç ÷ ç ÷ç ÷+ + + è øè ø 2.1.4. Mã hoá cho mã xyclic a) Mô tả từ mã Mã xyclic (n,k) được gọi là mã xyclic hệ thống nếu ta có thể chỉ rõ vị trí của các dấu thông tin và các dấu kiểm tra trong từ mã. Thông thường thì các dấu thông tin được sắp xếp ở k vị trí bậc cao, còn lại là dấu kiểm tra. fn-1 fn-2 ... fr fr-1 fr-2 ... f0 k dấu thông tin r dấu kiểm tra Ta có ( ) 1 0 . ( ) ( ) n i n k i i f x f x x a x r x - - = = = +å b) Thuật toán mã hoá hệ thống Thuật toán xây dựng từ mã xyclic như sau: Đầu vào: Tin rời rạc ai Î A. Đầu ra: Từ mã fi(x) tương ứng với ai. Bước 1: Mô tả ai trong tập tin cần mã hoá (gồm 2k tin) bằng một đa thức ai(x) với deg ai(x) không vượt quá k – 1. Bước 2: Nâng bậc của ai(x) bằng cách nhân nó với xn-k. Bước 3: Chia ai(x).xn-k cho đa thức sinh g(x) để tìm phần dư ri(x). Bước 4: Xây dựng từ mã xyclic: fi(x) = ai(x).xn-k + ri(x). c) Thiết bị mã hoá 31 Thiết bị mã hoá có cốt lõi là thiết bị chia cho g(x) để lấy dư, thực chất là otomat nhớ dạng của g(x). Giả sử g(x) = 1 0 r i i i g x - = å . Thiết bị mã hoá cho mã (n,k) với đa thức sinh g(x) như hình sau: Hình 2.1 : Thiết bị mã hoá cho mã xyclic (n,k) có đa thức sinh g(x) Thiết bị này hoạt động như sau: - k nhịp đầu (chia và tính phần dư): Mạch và V1 mở, V2 đóng, thiết bị hoạt động như một bộ chia để tính dư. Kết thúc nhịp thứ k, toàn bộ phần dư nằm trong r ô nhớ từ 1 đến r. Trong quá trình này, các dấu thông tin ai(x).xn-k được đưa qua mạch hoặc H. - r nhịp sau (đưa ra các dấu kiểm tra (phần dư) ra đầu ra). Mạch và V1 đóng, thiết bị hoạt động như một thanh ghi dịch nối tiếp. Mạch và V2 mở, các dấu kiểm tra được lần lượt đưa ra từ bậc cao tới bậc thấp. Kết thúc nhịp thứ n, toàn bộ từ mã được đưa ra đầu ra. 2.1.5. Giải mã ngưỡng a) Hai thủ tục giải mã Mọi phương pháp giải mã đều có thể tiến hành theo một trong 2 thủ tục giải mã sau: - Thủ tục 1: Dẫn ra bản tin từ dãy dấu nhận được. 1 2 r + + + g1 g2 gr-1 V1 1,2,..,k V2 k+1,..,n ai(x).xn-k Vào Ra H 1,..,n + 32 - Thủ tục 2: Dẫn ra véc-tơ sai từ dãy dấu nhận được. b) Giải mã theo syndrom Giả sử v Î V là mã xyclic (n,k) có đa thức sinh g(x). Ma trận sinh của V(n,k) có dạng: 1 ( ) . ( ) ... . ( )k g x x g x G x g x- æ ö ç ÷ ç ÷= ç ÷ ç ÷ è ø Gọi h(x) = (xn + 1) / g(x), ta có deg g(x) = r, deg h(x) = k. Gọi h*(x) là đa thức đối ngẫu của h(X), h*(x) = xdeg h(x). h(x-1). Khi đó, ma trận kiểm tra của mã V(n,k) có dạng: * * 1 * ( ) . ( ) ... . ( )r h x x h x H x h x- æ ö ç ÷ ç ÷= ç ÷ ç ÷ç ÷ è ø Ta có G.HT = 0. Với v Î V bất kì, ta có v.HT = 0. Xét mô hình truyền tin sau: u = v + e Kênh Giải mã x x’ y = x + e y e + e’ Kênh Giải mã x x’ y = x + e y e Kênh v e u = (u0, u1, ..., un-1 ) 33 Ta có S(u) = u.HT = (v+r).HT = e.HT = S(e). S(e) là một véc-tơ r chiều đặc trưng cho véc-tơ sai e có n chiều. Ta gọi S(u) là syndrom của véc-tơ nhận được u. Quá trình giải mã dựa trên việc phân tích trạng thái của S(u) được gọi là giải mã theo syndrom. Tập r tổng kiểm tra trong S(u) tạo nên hệ tổng kiểm tra. Mỗi tổng kiểm tra trong hệ sẽ trong hệ sẽ chứa một thông tin nhất định về dấu cần giải mã ui, thông tin đó có thể nhiều, ít hoặc không có gì. Ngoài ra mỗi tổng kiểm tra này còn chứa thông tin về các dấu mã uj khác. Để giải mã cho ui hiển nhiên rằng ta cần xây dựng một hệ tổng kiểm tra chứa nhiều thông tin nhất về ui. Trên cơ sở đó ta đưa ra khái niệm hệ tổng kiểm tra trực giao sau: Định nghĩa: Hệ J tổng kiểm tra được gọi là trực giao với ui nếu: - Mỗi tổng kiểm tra trong hệ đều chứa ui. - Dấu mã uj (j¹i) chỉ nằm tối đa trong một tổng kiểm tra. Nhận xét: - Hệ tổng kiểm tra trực giao chứa nhiều thông tin về ui và chứa ít thông tin về các dấu mã khác. - Sai ở một dấu mã uj chỉ làm ảnh hưởng tới nhiều nhất là một tổng kiểm tra trong hệ. - Sai ở ui sẽ làm thay đổi tất cả các giá trị của các tổng kiểm tra trong hệ. - Ta có thể sửa được sai cho dấu ui dựa trên thông tin về giá trị của các tổng kiểm tra bằng phương pháp bỏ phiếu (giải mã ngưỡng theo đa số). Khi đó khoảng cách mã Hamming đạt được theo phương pháp này sẽ thỏa mãn điều kiện: d0 = J + 1. Hệ tổng kiểm tra được gọi là có khả năng trực giao nếu nó là hệ tổng kiểm tra trực giao với một tổ hợp tuyến tính nào đó các dấu mã. 34 Xét tổ hợp tuyến tính các dấu mã sau: 1 2 ... mi i i U U Ua = + + + , khi đó hệ tổng kiểm tra có khả năng trực giao sẽ gồm các tổng kiểm tra thỏa mãn điều kiện: - α nằm trong tất cả các tổng kiểm tra trong hệ. - Uj (j ≠ ik với Uik Î α ) chỉ nằm trong nhiều nhất là một tổng kiểm tra trong hệ. Nhận xét: - Dựa trên hệ tổng kiểm tra có khả năng trực giao ta có thể giải mã được cho giá trị của α bằng phương pháp ngưỡng. - Để giải mã cho một dấu mã Uik cụ thể ta phải sử dụng nhiều bước (nhiều cấp ngưỡng). 2.1.6. Khái niệm mã xyclic cục bộ Mã xyclic cục bộ là mã hệ thống tuyến tính (n,k), trong đó: - k dấu thông tin được chọn là k đơn thức có dạng xi (với i = 0,1,..,k-1) và là nhóm nhân xyclic cấp k của vành Z2[x]/xn + 1. - r = n – k dấu kiểm tra được chọn là một tập con không rỗng tuỳ ý nào đó các lớp kề của nhóm nhân này. 2.1.7. Mối quan hệ giữa mã xyclic và xyclic cục bộ Theo quan điểm xây dựng mã xyclic thông thường, mã xyclic là một Ideal của vành đa thức, trong đó mỗi từ mã là một phần tử của Ideal đó trên vành đa thức. Theo quan điểm xây dựng mã xyclic cục bộ, mỗi dấu mã là một phần tử của Ideal, toàn bộ từ mã là một bộ phận của vành gồm n phần tử xác định của Ideal. Như vậy, ta hoàn toàn có thể dùng lý thuyết xây dựng các đa thức sinh của mã xyclic để tạo các trưởng lớp kề cho các mã xyclic cục bộ. Với quan điểm đó, lớp kề được xây dựng theo cách sau đây sẽ tạo nên một mã xyclic: 35 Mã xyclic cục bộ được xây dựng từ trưởng lớp kề là một đa thức sinh g(x) thỏa mãn: - Đa thức sinh là ước của xn+1 - Bậc của đa thức sinh bằng r với r = n – k. - Sử dụng r dấu thông tin giả khi tạo lớp kề này, tức là cho trước: 0 1 2 1... 0-= = = = =nx x x x . Trên cơ sở phân tích như vậy thì mã xyclic là một lớp kề đặc biệt của mã xyclic cục bộ, hay mã xyclic là một dạng đặc biệt của mã xyclic cục bộ. 2.1.8. Mã xyclic cục bộ xây dựng trên các nhóm nhân xyclic Trên Z2[x]/(xn + 1), xét nhóm nhân xyclic sau: A = {ai(x)}, i = 1,2, Giả sử ord a(x) = l. Mỗi nhóm nhân xyclic sẽ tạo nên một mã xyclic (l,k,d) nào đó. Số các nhóm nhân xyclic tạo nên các mã (l, k, d) có cùng tham số là j(l), trong đó j(l) là hàm Euler, j(l) là số các số nguyên nguyên tố cùng nhau với l. Bằng cách dịch vòng các phần tử trong mỗi nhóm nhân, ta cũng có thể tạo ra các mã xyclic (l, k, d) có cùng tham số. Như vậy số các mã xyclic có cùng tham số có thể tạo ra là: N = l.j(l). 2.2. Phân hoạch vành đa thức theo nhóm nhân xyclic 2.2.1. Phân hoạch của vành theo các nhóm nhân xyclic Khi nghiên cứu các vành đa thức Z2[x]/ xn+1, chúng ta đã có những phát triển mới trong phân hoạch vành đa thức để làm cơ sở xây dựng các mã xyclic cục bộ và mã xyclic. Vành đa thức Z2[x]/ xn+1 có thể phân hoạch thành các lớp kề tương ứng với các nhóm nhân xyclic nào đó. Các nhóm nhân này được gọi là cá nhóm nhân sinh của phân hoạch hoặc là lớp kề sinh. Dựa vào các lớp kề này, chúng ta có thể tạo ra được các mã xyclic cục bộ và các mã xyclic khác nhau. Phân hoạch của vành là chia vành thành các tập con không giao nhau, với mỗi tập con là một cấp số nhân xyclic và hợp của các tập con bằng vành. Phân 36 hoạch vành thành tập hợp các cấp số nhân xyclic khác nhau. Tuỳ theo cách chọn a(x) mà có các phân hoạch khác nhau. Phân hoạch vành đa thức được gọi là không suy biến nếu phân hoạch này bao gồm tất cả các phần tử khác không của vành. Ngược lại, phân hoạch được gọi là suy biến. Ví dụ: xét vành R5; Z2[x]/ (x5+1) = (1+x)(1+x+x2+x3+x4). Trong ví dụ này, chúng ta sử dụng số mũ của các hạng tử xuất hiện trong đa thức làm kí hiệu, chẳng hạn q(x) = 1 + x + x2 được kí hiệu là (012). Chọn a(x) = x, I = {xi, i = 0,1,2,3,4}. Phân hoạch vành R5 thành các phần tử: Bảng 2.2: Phân hoạch vành Z2[x]/x5+1 theo nhóm nhân xyclic đơn vị 1 2 3 4 0 01 12 23 34 04 02 13 24 03 14 012 123 234 034 014 013 124 023 134 024 0123 1234 0234 0134 0124 01234 Trong vành này có 31 phần tử khác không và được phân hoạch thành 7 lớp kề: có 6 lớp kề có cấp 5 và 1 lớp kề cấp 1. Chọn phần tử khác làm phân hoạch: a(x) = 1 + x + x2 ~ (012). A = {(1 + x + x2)i, i = 0,..,14}. Lúc này có phân hoạch khác: Bảng 2.3: Phân hoạch vành với a(x) = 1 + x + x2 012 024 3 034 023 1 123 013 4 014 134 2 234 124 0 34 13 0124 12 14 0234 04 24 0123 23 02 0134 01 03 1234 01234 37 Đây là nhóm nhân xyclic cấp 15, có a(x) = 1+ x + x2. Để phân hoạch vành Rn, trước tiên xác định nhóm nhân xyclic A, số phần tử nhóm nhân nhiều nhất là max ord a(x) và các đa thức. Các bước thực hiện: - Chọn a(x) thuộc vành Rn. - Xây dựng nhóm nhân xyclic A = {ai(x)}. - Xây dựng các lớp kề của A. Về thực chất là xây dựng cấp số nhân xyclic có công bội a(x), có phần tử sinh b(x) Î Rn, b(x) không thuộc A và không thuộc bất cứ cấp số nhân nào chúng ta thiết lập. Nhận xét: Với cách lựa chọn nhóm nhân khác nhau có thể lựa chọn xây dựng các bộ mã khác nhau. Ví dụ với mã [15, 5] ta có số lượng các bộ mã có thể thiết lập được như sau: + Phân hoạch theo nhóm nhân xyclic đơn vị [15, 5], ta có N1 = 3!.53 = 750 bộ mã khác nhau cùng tham số. + Phân hoạch theo nhóm nhân xyclic cực đại (có cấp 15) ta có: N2 = 8.15 = 120 bộ mã khác nhau cùng tham số. + Phân hoạch theo nhóm nhân xyclic cấp 3, ta có: N3 = 5!.35 = 120.243 = 29160. Tổng số N1 + N2 + N3 = 30030 là số phân hoạch khác nhau của vành. 2.2.2. Phân hoạch vành đa thức theo nhóm nhân xyclic đơn vị Ta ký hiệu vành đa thức Z2[x]/xn+1 có nhóm nhân xyclic đơn vị được biểu diễn: I = {x0, x1,.., xn-1} với hạt nhân phân hoạch chính là x. Phân hoạch của vành đa thức theo nhóm nhân xyclic đơn vị được chỉ ra trên hình dưới: 38 Vấn đề cơ bản là phải xây dựng thuật toán xác định chính xác các lớp kề cần có và các phần tử trong các lớp kề. Với cấu trúc trên hình 2.2, vành đa thức bao gồm nhóm nhân xyclic đơn vị và các lớp kề được tạo từ nhóm nhân xyclic đơn vị I. Việc xây dựng phân hoạch vành là phải xác định các lớp kề của vành, được thực hiện như sau: Bước 1. Chọn A(x) không thuộc nhóm nhân I, là tổ hợp của các đơn thức trong nhóm nhân I, A(x) chính là trưởng lớp kề. Tiếp theo lần lượt xây dựng các phần tử trong lớp kề này bằng cách nhân với hạt nhân phân hoạch. Bước 2. Tiếp tục thực hiện bước 1 cho đến khi quét hết các lớp kề có thể có của vành đa thức. Phân hoạch này có số phần tử của vành là (2n-1) đa thức khác 0. Trong các nghiên cứu trước đây đều phân hoạch vành với k nhỏ, tuy nhiên để phân hoạch được vành với các k lớn cần phải xây dựng một thuật toán tổng quát để tính toán được hết các phần tử và các lớp kề của phân hoạch. I = {x0, x1,.., xn-1} Các lớp kề trên vành Hình 2.2. Cấu trúc vành Z2[x] / xn+1 39 2.2.3. Thuật toán xây dựng vành đa thức theo nhóm nhân xyclic đơn vị Bắt đầu Tính trưởng lớp kề Tính phần tử lớp kề Kiểm tra tồn tại Tính số đa thức trọng số i: Cik n = Cik Kết thúc i = k Đúng Sai Đúng Sai Đúng Sai Hiển thị kết quả n = n+1 Hình 2.3. Sơ đồ thuật toán tính phân hoạch vành theo nhóm nhân xyclic đơn vị Nhập K, i = 0 i = i + 1 Lưu lớp kề ra tệp 40 Dựa vào thuật toán trên, ta có thể xây dựng chương trình phần mềm để thực hiện phân hoạch vành đa thức. Hình 2.4. Chương trình tính phân hoạch vành theo nhóm nhân xyclic đơn vị Đây là hình ảnh mô tả phần mềm thực hiện và đánh giá khả năng thực hiện chương trình trên máy tính tốc độ cao. Bảng 2.4: So sánh phân hoạch vành đa thức trên máy tính core 2 duo 2.26GHz Stt Số dấu thông tin Thời gian tính toán Kích thước dữ liệu 1 k = 5 < 1s 108 byte 2 k = 7 < 1s 1008 byte 3 k = 8 < 1s 2.25 Kbyte 4 k = 9 < 1s 5 Kbyte 5 k = 12 < 1s 56 Kbyte 6 k = 16 ~ 7 s 1.281 Kbyte 7 k = 17 ~ 23 s 2.752 Kbyte 41 Với kết quả nghiên cứu ở trên mới chỉ ra khả năng phân hoạch của vành theo nhóm nhân xyclic đơn vị. Tuy nhiên, để phát triển các lý thuyết về mã xyclic cục bộ, chúng ta cần tìm các khả năng phân hoạch khác đem lại sự đa dạng cho lý thuyết mã xyclic cục bộ. 2.3. Kết luận Trong chương này, chúng ta nghiên cứu xây dựng một thuật toán hoàn chỉnh và viết chương trình máy tính để phân hoạch vành đa thức theo nhóm nhân xyclic đơn vị, điều đó hỗ trợ rất nhiều cho nghiên cứu, phát triển mã xyclic cục bộ. Phân hoạch vành với k lớn cho phép lựa chọn được lớp kề để lựa chọn, xây dựng các bộ mã xyclic cục bộ, nhờ đớ ta có nhiều phương án lựa chọn mã xyclic cục bộ để ứng dụng vào hệ mật McEliece. Chính vì vậy, việc ứng dụng mã xyclic cục bộ để xây dựng hệ mật McEliece là có tính khả thi. Các kết quả của chương này làm tiền đề cho việc xây dựng sơ đồ khối và các sơ đồ thuật toán của hệ mật McEliece trên mã xyclic cục bộ ở chương sau. 42 Chương 3 - XÂY DỰNG HỆ MẬT McELIECE TRÊN Mà XCB Hiện nay trên thế giới các hệ mật 40 bit được cung cấp miễn phí, hệ mật 128 bit được coi là hệ mật tốt. Chúng ta lựa chọn hệ mật 49 bit nằm trong khoảng cho phép. Để ứng dụng mã xyclic cục bộ vào hệ mật McEliece, tránh các nhược điểm của hệ mật McEliece sử dụng mã Goppa, chúng ta lựa chọn mã xyclic cục bộ với phân hoạch k = 8 kết hợp với mã ghép Elias để đảm bảo tốc độ mã hoá và giải mã. Theo các kết quả nghiên cứu đã đưa ra trong chương 2, chọn phân hoạch có các lớp kề có cùng trọng số và có trọng số lẻ (trọng số bằng 3) để xây dựng các thuật toán mã hoá và giải mã. 3.1. Tiêu chí lựa chọn bộ mã xyclic cục bộ và mô hình toán học để xây dựng hệ mật McEliece 3.1.1. Tiêu chí lựa chọn bộ mã XCB để xây dựng hệ mật McEliece + Mã xyclic cục bộ được lựa chọn phải tồn tại một thuật toán hiệu quả để sửa được t lỗi. + Cấu trúc mã xyclic cục bộ cho phép sửa được t lỗi khi kết hợp với ma trận S và P thì không tìm ra được cấu trúc của mã xyclic cục bộ đó. + Mã xyclic cục bộ (n,k) được xây dựng từ các lớp kề có cùng trọng số, và có trọng số lẻ làm dấu kiểm tra, là mã xyclic cục bộ có khả năng trực giao. + Số lượng khóa tồn tại trong lớp mã phải đủ lớn. 3.1.2. Mô hình toán học xây dựng hệ mật McEliece với mã xyclic cục bộ 3.1.2.1 Tạo khoá Mỗi đối tượng trong hệ thống trao đổi thông tin cần tạo ra một khoá công khai và một khoá bí mật, khoá công khai là 'iG , khoá bí mật là Si, Gi, Pi. Các bên tham gia hệ mật McEliece chia sẻ chung các tham số: n, k, t. Khóa bí mật: 43 + G là ma trận sinh của một mã XCB có khả năng sửa sai t lỗi theo phương pháp giải mã ngưỡng, có số lượng phân phối khóa đủ lớn. + S là ma trận khả nghịch [k x k] trên Z2. + P là ma trận hoán vị [n x n] trên Z2. Khóa công khai: (G’,t) G’ = S.G.P 3.1.2.2 Mã hoá và giải mã Mã hóa x là bản rõ cần mã hoá có độ dài k bit. y là bản mã hoá: y = ek(x,e) = x.G’ + e e Î (Z2)n : véc-tơ ngẫu nhiên độ dài n và có trọng số t được lựa chọn từ bản tin. Véc-tơ e chứa chính xác t bít 1. Giải mã Cần giải mã bản mã y Î (Z 2 )n - Tính y1 = y.P-1 - Sử dụng phương pháp giải mã y1 để có được y1 = x1 + e1 - Tính x0 Î (Z2) k sao cho x 0 .G = x 1 - Tính x = x0.S -1 3.2. Sơ đồ khối xây dựng hệ mật McEliece với mã xyclic cục bộ 3.2.1. Sơ đồ mã hoá Trong lược đồ mã hoá này, ta sử dụng mã XCB (64,7) để xây dựng ma trận sinh G. Ma trận S là ma trận khả nghịch [7x7], ma trận đơn vị P là ma trận hoán vị cấp [64x64]. Khoá công khai G' = S.G.P là ma trận [7x64]. 44 Bản rõ m được tách ra thành từng đoạn dữ liệu 49 bit và lấy một đoạn dữ liệu có chứa 31 bit 1 và có độ dài tối đa 512 bit làm véc-tơ sai e. Các đoạn dữ liệu 49 bit được sắp xếp thành ma trận [7x7], và được mã hoá bằng khoá công khai G' tạo ra ma trận [8x64] với hàng thứ 8 bằng tổng các cột từ 1 đến 7. Từ ma trận này được chuyển thành ma trận [1 x 512]. Véc-tơ sai e được cộng modulo 2 với ma trận [1x512] tạo thành dữ liệu mã hóa: M1 = m.G’ + e. Các phần dữ liệu tiếp theo tiếp tục được mã hoá theo chu trình trên cho đến khi kết thúc. 45 Ma trận [7x7] Ma trận sinh G’ [7 x 64] Ma trận [8x64] 7 1 ( ,8) ( , ) j i i j = = å Ma trận [1x512] Bản rõ Bản mã Hình 3.1. Sơ đồ khối mã hoá của hệ mật McEliece với mã XCB Véc tơ sai [1xn] có chứa 31 bít 1 và n≤ 512 Å 46 3.2.2. Sơ đồ giải mã Dữ liệu được lấy lần lượt 512 bít một lần để tạo thành ma trận [8x64]. Sau đó ma trận này được nhân với ma trận P-1 [64x64] thành ma trận M2: M2 = M1.P-1 Qua thuật giải mã xyclic cục bộ dựa trên phương pháp giải mã ngưỡng theo đa số, ta thu được dữ liệu 49 bít mã hoá là ma trận M3. Sau khi nhân M3 với ma trận S-1 [7x7] ta thu được m: m = M3.S-1 ta sẽ thu được 49 bít dữ liệu của bản rõ. Để giải mã vectơ sai e có chứa 31 bít 1 được cộng thêm, ta lại tiếp tục thực hiện mã hoá lại 49 bít đó theo phần 3.2.1 ta sẽ thu được 512 bít mã hoá. Sử dụng 512 bít này cộng modulo 2 với 512 bít đã mã hoá ban đầu ta thu được vectơ e có chứa 31 bít 1 của bản rõ đã cộng thêm trong quá trình mã hoá. Sơ đồ giải mã được trình bày trên hình 3.2. Phương án được lựa chọn với mục đích nâng cao hiệu quả truyền tin của hệ mật mã hoá khoá công khai McEliece với mã xyclic cục bộ. 47 Ma trận P-1 [64x64] Ma trận [8x64] Ma trận [7x7] Ma trận [1x512] Ma trận [8x64] Ma trận tổng kiểm tra Ma trận S-1 [7x7] Thực hiện mã hóa theo sơ đồ hình 3.1 Ma trận [1x n] có chứa tối đa 31 bít 1 và n≤ 512 Bản rõ Bản mã Hình 3.2. Sơ đồ khối giải mã của hệ mật McEliece với mã XCB + Giải mã 2 cấp ngưỡng 48 3.3. Về một phương pháp xây dựng hệ mật McEliece trên mã XCB 3.3.1. Phương pháp tạo khoá mã Hệ mật McEliece trên mã xyclic cục bộ sử dụng ma trận sinh G dựa trên phân hoạch vành theo

Các file đính kèm theo tài liệu này:

  • pdfluanvanthacsi_chuaphanloai_206_1711_1870057.pdf
Tài liệu liên quan