7. Ý NGHĨA KHOA HỌC VÀ THỰC TIÊN CỦA ĐỀ TÀI
1.5.1. Các phương pháp kiểm tra tính toàn vẹn dữ liệu
Toàn vẹn dữ liệu chú trọng chủ yếu ở các khối dữ liệu nhị phân. Các thao tác cho khối dữ liệu không còn toàn vẹn nữa bao gồm: chèn thêm một số bit, xoát bớt một số bit, thay đổi trật tự một số bit, thay thế một số bit và tất cả các thao tác kết hợp khác.
Có ba phương pháp cung cấp tính toàn vẹn của dữ liệu bằng cách dùng các hàm băm.
Hình 1.14.Kiểm tra tính toàn vẹn bằng MAC
b) Dùng MDC và mã hoá
Hình 1.15.Kiểm tra tình toàn vẹn dùng MDC và thuật toán mã hóa
Hình 1.16.Kiểm tra tính toàn vẹn dùng MDC và kênh an toàn 1.5.2. Chữ ký số
Định nghĩa 1.10 [4], [34]:
Xác thực tính nguyên bản của dữ liệu là một kiểu xác thực đảm bảo một bên liên lạc được chứng thực là nguồn thực sự tạo ra dữ liệu đó ở một thời điểm nào đó trong quá khứ.
Xác thực thông báo là một thuật ngữ được dùng tương đương với xác thực nguyên gốc của dữ liệu.
Một dạng cụ thể của xác thực nguồn gốc dữ liệu được sử dụng khá phổ biển là chữ ký điện tử. Chữ ký điện tử hay chữ ký số (electronic signature, digital signature) là thông tin đi kèm theo dữ liệu nhằm mục đích xác định nguồn gốc của dữ liệu đó. Nguồn gốc dữ liệu ở đây chính là chủ của dữ liệu đó, và chữ ký số chính là khóa bí mật riêng mã chỉ người sở hữu dữ liệu mới có.
Chữ ký số cũng đảm bảo các chức năng như xác định được người chủ của một dữ liệu (xác thực chủ thể nội dung) và xác định dữ liệu có bị thay đổi không (xác thực nội dung). Trước khi gửi dữ liệu đến các bên, người chủ dữ liệu sẽ tiến hành ký vào dữ liệu đó. Quá trình ký bao gồm tính toán mã băm của dữ liệu và mã hóa giá trị băm bằng khóa bí mật của người ký. Khi cần kiểm tra, bên nhận tiến hành giải mã (với khóa công khai của bên gửi) để lấy lại mã băm và kiểm tra với mã băm tính toán độc lập từ văn bản nhận được. Nếu hai giá trị này khớp nhau thì bên nhận có thể tin rằng văn bản xuất phát từ người sở hữu khóa bí mật. Cả hai bên tham gia vào quá trình thông tin đều có thể tin tường là văn bản không bị sửa đổi trong khi truyền vì nếu văn bản bị thay đổi thì mã băm sẽ thay đổi và lập tức bị phát hiện.
Các bước tạo chữ ký và kiểm tra chữ ký được mô tả trên hình sau:
Hình 1.17.Quá trình tạo chữ ký số và kiểm tra chữ ký số
Ví dụ 1.6: Sơ đồ chữ ký số sử dụng RSA như hình 1.18.
Quá trình ký:
Băm thông báo M để có mã băm: HMDC H M( )
Mã hóa mã băm HMDC bằng hệ mật RSA với khóa bí mật của A (dA): ( )dA mod
A A
DS H M n được chữ ký số của DSA.
Ghép chữ ký số DSA với thông báo: M DS|| A và truyền đi. Quá trình kiểm tra:
Tách thông báo M và chữ ký số DSA.
Giải mã RSA chữ ký số bằng khóa công khai của A (eA) để thu được mã băm của bên phát.
Tiến hành băm M để tạo mã băm độc lập: HMDC và so sánh với mã băm bên phát.
Nhận xét: Sơ đồ này không bảo mật thông báo M.
Để bảo mật thông báo người ta sử dụng sơ đồ chữ ký số dạng như hình 1.19.
1.6.KẾT LUẬN CHƯƠNG 1
Trong chương 1, luận văn tập trung tìm hiểu các vấn đề chung nhất về mật mã khóa bí mật (hay còn gọi là mật mã cổ điển); mật mã khóa công khai (hay mật mã hiện đại) và hàm băm, từ đó phân tích các ưu và nhược điểm của từng hệ mật.
Các nghiên cứu về cấu trúc nhóm nhân và cấp số nhân cyclic trên vành đa thức cho các kết quả khá lý thú trong việc xây dựng các mã sửa sai và mật mã. Để tăng chiều dài cho mật mã khối có thể sử dụng cấu trúc các cấp số nhân cyclic trong các hàm mật mã, nội dung này sẽ được trình bày trong chương 2.
CHƯƠNG 2. HỆ MẬT XÂY DỰNG TRÊN CÁC CẤP SỐ NHÂN CYCLIC
2.1.NHÓM NHÂN CYCLIC TRÊN VÀNH ĐA THỨC
2.1.1. Định nghĩa nhóm nhân cyclic trên vành đa thức
Định nghĩa 2.1 [6], [10]:
Nhóm nhân cyclic (CMG-Cyclic Multiplicate Group) trong vành đa thức là tập hợp các phần tử đều bằng lũy thừa của một phần tử gọi là phần tử sinh. Trong vành đa thức có nhiều nhóm nhân cyclic, số nhóm nhân bằng số các lũy đẳng có thể có trong vành. 2 3 { , , ..., m} A (2.1) Trong đó: A là nhóm nhân cyclic
là phần tử sinh (đa thức sinh), .
m là cấp của nhóm nhân, cũng chính là cấp của phần tử sinh . Cấp của nhóm là tổng số các phần tử của nhóm.
Phần tử đơn vị của nhóm chính là một lũy đẳng ( )e x có cấp bằng 1.
Định nghĩa 2.2 [6], [10]:
Trong vành đa thức Z2[ ]/x xn1, nếu tồn tại một đa thức mà bình phương của nó lại bằng chính nó thì được gọi là đa thức lũy đẳng và ký hiệu là ( )e x .
2 2
( ) ( ) ( )
e x e x e x (2.2)
Các lũy đẳng ( )e x được xác định trên cơ sở phân tích chu trình Cs. Trong mỗi vành đa thức Z2[ ]/x xn1 đều tồn tại một lũy đẳng
1 0 0 ( ) n i i e x x ,
Trong một vành bất kỳ, với n lẻ luôn tồn tại một lớp kề chỉ chứa một lũy đẳng “nuốt” e x0( ).
* Tính chất của lũy đẳng “nuốt”
- Nếu đa thức a x( )Z2[ ]/x xn1 và trọng số của ( )a x (ký hiệu là W a x( ( ))) là số lẻ thì a x e x( ). ( )0 e x0( ).
- Nếu đa thức b x( )Z2[ ]/x xn1 và W b x( ( ))là số chẵn thì b x e x( ). ( )0 0. * Các chu trình Cs
Các chu trình Cstheo modulo n trên trường GF(2) được xác định như sau:
2 1
, .2, .2 ,..., .2ms
s
C s s s s trong đó .2ms 1 mod
s s n
Khi đó tập các số nguyên theo modulo n được phân hoạch thành các chu trình. Ta có: {0,1, 2,3,..., } s
s
n C
* Ý nghĩa của các chu trình:
Số các chu trình cho ta biết số các đa thức bất khả quy trong vành Z2[ ]/x xn1
Lực lượng của các chu trình cho ta biết bậc của đa thức bất khả quy tương ứng trong phân tích của nhị thức xn1.
Các số trong một chu trình cho biết số mũ tương ứng của đa thức lũy đẳng ( )e x Định lý 2.1: Cấp của một đa thức ( )a x , (ký hiệu ord a x( ( ))), là số nguyên dương m nhỏ nhất thỏa mãn [6], [7], [10]:
( ) ( ) mod( 1)
m n
a x e x x (2.3)
Trong đó ( )e x là một lũy đẳng nào đó.
Như vậy ( )a x sẽ tạo nên một nhóm cyclic cấp m của vành.
Định lý 2.2: Nếu ( )a x là phần tử của nhóm nhân nào đó thì cấp cực đại của ( )
- Nếu n lẻ và xn1 1 f xi( ); trong đó ( )f xi là các đa thức bất khả quy. Khi đó max ord( ( )) 2a x m 1, với mmax deg ( )f xi .
- Nếu n chẵn n2 (2s k1) và x2k1 1 f xi( ).
Khi đó max ord( ( )) 2 (2a x s m 1), với mmax deg ( )f xi .
Bổ đề 2.1: Trong vành Z2[ ] /x xn1với n2k (k nguyên dương), tập các đa thức có trọng số lẻ sẽ tạo nên một nhóm nhân G các đa thức theo modulo xn1
[7], [8], [9].
Bổ đề 2.2: Mọi phần tử trong nhóm nhân G có cấp là 2k hoặc có cấp là ước của 2k [7], [8], [9] [11], [12].
Bổ đề 2.3: Số các thặng dư bậc hai trong nhóm nhân G của vành được xác định như sau [7], [8], [9]: 1 2 1 2 k Q (2.4) * Các phần tử cấp n và các nhóm nhân cyclic cấp n. Xét a x( )G. a x( )a xi i. Ta có bổ đề sau:
Bổ đề 2.4: Đa thức a x( ) là phần tử cấp n khi nó có chứa một số lẻ các đơn thức có mũ lẻ có cấp n và một số chẵn các đơn thức có mũ chẵn có cấp là ước của
n. Số các đa thức cấp n bằng 2
2n [1]. Ví dụ 2.1: Với n = 8, có tất cả 6
2 64 các phần tử cấp n. Ta có thể sử dụng các phần tử này để xây dựng các nhóm nhân cyclic cấp n.
2 3 1 0
{ ( ), ( ), ( ), n ( ), n( ) ( ) 1}
i i i i i i i
A a x a x a x a x a x a x Có tất cả 2
2n các nhóm nhân cyclic cấp n và nhóm nhân I cũng thuộc vào lớp các nhóm nhân này. Ta gọi I là nhóm nhân cyclic đơn vị.
2.1.2. Các loại nhóm nhân cyclic trên vành đa thức
2.1.2.1. Nhóm nhân cyclic đơn vị
Định nghĩa 2.3: Nhóm nhân cyclic đơn vị là một nhóm nhân bao gồm mọi đơn thức có trong vành và nó có cấp là n. Ký hiệu là 2 1
{ , ,..., n ,1}
Hay nói cách khác nhóm nhân cyclic đơn vị là nhóm nhân cyclic có phần tử sinh là x.
2 3 1
{ , ( ) , ( ) ..., ( )n ,1}
I x x x x
2.1.2.2. Nhóm nhân cyclic với phần tử sinh a x( )
Định nghĩa 2.4: Nhóm nhân cyclic với phần tử sinh là đa thức ( )a x bao gồm các phần tử là lũy thừa của phần tử sinh và có thể viết dưới dạng sau [6], [10]:
2 3
( ( ), ( ), ( ),..., m( )}
A a x a x a x a x (2.5)
Trong đó: m là cấp của ( )a x .
2.1.2.3. Đa thức đối xứng và các nhóm nhân cyclic đối xứng
Định nghĩa 2.5: (Đa thức đối xứng) [6], [10]
Đa thức ( )a x được gọi là đa thức đối xứng với đa thức ( )a x nếu:
( ) i i i I a x a x thì ( ) j j j J a x a x a x( ) Với: I J= ; I J S 0,1,...,n1. Bổ đề 2.5: Nếu ( )a x là một phần tử cấp k thì cấp của ( )a x cũng bằng k . Tức là, nếu A là một nhóm nhân cyclic cấp k có phần tử sinh là ( )a x thì A cũng là nhóm nhân cyclic cấp k với phần tử sinh là ( )a x [6], [10]. Khi đó ta có:
2 3 1 { ( ), ( ), ( ),..., k ( )} A a x a x a x a x 2 3 1 { ( ), ( ( )) , ( ( )) ,..., ( ( ))k } A a x a x a x a x (2.7)
Như vậy, với mỗi phần tử ( )a x của nhóm nhân cyclic A ta có tương ứng một
phần tử ( )a x của nhóm nhân cyclic A. Từ nhóm nhân cyclic A ta dễ dàng thiết lập được nhóm nhân cyclic A. Hai nhóm nhân A và A được gọi là hai nhóm nhân cyclic đối xứng trong vành đa thức.
Từ việc khảo sát các nhóm nhân đối xứng trong vành đa thức ta thấy chỉ cần khảo sát các nhóm nhân trong một nửa vành là ta có thể suy ra kết quả khảo sát
cho toàn bộ vành. Khi coi mỗi nhóm nhân là một mã tương ứng mà ta có thể xây dựng được trên nó, ta sẽ khảo sát được các mã trên vành.
2.2.CẤP SỐ NHÂN CYCLIC TRÊN VÀNH ĐA THỨC
2.2.1. Khái niệm về cấp số nhân cyclic trên vành đa thức
Xét vành đa thức Z2[ ]/x xn1 với n lẻ.
Định nghĩa 2.6:
Cấp số nhân cyclic (CGP - Cyclic Geometic Progressions) trên vành đa thức là một tập hợp con có dạng sau [6], [10]:
2 1
( , )a q { ( ), ( ) ( ), ( ) ( ),..., ( ) m ( )}
A a x a x q x a x q x a x q x (2.8) Trong đó: m là số các số hạng của cấp số nhân.
a x( )là số hạng đầu của cấp số nhân. ( )
q x là công bội.
a x q( ) m( )x a x( ) modxn 1
Giá trị của m chính là cấp của nhóm nhân sinh với phần tử sinh ( )q x và lũy đẳng qm( )x . Cấp lớn nhất của phần tử ( )q x được xác định bởi định lý 2.2.
Trong trường hợp ta chọn số hạng đầu ( ) 1a x , công bội là ( )q x thì
2 1 (1, )q {1, ( ), ( ),..., m ( )} A q x q x q x 0 ( ) ( ) 1 q x q x Là một cấp số nhân cyclic cấp m.
Như vậy, trong vành đa thức Z x2[ ] / xn1, nếu ta chọn số hạng đầu ( )a x và hạt nhân phân hoạch ( )q x khác nhau thì ta sẽ tạo ra nhiều kiểu phân hoạch khác nhau của vành, do đó ta có các cấp số nhân cyclic để xây dựng được các mã cyclic có cấu trúc khác nhau.
Nếu ta nhân các phần tử của một nhóm nhân cyclic cấp nvới một phần tử bất kỳ trong nhóm nhóm nhân G của vành đa thức ta sẽ thu được một cấp số nhân có công bội là phần tử sinh của nhóm nhân và có số hạng ban đầu là đa thức đem nhân.
Bổ đề 2.6: Số các cấp số nhân cyclic cấp n xây dựng được trong G trên vành 2
1
k
x (k nguyên dương) được xác định như sau [7], [8], [9]: 2 2 2 2 2 k .2 k N (2.9) Ví dụ 2.2: n Số cấp số nhân N n Số cấp số nhân N 8 n 8 1 8 2 13 2 .2 2 8.192 N n64 64 1 64 2 125 2 .2 2 N 16 n 16 1 16 2 29 2 .2 2 65.011.712 N n32 32 1 32 2 61 2 .2 2 N
2.2.2. Phân hoạch vành đa thức
Quá trình phân hoạch vành đa thức thực chất là quá trình phân chia các phần tử trong vành đa thức thành các tập (hay các lớp kề) không trùng nhau. Các phần tử sinh của nhóm nhân sinh được gọi là các hạt nhân của phân hoạch. Trong mỗi phân hoạch vành đa thức, các lớp kề của nó là các cấp số nhân cyclic với cùng một công bội.
2.2.2.1. Các bước phân hoạch vành đa thức
Để phân hoạch một vành đa thức ta thực hiện theo các bước sau đây [6], [7]:
Bước 1: + Chọn một phần tử sinh a x( )zZ x2[ ] /xn1.
+ Xây dựng nhóm nhân cyclic: A{ ( ),a x ii 1, 2,..., }m , trong đó: mord ( )a x .
+ S A;
Bước 2: + Chọn b x( ) { ¢2[ ]/x xn1\ }S . + Xây dựng cấp số nhân cyclic:
Bb x A( ). { ( ). ( ),b x a x ii 1, 2,..., }m
Bước 3: Lặp lại bước 2 cho đến khi S Z x x2[ ]/ n1
Thông số m là cấp của ( )a x được xác định theo định lý 2.1. Giá trị m chỉ có thể bằng max ord ( )a x hoặc ước số của max ord ( )a x .
Do vành đa thức có cấu trúc đối xứng, một nửa vành gồm các phần tử có trọng số lẻ, một nửa vành gồm các phần tử có trọng số chẵn. Vì vậy khi phân hoạch ta chỉ cần tìm các phần tử có trọng số lẻ của vành rồi có thể dễ dàng suy ra các phần tử chẵn.
Để xây dựng được tất cả các nhóm nhân của vành ta thực hiện các bước sau:
Xác định tất cả các đa thức lũy đẳng trong vành, trên cơ sở phân tích các chu trình.
Chọn các đa thức lũy đẳng có trọng số lẻ để xây dựng các nhóm nhân chứa chúng.
Xây dựng tất cả các nhóm nhân cyclic có thể có của vành. Tùy theo từng lũy đẳng mà mỗi lũy đẳng có thể tham gia trong nhiều nhóm nhân.
Lấy đối xứng tất cả các nhóm nhân có chứa các phần tử có trọng số lẻ sẽ tạo được tất cả các nhóm nhân có chứa các phần tử có trọng số chẵn.
2.2.2.2. Phân hoạch vành đa thức suy biến và không suy biến
Có nhiều dạng phân hoạch vành đa thức khác nhau, song dạng phân hoạch chung nhất là phân hoạch suy biến và phân hoạch không suy biến.
Định nghĩa 2.7:
Phân hoạch vành đa thức được gọi là không suy biến nếu phân hoạch bao gồm tất cả các phần tử khác 0 trong vành đa thức. Ngược lại, phân hoạch là phân hoạch suy biến [6].
Bổ đề 2.7: Trong một phân hoạch không suy biến tùy ý, số lớp kề trong phân hoạch xác định theo biểu thức sau [6]:
( ( ), ) 2 2 1 ( ( )) n a x n N ord a x (2.10)
Định lý 2.3: Điều kiện cần và đủ để phân hoạch vành không suy biến là nhóm nhân sinh của phân hoạch có lũy đẳng bằng 1 [6].
Bổ đề 2.8: Số kiểu phân hoạch không suy biến khác nhau bằng số các bậc khác nhau của các phần tử trong vành (trừ các phần tử lũy đẳng có bậc là 1), ký hiệu là M [6].
Số kiểu phân hoạch không suy biến khác nhau chính là số ước khác nhau của giá trị cấp lớn nhất của phần tử a(x) (max ord a(x)). Giá trị max ord a(x) .
Kết quả tính số kiểu phân hoạch không suy biến M của một số vành được thống kê trong bảng 2.1.
Bảng 2.1.Số kiểu phân hoạch không suy biến M của một số vành
n max ord ( )a x Phân tích của max ord ( )a x M 5 7 9 11 13 15 15 7 63 1023 4095 15 3.5 7 3.3.7 3.11.31 3.3.5.7.13 3.5 3 1 5 7 16 3
Bổ đề 2.9: Số kiểu phân hoạch suy biến (ký hiệu là I) bằng số Ideal trong