Tải bản đầy đủ (.pdf) (26 trang)

Nghiên cứu họ hệ mật WG trong mật mã hạng nhẹ (tt)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.21 MB, 26 trang )

LỜI CẢM ƠN
Lời đầu tiên tôi xin gửi lời cảm ơn sâu sắc nhất đến thầy TS. Hồ Văn Canh, đã tận tâm, tận lực
hướng dẫn, định hướng cho tôi, đồng thời, cũng đã cung cấp nhiều tài liệu và tạo điều kiện thuận lợi trong
suốt quá trình học tập và nghiên cứu để tôi có thể hoàn thành luận văn này.
Tôi xin chân thành cảm ơn đến các thầy, cô trong Bộ môn Quản lý hệ thống thông tin và Khoa
Công nghệ thông tin, Trường Đại học Công nghệ - Đại học Quốc gia Hà Nội cùng với ban lãnh đạo nhà
trường đã nhiệt tình giảng dạy và truyền đạt những kiến thức, kinh nghiệm qúy giá trong suốt quá trình học
tập rèn luyện tại trường.
Tôi xin gửi lời cảm ơn đến các bạn học viên lớp K22-QLHTTT, nhóm bảo mật UET đã đồng hành
cùng tôi trong suốt quá trình học tập. Cảm ơn gia đình, bạn bè đã quan tâm và động viên giúp tôi có nghị
lực phấn đấu để hoàn thành tốt luận văn này.
Do kiến thức và thời gian có hạn nên luận văn sẽ không tránh khỏi những thiếu sót nhất định. Tôi
rất mong nhận được những sự góp ý quý báu của thầy cô, đồng nghiệp và bạn bè.
Một lần nữa xin gửi lời cảm ơn chân thành và sâu sắc.
Hà Nội, 27 tháng 12 năm 2017
Học viên thực hiện

Nguyễn Thị Thuỳ Dung

-1-


MỤC LỤC

LỜI CẢM ƠN.......................................................................................................................................... - 1 MỤC LỤC................................................................................................................................................ - 2 CHƯƠNG 1 TỔNG QUAN VỀ HỌ HỆ MẬT WG ................................................................................. 1
1.1 Lịch sử mật mã dòng WG [2], [7] ....................................................................................................... 1
1.2 Cơ sở toán học [6] ............................................................................................................................... 1
1.2.1 Mô đun số học .............................................................................................................................. 1
1.2.2 Nhóm và trường ........................................................................................................................... 2
1.2.3 Trường hữu hạn............................................................................................................................ 2
1.2.4 Lựa chọn cơ sở ............................................................................................................................. 4


1.2.5 Thanh ghi dịch phản hồi tuyến tính LFSR [6] ............................................................................. 4
1.3 Họ hệ mật WG [3],[5] ......................................................................................................................... 6
1.3.1 Cơ sở ............................................................................................................................................ 6
1.3.2 Nguyên tắc hoạt động của họ hệ mật WG.................................................................................... 6
1.3.3 Khởi tạo khóa và hoạt động của mật mã ...................................................................................... 7
1.4 Phân tích họ hệ mật WG [3],[9] .......................................................................................................... 8
1.4.1 Các thuộc tính ngẫu nhiên của dòng khóa ................................................................................... 8
1.4.2 Chuyển đổi WG ........................................................................................................................... 9
1.4.3 An ninh chống lại các cuộc tấn công ........................................................................................... 9
1.5 Công nghệ RFID và họ hệ mật WG [6], [8]...................................................................................... 11
CHƯƠNG 2 CÁC HỆ MẬT WG-8 VÀ WG-16 ..................................................................................... 12
2.1 Tổng quan hệ mật WG-8 [8] ............................................................................................................. 12
2.1.1 Giới thiệu WG-8 ........................................................................................................................ 12
2.1.2 Thuật ngữ và ký hiệu ................................................................................................................. 12
2.1.3 Đặc tả cấu trúc mật mã dòng WG-8 ........................................................................................... 12
2.1.4 Đánh giá các tấn công mật mã dòng WG-8 ............................................................................... 14
2.2 Hệ mật WG-16 [1] ............................................................................................................................ 15
2.2.1 Giới thiệu WG-16 ...................................................................................................................... 15
2.1.2 Thuật ngữ và ký hiệu ................................................................................................................. 15
2.1.3 Đặc tả cấu trúc mật mã dòng WG-16 ......................................................................................... 16
2.1.4 Đánh giá các tấn công mật mã dòng WG-16 ............................................................................. 17
-2-


CHƯƠNG 3 ĐỀ XUẤT CẢI TIẾN HỆ MẬT WG – UET VÀ CHƯƠNG TRÌNH DEMO............... 19
3.1 Đề xuất cải tiến hệ mật WG-UET ..................................................................................................... 19
3.2 Bài toán và cài đặt chương trình ....................................................................................................... 20
KẾT LUẬN ................................................................................................................................................ 22
HƯỚNG NGHIÊN CỨU TIẾP THEO ................................................................................................... 22
TÀI LIỆU THAM KHẢO ........................................................................................................................ 23


-3-


CHƯƠNG 1 TỔNG QUAN VỀ HỌ HỆ MẬT WG
1.1 Lịch sử mật mã dòng WG [2], [7]
Phiên bản đầu tiên của mật mã WG được Nawaz and Gong công bố năm 2005, được đệ trình lên dự án
eSTREAM với tư cách như một mật mã được định hướng cứng hoá. Mật mã WG bao gồm một LFSR với
11 phần tử trên F229 . Cấu trúc của các phiên bản sau này cũng cũng tương tự như vậy, ngoại trừ việc chuyển
đổi WG được kết hợp với phần tử cuối cùng của thanh ghi (ban đầu là S0). Mặc dù kích thước của LFSR
là cố định nhưng nó cho phép sử dụng các khóa có kích cỡ khác nhau (80, 69, 112 và 128 bit). Các vector
IVs có thể có cùng kích thước như các khóa, nhưng vector IV cũng có thể ngắn hơn 64 hoặc 32 bit. Sự khác
biệt duy nhất giữa các kích cỡ này là cách tải các khóa và các vector IV này vào LFSR .
Chỉ sau 2 tháng đã có cuộc tấn công thành công vào phiên bản này, Wu và Preneel đã trình bày cuộc tấn
công mật mã, cuộc tấn công này tập trung vào việc có thể khôi phục được khóa mà không cần quan tâm
đến kích cỡ khóa/IV. Để đáp lại cuộc tấn công này, người tạo ra mật mã WG đã đề xuất ý kiến tăng gấp đôi
hoặc thậm chí gấp bốn lần số chu kỳ cho pha khởi tạo.
Phiên bản cuối cùng của mật mã WG (nay được gọi là họ hệ mật mã dòng) được công bố năm 2013. Nó
chuyển sự chuyển đổi WG về cuối LFSR, chính sự thay đổi này làm cho mật mã có thể chống lại cuộc tấn
công IV đã được đề cập ở trên mà không cần tăng thêm chu kỳ cho pha khởi tạo.
Mật mã WG-16: Năm 2013 Fan and Gong trình bày mật mã dòng WG-16. Nó được thiết kế dùng trong
mạng 4G-LTE. Hai ông cũng chỉ ra các thuật toán bí mật và toàn vẹn sử dụng mật mã WG-16 của họ. Để
chứng minh tính thực tiễn của mật mã WG-16, họ đưa ra các lý lẽ cho rằng các mật mã hiện tại trong chuẩn
4G-LTE rất khó để phân tích và những giải thuật hiện tại cũng dễ bị phá vỡ. WG-16 sử dụng các khóa và
bộ mã hoá 128-bit cùng với LFSR có chứa 32 phần tử trên F216 .
Mật mã WG-7: Mật mã WG-7 là tiền nhiệm của WG-8, cũng được thiết kế nhắm đến các thiết bị bị hạn
chế tài nguyên. Nó được công bố bởi Luo et al năm 2010. Nó sử dụng các khóa 80-bit và vector IV 80-bit.
LFSR chứa 23 phần tử trên F27 . Tuy nhiên, vào năm 2012 mật mã bị phá bởi Orumiehchiha et al.
Mật mã WG-5: Aasgaard, Gong và Mota thảo luận về việc triển khai phần cứng và các vấn đề bảo mật của
mật mã dòng WG-5. Mật mã này nhằm vào các thẻ RFID thụ động và chỉ cung cấp mức bảo mật thấp. Nó

chỉ chống lại các cuộc tấn công chỉ khi dữ liệu được mã hóa với một cặp khóa/ IV không vượt quá 256
kilobyte, đây là một ràng buộc chấp nhận được đối với các thẻ RFID thụ động.
1.2 Cơ sở toán học [6]
1.2.1 Mô đun số học
Modul số học đã và đang dần trở lên quan trọng trong lĩnh vực mật mã. Lý thuyết mô đun số học
được sử dụng trong các thuật toán mã hoá khoá công khai như thuật toán RSA và Diffie-Hellman,
các thuật toán khoá đối xứng như AES, IDEA và RC4. Ưu điểm chính của việc sử dụng mô đun
số học là nó cho phép chúng ta thực hiện phép nhân nhanh hơn. Ví dụ với phép toán phức tạp, việc
tính toán đa thức đó (nhân đa thức) với 1 lượng số nguyên lớn thì việc sử dụng mô đun số học sẽ
làm giảm thời gian tính toán của các phép toán lớn này. Áp dụng vào ứng dụng sửa mã lỗi, bằng
việc sử dụng lý thuyết mô đun số học mỗi chữ số của mã được liên kết đến các phần tử của trường
hữu hạn.
Toán tử modulo (mod n) ánh xạ tới tất cả các số nguyên trong tập {0, 1, 2, ... (n − 1)} và tất cả các
phép toán số học được thực thi trong tập hợp này. Kỹ thuật này được gọi là mô đun số học.
1


