MAC dựa trên các mật mã khối. Thuật toán
Vào: Dữ liệu x, mật mã khối E, khố MAC bí mật k của E. Ra : n bit MAC trên x (n là độ dài khối của E)
−Độn và chia khối: Độn thêm các bit vào x nếu cần. Chia dữ liệu đã độn thành từng khối n bit : x1 x2 x t.
− Xử lý theo chế độ CBC.
Ký hiệu E là phép mã hoá E với khố k.k Tính khối H như sau: t
( ) (H x ) 2 i t K H x E H i 1 i k i 1 k 1 ≤ ≤ ⊕ ← ← −
− Xử lý thêm để tăng sức mạnh của MAC
Dùng một khố bí mật thứ hai k'≠k. Tính ( ) ( )' t k t t 1 ' k ' t E H , H E H H ← − =
− Kết thúc: MAC là khối n bit Ht
2.3.3. Ứng dụng của hàm băm
2.3.3.1. Tính tồn vẹn của dữ liệu và xác thực thông báo
Tính tồn vẹn của dữ liệu là tính chất đảm bảo dữ liệu khơng bị sửa đổi một cách bất hợp pháp kể từ khi dữ liệu được tạo ra, được phát hoặc được lưu giữ bởi một nguồn xác định.
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 q 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 dữ liệu.
Có ba phương pháp cung cấp tính tồn vẹn của dữ liệu đó bằng cách dùng các hàm băm (Hình 1.6).
- Chỉ dùng MAC
- Dùng MDC và mã hóa
- Sử dụng MDC và kênh tin cậy
Hình 1.8. Các phương pháp đảm bảo xác thực tính nguyên vẹn của dữ liệu.
- Dùng MAC.
- Dùng các sơ đồ chữ ký số.
- Gắn (trước khi mã hố) một giá trị thẻ xác thực bí mật vào văn bản được mã.
2.3.3.2. Chữ ký số
Trong cuộc sống hàng ngày, chúng ta cần dùng chữ ký để xác nhận văn bản, tài liệu nào đó và có thể dùng con dấu với giá trị pháp lý cao hơn để đi kèm với chữ ký.
Cùng với sự phát triển nhanh chóng của cơng nghệ thơng tin, các văn bản tài liệu dưới dạng số dễ dàng được sao chép, sửa đổi. Nếu ta sử dụng chữ ký truyền
thống như trên sẽ rất dễ dàng bị giả mạo chữ ký. Vấn đề đặt ra là làm sao để có thể ký vào văn bản, tài liệu số như vậy ? Câu trả lời đó là sử dụng chữ ký số
a) Định nghĩa chữ ký số
Chữ ký số (digital signature) là đoạn dữ liệu ngắn đính kèm với văn bản gốc để chứng thực tác giả (người ký văn bản) của văn bản và giúp người nhận kiểm tra tính tồn vẹn của nội dung văn bản gốc.
b) Các ưu điểm của chữ ký số
Việc sử dụng chữ ký số mang lại nhiều ưu điểm khi cần xác định nguồn gốc và tính tồn vẹn của văn bản trong q trình sử dụng.
Khả năng xác định nguồn gốc
Các hệ thống mật mã hóa khóa cơng khai cho phép mật mã hóa văn bản với khóa bí mật mà chỉ có người chủ của khóa biết.
Để sử dụng chữ ký số thì văn bản cần phải được mã hóa hàm băm. Sau đó dùng khố bí mật của người chủ khóa để mã hóa, khi đó ta được chữ ký số. Khi cần kiểm tra, bên nhận giải mã với khóa cơng khai để lấy lại hàm băm và kiểm tra với hàm băm của 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 tưởng rằng văn bản đó xuất phát từ người sở hữu khóa bí mật.
Tính tồn vẹn
Cả hai bên tham gia vào q 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ì hàm băm cũng sẽ thay đổi và lập thức bị phát hiện. Quy trình mã hóa sẽ ẩn nội dung dối với bên thứ ba.
Tính khơng thể phủ nhận
Trong giao dịch, một bên có thể từ chối nhận một văn bản nào đó là do mình gửi. Để ngăn ngừa khả năng này, bên nhận có thể yêu cầu bên gửi phải gửi kèm chữ
ký số với văn bản. Khi có tranh chấp, bên nhận sẽ dùng chữ ký này như một chúng cứ để bên thứ ba giải quyết.
Sơ đồ tạo và xác nhận chữ ký số:
Hình 1.9. Sơ đồ sử dụng giải thuật hàm băm trong giải thuật chữ ký số
2.4. 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 và mật mã khóa cơng khai, từ đó phân tích các ưu và nhược điểm của từng hệ mật. Ngoài ra, nội dung chương 1 cũng đề cập đến khái niệm cơ bản và một số mơ hình xây dựng hàm băm, xác thực và chữ ký số, từ đó làm cơ sở cho việc lựa chọn và áp dụng mơ hình vào xây dựng hàm băm ở chương 3.
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 3: HỆ MẬT XÂY DỰNG TRÊN CÁC CẤP SỐ NHÂN CYCLIC
Chương này tập trung vào việc nghiên cứu phân tích cấu trúc nhóm nhân cyclic và cấp số nhân trên vành đa thức, trên cơ sở đó xây dựng một hệ mật khóa bí mật làm cơ sở thực hiện các hàm băm mới.
3.1. NHÓM NHÂN CYCLIC TRÊN VÀNH ĐA THỨC
3.1.1. Định nghĩa nhóm nhân cyclic trên vành đa thức
Định nghĩa 2.1[2]: 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= α α α α 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.
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[2] :Trong vành đa thức Z2[ ]/x xn +1, 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
Trong mỗi vành đa thức Z2[ ]/x xn +1 đều tồn tại một lũy đẳng 1 0 0 ( ) n i i e x − x = =∑ , lũy đẳng này được gọi là lũy đẳng “nuốt” (Swallowing Idempotent).
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 xn +1 và ( ( ))W a x là số lẻ thì a x e x( ). ( )0 =e x0( ). - Nếu đa thức b x( )∈Z2[ ]/x xn +1 và ( ( ))W a x là số chẵn thì b x e x( ). ( ) 00 = .
* 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, .2 ,..., .22 ms 1}
s
C = s s s s − trong đó s.2ms−1 ≡smodn
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 =UC
* Ý 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 xn +1
+ 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 xn +1.
+ 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, ký hiệu ord a x( ( )), là số nguyên dương m nhỏ nhất sao cho:
( ) ( ) mod( 1)
m n
a x =e x x +
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
( )
a x được xác định như sau:
- Nếu n lẻ và n 1 1 ( )
i
x + + =∏ f x ; trong đó ( )f xi là các đa thức bất khả quy.
Khi đó max ord( ( )) 2a x = m −1, vớim=max deg ( )f xi .
- Nếu n chẵn n=2 (2s k+1) và 2k 1 1 ( )
i
x + + =∏ f x .
Khi đó max ord( ( )) 2 (2a x = s m−1), vớim=max deg ( )f xi .
Bổ đề 2.1: Trong vành Z2[ ] /x xn+1 với n=2k, tập các đa thức có trọng số lẻ sẽ tạo
nên một nhóm nhân các đa thức theo modulo xn+1.
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.
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 [1]: 1 2 1 2k Q = −− * Các phần tử cấp n và các nhóm nhân cyclic cấp n. Xét a x( )∈G. ( ) i i a x =∑a x . 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 2n−2 [1].
Ví dụ 2.1:Với n = 8, có tất cả 26 =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 K a − x a x =a x =
Có tất cả 2n−2 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ị.
3.1.2. Phân loại nhóm nhân cyclic trên vành đa thức
3.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à I ={ , ,...,x x2 xn−1,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
{ ,( ) ,( ) ...,( ) ,1}n
I = x x x x −
3.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:
2 3
( ( ), ( ), ( ),..., m( )}
A= a x a x a x a x
Trong đó: m là cấp của ( )a x .
3.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)
Đ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: II J= ; ∅ IUJ = =S {0,1,...,n−1} . 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 . 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 −
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 tồ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.
3.2. CẤP SỐ NHÂN CYCLIC TRÊN VÀNH ĐA THỨC
3.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 xn +1 với n lẻ, giả sử ( )a x là số hạng đầu tiên của
cấp số nhân cyclic và ( )q x là công bội của cấp số nhân.
Đị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:
2 1
( , )a q { ( ), ( ) ( ), ( ) ( ),..., ( ) m ( )}
A = a x a x q x a x q x a x q − x
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.
( ) m( ) ( ) mod n 1
a x q x ≡a x x +
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 q xm( ). Cấp lớn nhất của phần tử ( )q x được xác định bởi định lý 2.1.
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à cấp số nhân cyclic cấp m.
Như vậy, trong vành đa thức Z x x2[ ] / n +1, 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.
* Các cấp số nhân cyclic cấp n
Nếu ta nhân các phần tử của một nhóm nhân cyclic cấp n vớ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 được xác
định như sau. 2 1 2 2 2 k .2 k N = − − Ví dụ 2.2: n Số cấp số nhân N n Số cấp số nhân N 8 n= N =2 .28 1− 8 2− =213 =8.192 n=64 N =264 1−.264 2− =2125 16 n= N =2 .216 1 16 2− − =229 =65.011.712 n=32 N =2 .232 1− 32 2− =261
3.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.
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.
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:
( ( ), ) 2 2 1 ( ( )) n a x n N ord a x − ≥ +
* Điều kiện để phân hoạch không suy biến
Đị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.
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.
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 orda 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 vành
đa thức.
Trong vành đa thức Z2[ ]/x xn+1, số Ideal của vành được xây dựng tương ứng với các đa thức sinh ( )g x , mỗi Ideal tương ứng với bộ mã cyclic (theo quan điểm
Các đa thức sinh ( )g x tương ứng với mỗi Ideal được lập từ tổ hợp các đa thức bất khả quy trong phân tích của nhị thức xn + 1.
1 2 1 ( ) ( ). ( )... ( ) n i t i x + =∏ f x = f x f x f x , với 1 deg ( ) t i i f x n = = ∑ 1 2 ( ) j( ) ( ). ( )... ( )s j g x =∏ f x = f x f x f x , với ( )g x | xn + 1,