Tập các số nguyên và các số nguyên khác 0 của mod n được ký hiệu bởi Zn và Z*n.
Ví dụ: cộng và nhân modul trên modulo 23
Giả sử, 12 + 20 = (12 + 20) mod 23 = 32 mod 23 = 9 vì 32 chia cho 23 dư 9.
Tương tự, trong phép nhân; 8 × 9 = 72 mod 23 = 3, vì khi 72 chia cho 23 dư 3.
1.2.2 Nhóm và trường
Nhóm:
Định nghĩa 1: Một Nhóm (G) được định nghĩa như là 1 cặp (S, •), với S là tập khác rỗng, toán tử
• sao cho tuân theo tiên đề từ A1-A4 được định nghĩa ở bảng bên dưới.
Toán tử • có thể gọi là phép cộng, phép nhân hay 1 phép toán nào khác.
Ở đây tập S là đại diện của nhóm G, i là phần tử định danh trong G.
Tiên đề
Ý nghĩa
A1. Đóng kín

Cho a, b thuộc G , a • b sẽ thuộc G
A2. Kết hợp
Cho tất cả a, b, c thuộc G, a •(b •c) = (a •b) •c
A3. Định danh
Tồn tại phần tử e thuộc G, cho a thuộc G với a •e = e •a = a hay đúng
hơn ∃e ∈ G, ∀ a ∈ G, a • e = e • a = a
A4. Nghịch đảo
Với mọi a thuộc G tồn tại phần tử x thuộc G sao cho a•x = x•a = e hay
nói cách khác ∀a ∈ G, ∃x ∈ G, a•x = x•a=e
Bảng 1.0.1 Bảng các tiên đề định nghĩa nhóm
Định nghĩa 2: (A5) Một nhóm được gọi là nhóm abel nếu nó thoả mãn điều kiện với mọi a, b thuộc
G thì a •b = b •a
Định nghĩa 3: Một nhóm được gọi là cyclic nếu có 1 hoặc nhiều phần tử mà có thể sinh ra tất cả
các phần tử trong nhóm, hay có nói cách khác: ∃ g ∈ G, ∀ a ∈ G, ∃ k, a = gk.
Trường:
Định nghĩa: Một trường F được định nghĩa là một tập các phần tử với 2 toán tử nhị phân ,  , được
biểu diễn là ( F , , ) và tuân theo các tiên đề bên dưới:
Tiên đề
(A1-A5)
(A1-A3) và A5
A6. Phần tử
nghịch đảo

Ý nghĩa
F tạo thành 1 nhóm abel đối với phép cộng
F tạo thành một vị nhóm giao hoán
Cho mỗi a thuộc F, nếu a  0 , tồn tại một phần tử x thuộc F, sao cho
a  x  x  a  1, hay có thể nói ∀ a  0 ∈ F, ∃ x ∈ F, a  x  x  a  1
Bảng 1.0.2 Bảng các tiên đề định nghĩa trường


Ví dụ: Cho trường bất kỳ ( F , , ).( F * , ) tạo thành 1 nhóm abel. Với F * là tập con của F không
bao gồm phần tử 0.
1.2.3 Trường hữu hạn
Các loại trường hữu hạn:
- Trường nguyên tố: Được định nghĩa là trường có dạng GF(p), với p là số nguyên tố. Tất cả
các phần tử trong trường và các phép toán số học (, ) được thực thi theo modulo p.
- Trường nhị phân: Được định nghĩa là một trường có dạng GF(pn), trong đó n là một số nguyên
dương. Thông thường trường nhị phân được xây dựng từ trường nguyên tố.

2


1.2.3.1 Trường hữu hạn của GF(p)
Cho số nguyên tố p bất kỳ, trường hữu hạn p phần tử, các phần tử của GF(p) được định nghĩa
là tập {0, 1, 2, ... (p-1)}, cùng với các phép toán số học theo modulo p. GF(p) cũng có thể
được ký hiệu bởi tập các số nguyên Zp.
Ví dụ: Các phép toán số học trong trường hữu hạn đơn giản nhất của GF(p)
Trường hữu hạn đơn giản nhất là GF(2), trong đó p = 2, và các phần tử là {0, 1}, đây là trường
hợp đặc biệt mà các phép toán số học + và  tương đương với các phép toán XOR và AND.
1.2.3.2 Đa thức số học
Các phần tử của GF(pn), với n > 1, có thể được biểu diễn dưới dạng đa thức, các hệ số của đa
thức này thuộc GF(p) và có độ nên nhỏ hơn n. Khi p = 2, các phần tử của GF(pn) được biểu
diễn dưới dạng số nhị phân {0, 1}. Điều này có nghĩa là mỗi ký tự trong một đa thức được
biểu diễn bởi một bit trong biểu thức nhị phân tương ứng.
Định nghĩa: Một đa thức được định nghĩa là một biểu thức toán học liên quan đến tổng của 1
hoặc nhiều biến nhân với các hằng số của chúng. Một đa thức với 1 biến và các hằng số của
chúng được biểu diễn như sau:
n

f(x) = anxn + an−1xn−1 + ..... + a2x2 + a1x + a0 =


a x
i 0

i

i

Với n (là số nguyên n ≥ 0) được gọi là độ của đa thức, và hằng số ai , 0 ≤ i ≤ n. F cũng được
gọi là một tập hợp khi an  0 và có thể có nhiều đa thức được định nghĩa trên F. Có thể có
nhiều luỹ thừa giống nhau của x khi so sánh 2 đa thức f ( x) và g ( x) trên F.
Cho: f ( x) 

n

m

 a x và g ( x)   b x
i

i

i 0

i 0

i

i


Phép cộng f ( x) và g ( x) :
n

f ( x)  g ( x)   (ai  bi ) xi , với n = m
i 0

Phép nhân f ( x) và g ( x) :

 n
  m
 nm
f ( x)  g ( x)    ai xi     bi xi    ck x k
 i 0
  i 0
 k 0
Với: ck   ai bk i  a0bk  a1bk 1  ...  ak 1b1  ak b0.
0 i  k

Phép chia m( x) và p( x) :
Phép chia đa thức trên trường Galois được tính toán dựa trên phép nhân và phép cộng. Phép
chia 2 đa thức m( x)  p( x) được tính bằng phép toán m( x)  q( x)  p( x)  r ( x) , với
thương q( x) và số dư r ( x) là kết quả của phép chia.
1.2.3.3 Trường hữu hạn của GF(pn)
Trường hữu hạn dưới dạng GF(p) với p phần tử, trong đó p là số nguyên tố. Các thành phần
của GF(p) = Zp = {0, 1, 2, ... (p-1)}, với các phép toán số học (, ) được thực hiện cùng với
phép toán modulo p. Chúng ta sử dụng khái niệm tương tự để xây dựng trường hữu hạn có
dạng GF(pn), gồm q-1 phần tử, trong đó (q = pn) với phép toán mô đun pn-1.

3



Gốc của đa thức: Nếu p(x) là 1 đa thức trên F, thì phần tử α ∈ F sao cho p(α) = 0 được gọi
là gốc của đa thức p(x).
Trường con: Nếu một tập con S có các phần tử thuộc trường F thỏa mãn các tiên đề trường
cùng với các phép toán số học của F, thì S được gọi là trường con của F.
GF(pm) là một trường con của GF(pn) khi và chỉ khi m là số chia hết của n ký hiệu là: GF(pm)
⊂ GF(pn).
Ví dụ: GF(22) ⊂ GF(24) và GF(24) ⊂ GF(212).
Trường mở rộng: Một trường F được gọi là trường mở rộng, nếu S là tập con nằm trong
tập F, ta định nghĩa S là một trường con của F và F là một trường mở rộng của S. Chúng được
ký hiệu F/S và đọc là "F trên S".
1.2.4 Lựa chọn cơ sở
*Cơ sở đa thức
Định nghĩa: Xét trường hữu hạn GF(pn) và cho α ∈ GF(pn) là gốc của một đa thức không giảm, độ
n trên GF(p).
Cơ sở đa thức đươc được biểu diễn là {1, α, α2 ... αn-1} của GF(pn) trên GF(p).
Với α là phần tử nguyên thủy của GF(pn)
Ví dụ: Nếu p = 3 và n = 2 thì GF(32) là một trường mở rộng của GF(3) với độ bằng 2. Cho α ∈
GF(32), là gốc của đa thức không giảm x2 + 1 trên GF (3), thì cơ sở đa thức là {1, α} của GF(32)
trên GF(3).
*Cơ sở thông thường
Định nghĩa: Cho số nguyên dương n bất kỳ trên GF(pn), luôn luôn có một cơ sở thông thường cho
trường hữu hạn GF(pn) trên GF(p). Nếu γ ∈ GF(pn) là một phần tử thông thường, thì cơ sở thông



2
2
2
thường được biểu diễn là  ,  ,  ...

1

2

n1

.

Trong đó γ được gọi là phần tử sinh hoặc phần tử thông thường của GF(pn) trên GF(p), được biểu
diễn dưới dạng ma trận n  m và được ký hiệu là M.
1.2.5 Thanh ghi dịch phản hồi tuyến tính LFSR [6]
1.2.5.1 LFSR và mô tả toán học
Thanh ghi dịch phản hồi tuyến tính (LFSR) đã được sử dụng rộng rãi trong máy sinh dòng khóa
của mật mã dòng, máy sinh số ngẫu nhiên trong hầu hết các thuật toán mã hoá. Mỗi khối vuông
trong hình 1.1, là một đơn vị lưu trữ 2 trạng thái (0 hoặc 1). Các đơn vị lưu trữ nhị phân n được
gọi là các trạng thái của thanh ghi dịch và nội dung của chúng ở dạng n bit chiều dài, được gọi là
trạng thái nội bộ của thanh ghi dịch.

Hình 1.1 Sơ đồ khối của LFSR
Cho (a0, a1, a2, ..., an-1) ∈ GF (2n) là trạng thái ban đầu của LFSR và
4


f (x0, x1, x2, ..., xn-1) là hàm phản hồi hoặc đa thức thông tin phản hồi, như thể hiện trong hình 1.1.
Nếu hàm phản hồi là một hàm tuyến tính thì nó có thể được biểu diễn bằng:
f(x0, x1, x2, ..., xn−1) = c0x0 + c1x1 + c2x2 + ...... + cn−1xn−1, ci ∈ GF(2)
Sau mỗi chu kỳ liên tiếp cộng với LFSR sẽ tạo ra một chuỗi nhị phân đầu ra là chuỗi nhị phân b
có dạng b = a0, a1, ...
Chuỗi đầu ra của LFSR thỏa mãn quan hệ đệ quy sau:
n 1


ak  n   ci ak i , k  0,1,...

(1)

i 0

Đầu ra của LFSR được coi là một chuỗi đệ quy tuyến tính. Nếu hàm phản hồi là tuyến tính thì
chuỗi đầu ra được gọi là chuỗi LFSR tuyến tính. Nếu không, nó được gọi là chuỗi phi tuyến tính
(NLFSR).
1.2.5.3 Cài đặt phần cứng LFSR trên trường Galios
Trong việc cài đặt phần cứng, LFSR chứa N thanh ghi được kết nối với nhau để tạo ra một
thanh ghi dịch. Nói chung, thanh ghi dịch là một dãy flip-flops, trong đó đầu ra của flip flop
cuối cùng được nối (phản hồi) với các flip flops trước đó bằng một cổng XOR như thể hiện
trong hình 1.4. Giả sử chiều dài của LFSR là N và nó bao gồm của N trạng thái flip-flops và
các bit đã lưu được điều khiển bởi một đồng hồ đơn. Tại mỗi xung đồng hồ, các bit đã lưu sẽ
được dịch chuyển 1 vị trí sang trạng thái tiếp theo, đồng nghĩa với việc là có sự chuyển tiếp
từ trạng thái này sang trạng thái tiếp theo.

Hình 1.2 Mạch LFSR 3 bít
Các thông số thiết kế cần quan tâm khi thiết kế LFSR là số flip flops, cổng XOR bên trong
hoặc bên ngoài, các taps phản hồi (đầu vào cho XOR) và tín hiệu cài đặt lại. Khi thiết lập cài
đặt lại, thanh ghi sẽ cài đặt tất cả 1s và với mục đích phân tích, ở đây ta sử dụng LFSRs với
cổng XOR nội bộ vì mạch của chúng được kết hợp với các đa thức trên các trường Galois.
LFSR tạo ra một chuỗi bit có độ dài tối đa 2n - 1, trong đó n là kích thước của trường hữu hạn.
Các tap phản hồi trên LSFR sẽ được chọn dựa vào đa thức đã được lựa chọn trên trường hữu
hạn. Các phép toán số học đa thức được thực thi liên quan tới các phép toán mod 2, tức là các
hệ số của đa thức phải là 1 hoặc 0. Những đa thức này được gọi là đa thức đặc trưng hoặc
phản hồi. Những đa thức đặc trưng này sẽ biểu diễn các chuỗi bít LFSR. Giả sử chuỗi bit là
110011 thì đa thức đặc trưng được biểu thị là x5 + x4 + x1 + 1.

1.2.5.4 Nhân và chia đa thức trong LFSR
Phép nhân f(x)×g(x) = (x3+x2+1)×(x3+x)
5


Tương tự, phép chia m(x) = x5 + x3 + x2 và p(x) = x3 + x

Hình 1.3 Cài đặt phép chia LFSR
Đầu vào cho LFSR là 101100, nó là biểu diễn bít vector của m(x) và được đưa vào mạch
LFSR 1 cách tuần tự theo thứ tự bậc cao hơn. Vào cuối chu kỳ 6, phần dư r(x) = 100(x2) sẽ
được lưu trong các flip flops.
1.3 Họ hệ mật WG [3],[5]
1.3.1 Cơ sở
Một số thuật ngữ và ký hiệu cơ bản mô tả họ hệ mật WG và hoạt động của mật mã này:



F2 = GF(2), trường hữu hạn với 2 phần tử: 0 và 1.
F229 = GF(229), trường mở rộng của GF(2) với 229 phần tử. Mỗi phần tử trong trường này
được biểu diễn bởi một vector nhị phân 29 bit.



Hàm lưu vết Tr ( x)  x  x  x
2

22

 ...  x 2 , F2 → F2.
28


29

1029

Tr291129 ( x)  x  x 2  ...  x 2
29



Hàm lưu vết



Cơ sở đa thức F229 : giả sử α là gốc của đa thức nguyên thủy tạo ra F229 . Ta có, {1, α, α2, ···,

, F211x29→ F229 .

α28} là cơ sở đa thức của F229 trên F2.



2
2
2
Cơ sở thông thường F229 : Cho γ là 1 phần tử của F229 sao cho  ,  ,  ,..., 



F229 trên F2. Ta có  ,  2 ,  2 ,...,  2

1

2

28

1

 là cơ sở thông thường của F

229

2

28

 là cơ sở của

trên F2.

1.3.2 Nguyên tắc hoạt động của họ hệ mật WG
Sơ đồ khối đơn giản của máy sinh dòng khóa WG được thể hiện trong hình 1.8. Dòng khóa được
tạo ra bởi máy sinh được kết hợp bản rõ để tạo ra bản mã. Như hình 1.8, máy sinh dòng khóa bao
gồm một thanh ghi dịch phản hồi tuyến tính (LFSR) 11 trạng thái trên F229 . Đa thức phản hồi của
LFSR là đa thức nguyên thủy trên F229 và tạo ra một chuỗi có độ dài lớn nhất (chuỗi m) trên F229 ,
chuỗi m này được lọc bởi 1 hàm chuyển đổi WG phi tuyến tính, F229  F2 , để tạo ra dòng khóa.

6



Hình 1.4 Sơ đồ mô tả mật mã WG
Tất cả các phần tử trong F229 được biểu diễn trong cơ sở thông thường và tất cả các tính toán
trường hữu hạn cũng đều trong cơ sở thông thường. Đa thức phản hồi của LFSR được cho bởi
biểu thức:
p(x) = x11 + x10 + x9 + x6 + x3 + x + γ
với F229 được sinh ra bởi đa thức nguyên thuỷ trên F2
g(x) = x29 + x28 + x24 + x21 + x20 + x19 + x18 + x17 + x14 + x12 + x11 + x10 + x7 + x6 +
x4 + x + 1.
Và γ = β464730077 với β là gốc của g(x). Định nghĩa S(1), S(2), S(3),…, S(11) ∈ F229 là trạng thái
của LFSR. Ta cũng biểu thị đầu ra của LFSR là bi = S(11 - i), i = 0, 1, .., 10. Cho i ≥ 11, ta có:
bi = bi−1 + bi−2 + bi−5 + bi−8 + bi−10 + γbi−11, i ≥ 11
1.3.3 Khởi tạo khóa và hoạt động của mật mã
1.3.3.1 Tạo khóa (IV 32 bít và 64 bít)
Độ dài khóa được khuyến nghị cho mật mã WG là 80, 96, 112 và 128 bit. Véc tơ khởi tạo
(IV) có kích thước 32 hoặc 64 bit có thể được dùng với bất kỳ khoá có độ dài nào ở trên. Để
khởi tạo mã, các bít khóa và các bít IV được nạp vào LFSR.
Quá trình tải các bit khóa và các bit IV vào LFSR:
Trạng thái của LFSR được biểu diễn S(1), S(2), S(3), .., S(11) ∈ F29. Mỗi trạng thái S(i) ∈ F29
được biểu diễn: S1, .., 29(i), trong đó 1 ≤ i ≤ 11. Tương tự, các bit khoá được biểu diễn: k1,..., j,
1≤ j ≤ 128 và bit IV là IV1,.., m, 1 ≤ m ≤ 64.
Các bit khoá được chia thành các khối 16 bit và mỗi khối được nạp vào LFSR

7


Hình 1.5 Pha khởi tạo khóa của mật mã WG
Các bit IV được chia thành các khối 8 bit và mỗi khối được nạp vào LFSR.
Tất cả các bit còn lại của LFSR được thiết lập bằng 0. Khi cặp khoá/IV được tải vào trong
LFSR, máy sinh dòng khóa sẽ chạy trong 22 chu kỳ đồng hồ. Đây là pha khởi tạo của mật mã.
Trong pha này véc tơ 29 bit, được biểu diễn:


keyinitvec 

q  q
1

2

  q3  q4  



1.3.3.2 Tạo khóa (độ dài khóa bằng độ dài IV)
Ta có: Các trạng thái S(1), S(2), S(3), .., S(11) ∈ F229; Mỗi trạng thái S(i) ∈ F229, được biểu
diễn là S1, .., 29 (i) trong đó 1 ≤ i ≤ 11. Tương tự ta biểu diễn các bít khoá là k1, .., j, 1 ≤ j ≤ 128
và các bit IV là IV1, .., m, 1≤m≤ 128.
Các bit còn lại trong LFSR đều được thiết lập bằng 0. Khi khoá và IV đã được nạp vào LFSR,
máy sinh dòng khóa sẽ chạy cho 22 chu kỳ.
*Hoạt động của mật mã
Khi mật mã đã được khởi tạo, các thành phần bên trong của LFSR tạo thành trạng thái nội bộ
của mật mã. Để tạo ra dòng khoá, LFSR bị khóa 1 lần và các bít trong trạng thái S(11) được
nạp vào khối chuyển đổi WG tạo ra một bit dòng khóa. Các LFSR lại bị khóa và các bít mới
cập nhật của S(11) sẽ được đẩy vào khối WG chuyển đổi, tiếp tục tạo ra bit dòng khóa tiếp
theo. Dòng khóa vận hành này được XOR với bản rõ để tạo ra bản mã.
1.4 Phân tích họ hệ mật WG [3],[9]
1.4.1 Các thuộc tính ngẫu nhiên của dòng khóa
Dòng khóa WG {ai} được tạo ra bằng cách sử dụng chuyển đổi WG để lọc một chuỗi có độ dài
lớn nhất trên F229 . Do đó ta có thể biểu diễn đầu ra của máy sinh như sau:

ai  f (bi ), i  0,1...


u( x)  f .Tr29319 ( x)
319
29

u ( x) là thành phần hợp thành của hàm lưu vết Tr

(2)

( x) và chuyển đổi WG - f trong đó b(i) là

chuỗi m được tạo ra bởi LFSR trên F229 với Tr29319 ( x) và f . Chuỗi tương ứng với u ( x) được gọi
là chuỗi GMW tổng quát.
8


* Các thuộc tính đặc trưng của dòng khoá mà được tạo ra bởi máy sinh WG:

-

Chu kỳ: Máy sinh dòng khóa WG có một LFSR 11 trạng thái trên F229 với một đa thức phản
hồi nguyên thủy mà nó sinh ra một chuỗi có độ dài lớn nhất có chu kỳ 211×29 - 1 trên F229 . Vì

-

-

vậy, chu kỳ của dòng khóa được tạo ra bởi mật mã là 2319-1.
Cân bằng: Do chuỗi m {bi} trên F229 cân bằng và WG là một hàm bool cân bằng F229 → F2,
nên dòng khóa cũng được cân bằng.

Tính tự tương quan cấp hai: Chuyển đổi WG là một hàm trực giao và chuỗi chuyển đổi WG
tương ứng có độ tự tương quan cấp độ 2.
Ta xét (2): Đã chứng minh trong rằng nếu f là một hàm trực giao thì chuỗi tương ứng với nó
u cũng có độ tự tương quan cấp hai. Do đó, dòng khóa được tạo ra bởi máy sinh dòng khóa
WG có độ tương quan cấp cấp.
Phân phối t-tuple: Vì {bi} là chuỗi m trên F229 , với độ 11 và f là một hàm bool cân bằng từ

F229 → F2, dòng khóa {ai} là phân bố t-tuple lý tưởng với 1 ≤ t ≤ 11.

-

Độ phức tạp tuyến tính: Từ công thức (2), độ phức tạp tuyến tính của dòng khóa có thể được
tính chính xác theo công thức sau:

LS  29  11w(i )  245.0415
iI

Với w(i ) là khoảng cách hamming của i và I = I1 ∪ I2
Với:
I1 = {219 + 29 + 2 + i |0 ≤ i ≤ 29 − 3},
I2 = {220 + 3 + 2i |0 ≤ i ≤ 29 − 2}.
1.4.2 Chuyển đổi WG
Biểu thức chuyển đổi WG, F229 → F2, có thể được xem như một hàm bool trong 29 biến. Biểu diễn
bool chính xác phụ thuộc vào cơ sở tính toán trong F229 . Cơ sở thông thường được lựa chọn sao
cho biểu diễn bool tương ứng của chuyển đổi WG là 1-order linh hoạt, có độ là 11 và độ phi tuyến
tính của nó là 228-214 = 268419072
1.4.3 An ninh chống lại các cuộc tấn công
 Tấn công về mặt thời gian /bộ nhớ/ dữ liệu (TMD): Xét cuộc tấn công thương mại thời gian/
bộ nhớ/ dữ liệu trên các mật mã dòng.
Phương thức tấn công: có hai giai đoạn:

 Giai đoạn tiền tính toán, kẻ tấn công khai thác cấu trúc của mật mã dòng và tổng hợp các
phát hiện của mình trong các bảng lớn.
 Giai đoạn tấn công, kẻ tấn công sử dụng các bảng này và dữ liệu quan sát được để tính
toán khóa bí mật hoặc trạng thái bên trong của mật mã dòng.
Để xác định được tính khả thi của cuộc tấn công này cần xác định rõ 3 vấn đề:
o
o

Thông tin khai thác được trong giai đoạn tiền xử lý.
Dòng khóa được yêu cầu.
9


o

Những tính toán cần thiết để khôi phục khoá bí mật.

Giải pháp: giải pháp đơn giản để đảm bảo an ninh chống lại cuộc tấn công này là tăng không gian
tìm kiếm.
Một tấn công thương mại TM2D2 = N2 với D2 ≤ T ≤ N, trong đó T là thời gian cần thiết cho cuộc
tấn công, M là bộ nhớ cần thiết để lưu trữ các bảng, D biểu diễn dữ liệu thời gian thực hoặc dòng
khóa được yêu cầu, và N là kích thước của không gian tìm kiếm. Việc tăng không gian tìm kiếm
có thể được thực hiện được bằng cách tăng kích thước của trạng thái nội bộ và sử dụng IV ngẫu
nhiên cùng với khóa bí mật. Trong mật mã dòng WG, kích thước của trạng thái bên trong là 2319
gấp đôi kích thước của khoá lớn nhất. Nếu một IV ngẫu nhiên có cùng độ dài với khoá bí mật, mật
mã sẽ được đảm bảo chống lại các cuộc tấn công thời gian/bộ nhớ/dữ liệu.

 Tấn công đại số:
Hình thức tấn công: Nhằm tấn công vào LFSR, tạo ra một hệ phương trình phi tuyến tính cho
nhiều dòng khoá, để có thể khôi phục được trạng thái bên trong của LFSR.

Chứng minh mật mã WG an toàn với cuộc tấn công đại số:
Courtois đã chỉ ra rằng độ phức tạp của các cuộc tấn công này phụ thuộc vào bộ lọc phi tuyến tính
và số lượng các kết quả đầu ra được tạo ra bởi mật mã. Nếu bộ lọc phi tuyến tính có thể tính xấp
xỉ bằng một phương trình đa biến có độ thấp thì độ phức tạp này có thể giảm một cách đáng kể.
Biểu diễn hàm bool của WG có 29 đầu vào, một đầu ra và có độ là 11. Một bộ lọc phi tuyến tính
với 29 đầu vào và 1 đầu ra phải có xấp xỉ độ 14. Tuy nhiên độ này lớn hơn 11, độ của chuyển đổi
WG. Để các xấp xỉ có ý nghĩa đối với chuyển đổi WG nên có độ nhỏ hơn 11. Giả sử rằng không
có phép xấp xỉ của WG với độ nhỏ hơn 11, mật mã có thể được giảm xuống một hệ phương trình
319
tuyến tính xấp xỉ 11
.

 

Độ phức tạp của việc giải quyết hệ thống như vậy là xấp xỉ 7 / 64*

 

319 log 27
11

 2182 . Nếu tồn tại

phép xấp xỉ của WG với độ nhỏ hơn 11 được thì độ phức tạp của cuộc tấn công sẽ giảm. Theo [9],
kết quả thí nghiệm trên chuyển đổi WG, đưa ra phỏng đoán rằng xác suất của sự tồn tại của phép
xấp xỉ như vậy là rất thấp. Chuyển đổi WG trong các biến 11, 13 và 14 không có phép xấp xỉ với
độ nhỏ hơn so với độ chuyển đổi WG. Vì cả hai biểu diễn bool và đa thức của chuyển đổi WG có
số lượng lớn các thuật ngữ đơn thức với độ cao thì nó không thể xóa được các thuật ngữ với độ
cao hơn mà không ảnh hưởng đến đầu ra của chuyển đổi. Chuyển đổi WG có một số lượng lớn
các thuật ngữ đơn trong đó biểu diễn đa thức và bool đảm bảo an ninh chống lại các cuộc tấn công

đại số.

P  f ` ( x)  l ( x)  

229  (228  214 )
 0.5000305.
229

 Các cuộc tấn công tương quan:
Phương thức tấn công: Đối với loại tấn công này, kẻ thù sẽ khai thác bất kỳ mối tương quan nào
có thể tồn tại giữa dòng khóa và đầu ra của LFSR trong mật mã để thực hiện tấn công.
Trong các cuộc tấn công này, dòng khóa được coi là một phiên bản bị bóp méo hoặc gây nhiễu của
đầu ra LFSR. Điều này làm giảm khả năng tìm ra trạng thái nội bộ của LFSR dẫn tới khả năng giải
mã cũng giảm. Chuyển đổi WG được dùng trong mật mã WG là 1-order linh hoạt, nghĩa là đầu ra
của chuyển đổi WG hay dòng khóa không có mối lên quan gì với bất kỳ bit đầu vào nào của đầu ra
LFSR.

10


Điều này cho thấy rằng mật mã WG đủ sức để chống lại các cuộc tấn công tương quan. Tuy nhiên,
khi xét trường hợp chuyển đổi WG là xấp xỉ bằng các hàm tuyến tính. Những xấp xỉ tuyến tính này
có thể được sử dụng để lấy ma trận máy sinh của một mã tuyến tính. Việc giải mã sau đó có thể
được thực hiện bằng thuật toán giải mã Maximum Likelihood (ML) để phục hồi trạng thái nội bộ
của LFSR.
Chứng minh mật mã WG an toàn với cuộc tấn công tương quan:
Ta sử dụng một số ràng buộc lý thuyết để ước tính độ phức tạp của cuộc tấn công vào mật mã WG.
Cho f ` là hàm bool biểu diễn chuyển đổi WG và l là một hàm tuyến tính với khoảng cách
Hamming ngắn nhất đến f ` . Ta có xác suất:


P( f ' ( x)  l ( x) 

229  (228  214 )
 0.5000305
229

Số lượng dòng khóa cần thiết cho một cuộc tấn công thành công là:

N   k.12.ln 2  . 2 .2
1/3

319  k
3

Và độ phức tạp giải mã là:

2 ln 2
(2 )6
Trong đó   P( f '( x)  l ( x))  0.5  0.000305 và k là số bit trạng thái bên trong LFSR đã khôi
Cdec  2k .k .

phục. Nếu ta chọn k là rất nhỏ, tức k = 5, thì số lượng dòng khóa cần cho cuộc tấn công là khoảng
2133. Hơn nữa, độ phức tạp của pha tiền xử lý là hơn 2266. Vì số lượng dòng khóa lớn nhất có thể
được tạo ra với một khoá đơn và IV là 245, ta chọn k = 274 để giảm lượng dòng khoá đến số này.
Bây giờ độ phức tạp của giai đoạn giải mã là khoảng 2366. Phân tích này cho thấy rằng mật mã WG
được bảo vệ chống lại kiểu tấn công tương quan.
1.5 Công nghệ RFID và họ hệ mật WG [6], [8]
RFID đã trở thành một phần không thể thiếu trong cuộc sống hàng ngày của chúng ta. RFID được
coi là một công nghệ nhận dạng tự động không dây (AIDC). Bất kỳ đối tượng từ xa hoặc người
nào có thiết bị RFID được gắn vào có thể được xác định tự động. Thông tin trong hệ thống RFID

nói chung diễn ra giữa ba thành phần, thẻ RFID hoặc bộ thu, máy đọc RFID hoặc bộ thu phát và
hệ thống cơ sở dữ liệu back-end. Thẻ RFID được chia thành ba loại; thụ động, chủ động và bán
thụ động có thể hoạt động trên các băng tần số khác nhau; Tần số thấp (LF), tần số cao (HF), tần
số cực cao (UHF)và tần số vi sóng.
* Các loại tấn công vào thẻ RFID
 Tấn công từ chối dịch vụ: Với loại tấn công này, kẻ tấn công sẽ tạo ra những thẻ đặc biệt
để gây ra sự nhầm lẫn cho máy đọc khi xác thực các thẻ cá nhân.
 Giả mạo: Đây là một kỹ thuật mà kẻ tấn công sao chép dữ liệu thẻ và truyền cho máy đọc.
 Làm giả hoặc nhân bản: Kẻ tấn công sao chép dữ liệu của một thẻ vào một thẻ khác sau
đó sử dụng thẻ mà được sao chép đó để giao tiếp với máy đọc.
 Làm giả (sửa đổi) dữ liệu: Kẻ tấn công cố gắng xóa dữ liệu trên thẻ và làm cho nó không
thể truyền tin hoặc sửa đổi dữ liệu thẻ.

11


CHƯƠNG 2 CÁC HỆ MẬT WG-8 VÀ WG-16
2.1 Tổng quan hệ mật WG-8 [8]
2.1.1 Giới thiệu WG-8
WG-8 là phiên bản cải tiến của họ hệ mật mã dòng WG, áp dụng cho các thiết bị thông minh với tài nguyên
hạn chế. WG-8 kế thừa các ưu điểm của họ mã hóa dòng WG về tính ngẫu nhiên và độ mã hóa, đồng thời
có khả năng chống lại các các tấn công thường gặp ở mật mã dòng. So sánh các phần mềm chạy trên 2 thiết
bị vi điều khiển công suất thấp, một cài đặt WG-8 và một cài đặt các mã hạng nhẹ khác, xét trên tiêu chí
đảm bảo an toàn các phần mềm nhẹ, phần mềm cài đặt WG-8 mang lại hiệu quả cao hơn và tiêu thụ năng
lượng ít hơn. Phần này sẽ mô tả chi tiết cấu trúc hoạt động của mật mã dòng WG-8.
2.1.2 Thuật ngữ và ký hiệu
F2 = {0,1} là trường Galois với 2 phần tử 0 và 1.
p(x) = x8 + x4 + x3 + x2 + 1, đa thức nguyên thuỷ bậc 8 trên

2


.

Trường mở rộng F28 của F2 được định nghĩa bởi đa thức nguyên thuỷ p( x) với 28 phần tử. Mỗi
phần tử trong
của

28

28

được biểu diễn như 1 vector nhị phân 8 bít. Cho  là một phần tử nguyên thuỷ

với p(  ) = 0.

Tr ( x)  x  x 2  x 2  ....  x 2 , là hàm lưu vết
2

7

28

2

.

l ( x)  x 20  x9  x8  x7  x 4  x3  x 2  x   , là đa thức phản hồi của LFSR (cũng là 1 đa thức
nguyên thuỷ trên

28


).

WGP-8(xd ) = q(xd + 1) + 1, hoán vị WG-8 với d từ

28

28

với d là nguyên tố cùng nhau với

8

2 -1.
WGT-8(xd) = Tr(WGP-8(xd )) = Tr(x9 + x37 + x53 + x63 + x127), chuyển đổi WG-8 với d ,

28

2

8

với d là nguyên tố cùng nhau với 2 -1.
Cơ sở đa thức (PB) của

28

: Một cơ sở đa thức của

Cơ sở thông thường (NB) của


28

28

trên

2

là cơ sở có dạng {1, ,  2 ,...,  7 } .

: Một cơ sở thông thường của

28

trên

2

là cơ sở có dạng

{ , 2 ,..., 2 } , với    5 .
7

Ký hiệu  là toán tử cộng bít (phép XOR).
Ký hiệu  Toán tử nhân trên

28

.


2.1.3 Đặc tả cấu trúc mật mã dòng WG-8
Mật mã dòng WG-8 là 1 biến thể của họ mật mã dòng WG với khóa bí mật là 80-bit và véc tơ khởi
tạo là 80-bit; máy sinh lọc phi tuyến tính trên trường hữu hạn F28.

12


Mật mã dòng WG-8 gồm 1 thanh ghi dịch phản hồi tuyến tính (LFSR) 20 trạng thái với đa thức
phản hồi l(x) tiếp nối với mô-đun chuyển đổi WG-8 với decimation = 19, hoạt động trong 2 pha:
pha khởi tạo và pha thực thi.
Pha khởi tạo: Pha khởi tạo cặp khoá/IV của mã dòng WG-8 được minh họa như hình bên dưới.

WGP-8(x19): Mô đun hoán vị WG-8 với with Decimation d = 19
Hình 2.1 Pha khởi tạo của mật mã dòng WG-8

Kết quả của S19 sau khi chạy qua WGP-8(x19) được sử dụng để cập nhật trạng thái của thanh ghi
LFSR. Thanh ghi này được cập nhật theo quan hệ đệ quy sau:

Sk 20  (  Sk )  Sk 1  Sk  2  Sk 3  Sk 4  Sk 7  Sk 8  Sk 9  WGP  8  Sk1919  ,0  k  40
Sau pha khởi tạo khóa/IV, WG-8 chuyển sang pha thực thi và sau mỗi chu kỳ đồng hồ sẽ tạo ra
dòng khoá 1 bít.
Pha thực thi: Pha thực thi của WG-8 được minh họa ở hình bên dưới:

WGT-8(x19): Mô đun chuyển đổi WG-8 với Decimation d = 19
WGP-8(x19): Mô đun hoán vị WG-8 với Decimation d = 1057
Tr(·): Mô đun tính toán lưu vết
Hình 2.6 Pha thực thi của mật mã WG-8

13



Tại pha thực thi, trạng thái S19 được truyền qua mã chuyển đổi phi tuyến tính WG-8 với decimation d
= 19 (tức mô-đun WGT  8( x19 ) ), sau khi thực hiện quá trình này sẽ tạo ra dòng khóa. Hàm phản hồi
ở pha thực thi nằm ở LFSR và quan hệ đệ quy để cập nhật LFSR là:

Sk 20  (  Sk )  Sk 1  Sk 2  Sk 3  Sk 4  Sk 7  Sk 8  Sk 9 , k  40
Mô-đun chuyển đổi WG-8 bao gồm 2 mô-đun con:
(1)Mô đun con 1: mô đun WG-8 hoán vị (WGP-8(x19)), mô đun này hoán vị các phần tử của F28 .
(2)Mô đun con 2: mô đun tính toán vết Tr(.), mô-đun này nén chuỗi 8-bit đầu vào thành dòng khóa
đầu ra 1-bit.
Tính ngẫu nhiên của dòng khóa của WG-8
Dòng khóa sinh ra bởi mã hóa WG-8 có các đặc tính ngẫu nhiên sau:
1. Dòng khóa có chu kỳ 2160 - 1.
2. Dòng khóa cân bằng, nghĩa là số lượng bit-0 nhỏ hơn số lượng bit-1 chỉ 1, trong một chu kỳ của
dòng khóa.
3. Dòng khóa là một chuỗi bit tự tương quan lý tưởng cấp 2.
4. Dòng khóa có phân bố t-tuple lý tưởng (1 ≤ t ≤ 20): mọi đầu ra t-tuple có khả năng xảy ra với
xác suất như nhau trong một chu kỳ của dòng khóa.
5. Khoảng cách tuyến tính của dòng khóa có thể được xác định chính xác là 233.32.
2.1.4 Đánh giá các tấn công mật mã dòng WG-8
Tấn công đại số
Hệ số miễn dịch đại số của WGT-8(x19) bằng 4. Theo cuộc tấn công đại số, độ phức tạp về thời
gian và độ phức hợp dữ liệu để khôi phục lại trạng thái nội bộ của LFSR tương ứng là

7 160 
.

64  4 


log72

160 
24.65
 266.0037 và 
  2 . Để thực hiện được các cuộc tấn công đại số nhanh vào
 4 

mật mã dòng WG-8, ta cần phải tìm hai đa thức đa biến g và h với độ e và d (e h. Với WGT-8(x19) và e = 1, không tồn tại một đa thức đa biến h trong 8 biến với độ nhỏ hơn 7.
Do đó, đưa ra các cuộc tấn công đại số nhanh đòi hỏi phải có thêm bit dòng khóa với độ phức tạp
cao hơn. Trong các mạng 4G-LTE, kẻ tấn công khó có thể nhận được khoảng 224.65 bit dòng khóa
từ một phiên truyền thông. Ngay cả khi kẻ tấn công có thể có được nhiều bit khoá cố định và IV,
kẻ đó phải thực thi các phép toán với độ phức tạp về thời gian 266.0037, điều đó mới hoàn toàn đánh
bại cuộc tấn công này.
Tấn công tương quan
Cuộc tấn công tương quan giữa các dòng khóa sẽ không thực hiện thành công được, dựa vào tính
chất tự tương quan hai cấp lý tưởng của dòng khóa đã được chuẩn hoá bởi WG-8. Bây giờ ta xét
các cuộc tấn công tương quan nhanh, trong đó dòng khóa tạo ra bởi một mật mã dòng được coi là
một phiên bản lỗi của đầu ra LFSR. Đối với việc thực hiện một cuộc tấn công tương quan nhanh,
việc ước lượng tuyến tính của WGT-8(x19) có thể được sử dụng để lấy ma trận sinh của một mã
14


tuyến tính, có thể sử dụng giải thuật Maximum Likelihood Decoding (MLD) để giải mã. Cho f ( x)
là một hàm tuyến tính trong 8 biến, ta có:

Pr  WGT  8( x )( x)  f ( x) 
19


2


8

 108
28

 0.578125 .

Cho t = 3, số lượng dòng khóa (được biểu thị bởi N) cần thiết cho cuộc tấn công để thành công:
160 k
3

1

N   k.12.ln 2  3 . 2 .2

và độ phức tạp giải mã:

Cdec  2k .k .

2 ln 2

 2 

6

trong đó


   Pr(WGT  8( x19 )  f ( x))  0.5  0.078125 và k là số bit được khôi phục trạng thái bên
trong LFSR.
 Nếu chọn một giá trị k nhỏ (ví dụ k = 7), số bit cần thiết để thực hiện cuộc tấn công là
khoảng 260.31, điều này là không khả dĩ trong thực tế.
 Nếu chọn một giá trị của k lớn (ví dụ k = 80), số bit cần thiết để thực hiện cuộc tấn công là
khoảng 237.15. Tuy nhiên, độ phức tạp giải mã của cuộc tấn công là khoảng 2102.68, còn tồi
hơn so với việc tìm kiếm vét cạn.
Vì vậy, mật mã dòng WG-8 cũng an toàn chống lại các cuộc tấn công tương quan nhanh.
Tấn công vi phân
Pha khởi tạo trong thiết kế đầu tiên của mật mã dòng WG là có thể bị tấn công bởi cuộc tấn công
IV đã được chọn, kẻ tấn công có thể phân biệt một số bit đầu ra bằng cách xây dựng một dấu hiệu
dựa trên phân tích vi phân. Điểm yếu này đã được sửa trong thiết kế sau này bằng cách đặt môđun hoán vị WG ở vị trí cuối cùng của LFSR.
Mật mã dòng WG-8 hoán vị WGP-8 (x19) có phân bố vi phân là 8-uniform, tại pha khởi tạo, WGP8 được chạy 40 lần. Do đó, sau pha khởi tạo, kẻ tấn công sẽ rất khó phân biệt các bít dòng khóa
đầu ra vì vi phân trở càng nên phức tạp hơn và bao gồm hầu hết các bit khoá/IV. Vì vậy, WG-8 là
an toàn chống lại các cuộc tấn công vi phân.
2.2 Hệ mật WG-16 [1]
2.2.1 Giới thiệu WG-16
Mật mã dòng hướng bít WG-16 là một biến thể mới của mật mã dòng WG nổi tiếng như đã gửi tới
dự án eSTREAM. WG-16 thừa hưởng các thuộc tính ngẫu nhiên tốt của họ mật mã dòng WG như chu
kỳ, sự cân bằng, sự tương quan lý tưởng cấp hai, phân phối t-tupe lý tưởng và độ phức tạp tuyến tính
chính xác. Hơn nữa, WG-16 có thể chống lại các cuộc tấn công phổ biến nhất tấn công vào mật mã
dòng, bao gồm tấn công đại số, tấn công tương quan, tấn công khác biệt, tấn công phân biệt, tấn công
chuyển đổi Fourier rời rạc, và tấn công thương mại. Do đó, WG-16 là được đề xuất để đảm bảo truyền
thông trong các mạng 4G-LTE đang nổi lên. Mã hóa dòng WG-16 có đầu vào là một khóa 128-bit và
một véc tơ IV 128-bit và tạo ra một bit dòng khoá cho mỗi chu kỳ đồng hồ. Dòng khoá có thể được sử
dụng để mã hóa/giải mã thông tin liên lạc giữa một điện thoại di động và một base station trong các
mạng 4G-LTE.
2.1.2 Thuật ngữ và ký hiệu
Một số thuật ngữ và các ký hiệu sẽ được sử dụng để mô tả mật mã dòng WG-16, kiến trúc của nó
và các thuật toán bảo mật và toàn vẹn để mô tả đặc tính ngẫu nhiên và mật mã của WG-16.

-

F2 = {0,1}, trường Galois với 2 giá trị 0 và 1.
p(x) = x16+ x5 + x3 + x2 + 1, đa thức nguyên thuỷ mũ 16 trên

-

r(x) = x + x + x + x + 1, đa thức nguyên thuỳ mũ 64 trên
64

4

3

15

2.

2.


-

F216 là trường mở rộng của F2 được định nghĩa bởi đa thức p(x) với 216 phần tử. Mỗi phần
tử trong F216 được biểu diễn bằng 1 véc tơ nhị phân 16 bit. Cho ω là một phần tử nguyên
thuỷ của F216 sao cho p(ω) = 0.

-

F264 , trường mở rộng của F2 được định nghĩa bởi đa thức f(x) với 264 phần tử. Mỗi phần tử

trong F264 được biểu diễn bằng 1 véc tơ nhị phân 64 bit.

-

Tr ( x)  x  x 2  x 2  ....  x 2 là hàm lưu vết ánh xạ từ

-

l(x) = x + x + x + x + ω , đa thức phản hồi của LFSR (cũng là 1 đa thức nguyên thuỷ
trên F216 ).

-

q ( x)  x  x 2

-

WGP-16(xd) = q(xd + 1) + 1, hoán vị WG-16 với d ánh xạ từ

-

nhau với 2 -1.
WGT-16(xd) = Tr(WGP-16(xd)), chuyển đổi WG-16 với d ánh xạ từ

-

tố cùng nhau với 2 -1.
Cơ sở đa thức (PB) của F216 : Một cơ sở đa thức của F216 trên F2 là cơ sở có dạng {1, ω,

-


ω2, …, ω15}.
Cơ sở thông thường (NB) của F28: Một cơ sở bình thường của F216 trên F2 là cơ sở có dạng

-

{ , 2 ,..., 2 } , với θ = ω11
Ký hiệu  , toán tử nhân trên F216

2

32

31

11

15

22

1

9

 x2

11

 26 1


216

2

.

11

 x 2 2
6

11

1

 x2

11

 26 1

là đa thức hoán vị trên F216 .
216

216

, d nguyên tố cùng

16


216

2

, d nguyên

16

15

2.1.3 Đặc tả cấu trúc mật mã dòng WG-16
WG-16 với khóa bí mật 128-bit và vector khởi tạo IV 128-bit. Mật mã dòng WG-16 bao gồm một
LFSR 32 trạng thái với đa thức thông tin phản hồi l (x) tiếp nối là một mô đun chuyển đổi WG-16 với
decimation d = 1057. Do đó, nó có thể được coi là bộ lọc phi tuyến tính trên trường hữu hạn F216 . WG16 hoạt động theo hai pha, bao gồm pha khởi tạo và pha thực thi.
Pha khởi tạo:

WGP-16(x1057): Mô đun hoán vị WG-16 với Decimation d = 1057.
Hình 2.3 Pha khởi tạo của mật mã dòng WG-16
Pha khởi tạo khoá/IV của mật mã dòng WG-16 được thể hiện trong hình 2.3.
Sau pha khởi tạo khoá/ IV, tiếp đến là pha thực thi, dòng khóa 1-bit được tạo ra cho mỗi chu kỳ
đồng hồ.
16


Pha thực thi:
Pha thực thi của mật mã dòng WG-16 được minh họa trong Hình 2.4. Trong pha thực thi, 16-bit
trạng thái bên trong của S31 được gửi đến chuyển đổi phi tuyến tính WG-16 với decimation d =
1057 (tức là WGT-16(x1057) ) và đầu ra là dòng khoá 1-bit. Chỉ phản hồi trong pha thực thi là nằm
trong LFSR và quan hệ đệ quy để cập nhật trạng thái bên trong của LFSR được đưa ra bên dưới:

Sk 32  (11  Sk )  Sk 9  Sk 22  Sk 31 , k  64 .
Khi mô đun WGP  16( x

1057

) hoán vị các phần tử trên F216 , thì mô đun Tr (·) sẽ thực hiện việc nén

16-bit đầu vào thành một bít dòng khóa.

WGT-16(x1057): Mô đun chuyển đổi WG-16 với Decimation d = 1057
WGP-16(x1057): Mô đun hoán vị WG-16 với Decimation d = 1057
Tr(·): Mô đun tính toán lưu vết
Hình 2.7 Pha thực thi của mật mã WG-16
Tính ngẫu nhiên của dòng khoá WG-16
Dòng khoá được tạo ra bởi mật mã dòng WG-16 có các thuộc tính ngẫu nhiên sau:
1. Dòng khoá có chu kỳ là 2512-1.
2. Dòng khoá cân bằng, nghĩa là số lượng bit-0 nhỏ hơn số lượng bit-1 chỉ 1, trong một chu kỳ của
dòng khóa.
3. Dòng khoá là một chuỗi bit tự tương quan lý tưởng cấp hai.
4. Dòng khóa có phân bố t-tuple lý tưởng (1 ≤ t ≤ 32): mọi đầu ra t-tuple có khả năng xảy ra với
xác suất như nhau trong một chu kỳ của dòng khóa.
5. Khoảng cách tuyến tính của dòng khóa có thể được tính toán chính xác là 279.046.
2.1.4 Đánh giá các tấn công mật mã dòng WG-16
Tấn công đại số
Hệ số miễn dịch đại số của WGT-16(x1057) bằng 8. Theo cuộc tấn công đại số, độ phức tạp về thời
gian và dữ liệu cần để khôi phục lại trạng thái nội bộ của LFSR tương ứng là

7  512 
.


64  8 

log72

 512 
56.622
. Để thực hiện được các cuộc tấn công đại số nhanh vào
 2155.764 và 
2
8



mật mã dòng WG-16, ta cần phải tìm hai đa thức đa biến g và h với độ e và d (e 17


h. Với WGT-16(x1057) và e = 1, không tồn tại một đa thức đa biến h trong 16 biến với độ nhỏ hơn
15. Do đó, để thực hiện được các cuộc tấn công đại số nhanh đòi hỏi phải có thêm bit dòng khoá
với độ phức tạp cao hơn. Trong các mạng 4G-LTE, kẻ tấn công khó có thể nhận được khoảng 256.622
bit dòng khoá từ một phiên truyền thông. Ngay cả khi kẻ tấn công có thể có được nhiều bit cho
khoá và IV, kẻ đó phải thực hiện những phép tính với độ phức tạp về thời gian 2155.764 thì mới có
thể hoàn toàn đánh bại cuộc tấn công này trong các mạng 4G-LTE.
Tấn công tương quan
Bây giờ ta xét các cuộc tấn công tương quan nhanh, trong đó dòng khoá được tạo ra bởi một
mật mã dòng được coi là một phiên bản lỗi của đầu ra LFSR. Đối với việc thực hiện một cuộc tấn
công tương quan nhanh, việc ước lượng tuyến tính của WGT-16(x1057) được sử dụng để lấy ma trận
sinh của một mã tuyến tính, có thể sử dụng giải thuật MLD để giải mã.
Cho f ( x) là một hàm tuyến tính trong 16 biến, ta có:


Pr  WGT  16( x

1057

)( x)  f ( x) 

2


16

 32160 
216

 0.509277 .

Số lượng dòng khoá (được biểu thị bởi N) cần thiết để cuộc tấn công thành công là:
1

160 k
3

N   k.12.ln 2  3 . 2 .2
Độ phức tạp giải mã là: Cdec  2k .k .



2 ln 2

 2 


6



Với   Pr(WGT  16( x1057 )  f ( x))  0.5  0.009277 và k là số bit được khôi phục trạng
thái bên trong LFSR.
Nếu chọn một giá trị k nhỏ (k = 7), thì số bit cần thiết để thực hiện cuộc tấn công là khoảng 266.46,
điều này không thể thực hiện được trong mạng 4G-LTE.
Tương tự, nếu ta chọn một giá trị k lớn (k = 80), thì số bit cần thiết để thực hiện cuộc tấn công là
khoảng 243,3. Tuy nhiên, độ phức tạp giải mã của cuộc tấn công là khoảng 2121,31, còn tồi hơn so với
việc tìm kiếm đầy đủ. Vì vậy, mật mã dòng WG-16 cũng an toàn chống lại các cuộc tấn công tương
quan nhanh.
Tấn công vi phân
Pha khởi tạo của mật mã dòng WG là có thể bị tấn công bởi cuộc tấn công IV đã được chọn,
nơi kẻ tấn công có thể phân biệt một số bit đầu ra bằng cách xây dựng một dấu hiệu dựa trên phân
tích vi phân. Điểm yếu này đã được sửa trong thiết kế sau này bằng cách đặt mô đun hoán vị WG
ở vị trí cuối cùng của LFSR. Trong mật mã dòng WG-16 hoán vị WGP-16 (x1057) được thực thi 64
lần trong pha khởi tạo. Kết quả là tất cả các bit trạng thái bên trong của LFSR sẽ bị ảnh hưởng sau
64 chu kỳ đồng hồ và sẽ rất khó khăn cho việc kẻ thù phân biệt các bit dòng khoá vì sự khác biệt
trở nên phức tạp hơn và bao gồm hầu hết các bit key/IV. Vì vậy, WG-16 là an toàn chống lại các
cuộc tấn công vi phân.

18


CHƯƠNG 3 ĐỀ XUẤT CẢI TIẾN HỆ MẬT WG – UET VÀ CHƯƠNG TRÌNH DEMO
3.1 Đề xuất cải tiến hệ mật WG-UET
Như đã mô tả phương thức tấn công vi phân vào mật mã WG ở mục bên trên, trong phần này tôi sẽ thực
hiện phân tích chi tiết khả năng thành công của loại tấn công này khi tấn công vào WG với các cặp khoá

khác nhau, và đề xuất cải tiến tấn công vào hệ mật WG.
Tấn công WG với cặp khoá 80 bít và véc tơ IV 80 bít
Khoá K = k1, k2, k3, · · · , k80 và IV = IV1, IV2, IV3, · · · , IV80. Tiến hành tải các cặp khoá/ IV này vào
LFSR.
Tấn công IV đã được lựa chọn thực hiện như sau:
Với mỗi khoá bí mật K sẽ chọn ra 2 véc tơ IV là IV’ và IV’’ sao cho chúng đồng nhất 6 byte nhưng khác
'
''
'
''
IV17,...,24
 IV17,...,24
và IV49,...,56  IV49,...,56 , chúng thoả mãn điều kiện:

nhau ở 2 byte:

'
''
'
''
IV17,...,24
 IV17,...,24
 IV49,...,56
 IV49,...,56

Trạng thái S (i ) (1  i  11) tại bước j được ký hiệu là S j (i ) và ký hiệu khoá/IV tải là 0th. Sau đó tải khoá
và IV đã được chọn vào LFSR.
Ta có trạng thái S(2) và S(5): S '0 (2)  S ''0 (2)  S '0 (5)  S ''0 (5) , ta ký hiệu biểu thức này là vi phân

1=


S '0 (2)  S ''0 (2)  S '0 (5)  S ''0 (5) .
Bây giờ xác định vi phân trong 22 bước khi thiết lập khoá/IV. Bảng 3.1 biểu diễn các vi phân này.
Vi phân

2

 (  S '6 (11)  WG '(S '6 (11))  (  S ''6 (11)  WG '(S ''6 (11)) 

(  S '0 (5)  WG '(S '0 (5))  (  S ''0 (5)  WG '( S ''0 (5)) .
Tương tự ta có thể tính được
Giá trị của
Nếu

2

2

3

 (  S '0 (2)  WG '(S '0 (2))  (  S ''0 (2)  WG '(S ''0 (2)) .

'
''
''
, IV 49,....,56
, IV 9,''....24 , IV49,....,56
.
 3 được tính bởi k17,....,24 , k 49,....,64, IV9,....24


 3  0 thì các bít dòng khoá đầu tiên của IV’ và IV’’ giống nhau. Tính chất này sẽ được sử dụng

trong cuộc tấn công để tìm ra giá trị của
Giả sử, giá trị của

1

2



3

liệu có bằng 0 hay không.

 2  3  0 là phân phối ngẫu nhiên thì xác suất để

ra khoảng 229 cặp ( 2 , 3 ) với điều kiện

2

2

 3  0 sẽ là 2-29. Ta cần tạo

 3  0 . Sẽ có 3 byte IV và 1 byte vi phân được lựa chọn, vì thế

luôn có sẵn khoảng 224  255 / 2  231 cặp ( 2 , 3 ) , như vậy có thể dễ dàng tạo ra 229 cặp ( 2 , 3 ) thoả
mãn điều kiện trên.


19


Cải tiến tấn công vi phân
Xét vi phân tại 2 trạng thái S 22 (7) và S 22 (8) , các vi phân này là
Nếu

1

1

 2 3.

 2  3  0 thì các bít thứ 3, thứ 4 của 2 dòng khoá sẽ khác nhau, khoá k17,....,24 và k49,....,64 có thể

khôi phục với 2  229 

20

 1

  2
i 1

i 1



1
2i



30.4
  i  2 IV được chọn.


Thực hiện cuộc tấn công này, bằng việc quan sát các bít dòng khoá thứ 1,3,4 thì việc khôi phục khoá k17,....,24
và k49,....,64 cần khoảng 2  228  21.13  230.1 IV được chọn
Thiết lập vi phân tại trạng thái S 0 (3) và S 0 (6) và quan sát các bít thứ 2,3 của dòng khoá để có thể khôi
phục được 24 bít của khoá bí mật, k25,....,40 và k65,....,72 cần 230.4 IV được chọn.
Như vậy với khoảng 230.1  230.4  231.3 IV được chọn ta có thể khôi phục được 48 bít khoá bí mât (80 bít).
Dưới đây là bảng tấn công WG với các cặp khoá/IV có kích thước lớn hơn 80 bít
Khoá k bít (bit)

IV k bít (bit)

96
112
128

96
112
128

Số lượng bít khoá có thể khôi
phục (bit)
48
72
72 hoặc 96


Bảng 3.1 Bảng tấn công WG với các cặp khoá/IV có kích thước lớn hơn 80 bít
3.2 Bài toán và cài đặt chương trình
Bài toán
Xây dựng hệ thống RFID áp dụng mật mã WG-5. Tập trung vào xây dựng mô hình sử dụng mật mã WG-5
để xác thực lẫn nhau của máy đọc và thẻ thụ động trong hệ thống RFID.
Quy trình xác thực lẫn nhau giữa máy đọc và thẻ
Hệ thống RFID bao gồm máy đọc RFID, thẻ và máy chủ lưu trữ dữ liệu. Thẻ với khóa bí mật k0 80 bít và
một IDi duy nhất.
Phiên làm của RFID với mật mã WG-5 gồm 5 bước như hình bên dưới:

20


Hình 8 Sơ đồ giao thức xác thực lẫn nhau của RFID sử dụng WG-5

Bước 1: Máy đọc gửi yêu cầu cùng với một Rr ngẫu nhiên 40-bit tới thẻ.
Bước 2: Khi nhận được Rr, phía thẻ sẽ tạo ra Rt ngẫu nhiên 40 bít, tính toán IV  Rr

Rt . Sau đó

phía thẻ sẽ sử dụng đầu vào là IV và khóa bí mật k0 80 bít để chuyển tới WG5func và tạo ra các bít dòng
khóa có độ dài 160 bít. Phía thẻ tạo ra WGt có độ dài 40 bít và gửi cặp (WGt, Rt) tới máy đọc
Bước 3: Máy đọc sẽ tìm kiếm tất cả các thẻ IDi và khóa ki được lưu trên máy chủ cho tới khi tìm
được WG 't  WGt . Tóm lại, máy đọc sẽ kiểm tra MSB bít của chuỗi dòng khóa, nếu khớp, máy đọc sẽ
kiểm tra thêm các bít dòng khóa của chuỗi. Nếu MSB bít không khớp nó sẽ ngừng sinh thêm chuỗi dòng
khóa và chọn khoá mới.
Bước 4: Khi xác thực thẻ, máy đọc cập nhật cặp thẻ (k0' , WGs' ) . Để xác thực, máy đọc tạo ra WGr'
có độ dài 40 bit và gửi nó tới thẻ.
Bước 5: Khi phía thẻ nhận được WGr' , phía thẻ sẽ kiểm tra điều kiện WGr  WGr' . Nếu nó bằng
nhau thì máy đọc đã xác thực thành công. Sau khi máy đọc xác thực, phía thẻ sẽ cập nhật giá trị khóa hiện

tại k0 vào WGs. Khi đó, cả phía thẻ và máy đọc đều đã xác thực lẫn nhau.

21


KẾT LUẬN
Các kết quả đã đạt được
Thẻ RFID đã và đang được phát triển mạnh mẽ không chỉ trên thế giới mà tại việt nam cũng đang ngày
càng sôi động, hứa hẹn tạo một bước ngoặt mới cho thị trường thẻ với những ứng dụng và tiện ích vô cùng
độc đáo. Ngoài các cơ hội là những thách thức không hề nhỏ, đó chính là vấn đề bảo mật thông tin ngày
nay đang đặt lên hàng đầu.
Trong khóa luận này tôi đã trình bày được những kết quả sau:
- Trình bày giới thiệu nguyên tắc hoạt động cơ bản của họ hệ mật WG, phân tích các thuộc
tính ngẫu nhiên của dòng khoá, đánh giá các cuộc tấn công thành công vào họ hệ mật WG.
- Nghiên cứu về hệ mật WG-8 và WG-16.
- Ứng dụng mật mã WG-5 trong thẻ RFID.
Đặc tả cấu trúc mật mã dòng WG-16
o Initialization Phase
o Running Phase
o Tính ngẫu nhiên của dòng khoá WG-16
Đánh giá các tấn công mật mã dòng WG-16
o Tấn công đại số
o Tấn công tương quan
o Tấn công vi phân
o Tấn công hình lập phương
o Tấn công phân biệt
o Tấn công chuyển đổi Fourier rời rạc
o Tấn công TMD
- Trình bày và đánh giá, so sánh mức độ an toàn, tối ưu của hai hệ mật WG-16 và WG-8.
- Đánh giá cuộc tấn công vi phân vào họ hệ mật WG.

- Đánh giá ưu và nhược điểm, những thách thức và xu hướng phát triển mật mã này vào
các thiết bị nhỏ nhẹ được ở Việt Nam.
- Đề xuất cải tiến hệ mật WG - UET

HƯỚNG NGHIÊN CỨU TIẾP THEO
Chú trọng vào việc thiết kế thuật toán mã hóa, tìm ra các lỗ hổng tấn công và đề xuất cải tiến phù hợp với
cài đặt trong môi trường có tài nguyên hạn chế.

22


×