Nhiều thuật toỏn tấn cụng khỏc cũng đó đƣợc chứng minh là khụng hiệu quả với cỏc hệ mật mó trờn đƣờng cong elliptic. Thuật toỏn tấn cụng chỉ số ỏp dụng hiệu quả để giải bài toỏn DLP nhƣng khụng ỏp dụng đƣợc cho EDLP. Giao thức trao đổi khúa trờn đƣờng cong elliptic tƣơng tự giao thức Diffie – Hellman cũng chống lại đƣợc tấn cụng của Western, Miller, và tấn cụng với thời gian là hàm mũ nhỏ của Adleman. Thuật toỏn tƣơng tự RSA của Demytko cũng an toàn với cỏc tấn cụng đẳng cấu
Chương 3. SỬ DỤNG MỘT SỐ HỆ MẬT MÃ KHÁC TRấN THIẾT BỊ CẦM TAY
3.1 Hệ mó mật RC4 (40 bit/ 128 bit) 3.1.1.Mụ tả hệ mật RC4
RC4 thuộc nhúm mó dũng với độ dài khúa khụng cố định. Trong sơ đồ của RC4 cú sử dụng 2 thanh ghi 8 bits (bộ đếm) là Q1 và Q2 và một khối thay thế (S-block) cú kớch thƣớc 256x8 (256 phần tử, kớch thƣớc mỗi phần tử là 8 bits). Giỏ trị của khối S là một húan vị nào đú của cỏc số từ 0 đến 255.
Thủ tục cơ bản nhất trong một hệ mó dũng bất kỳ là thủ tục sinh Gamma. Khi đó cú đƣợc chuỗi gama thỡ phộp mó húa chỉ là phộp cộng từng bit (XOR) bản rừ với chuỗi gama này. Ký hiệu S[i] là giỏ trị phần tử thứ i của khối S; γ là giỏ trị kế tiếp (cần đƣợc sinh) của chuỗi Gamma.
Trong RC4, để sinh chuỗi Gamma thi mỗi khi xuất hiện một xung cần thực hiện cỏc thao tỏc sau:
1.Tăng Q1 lờn 1: Q1 = (Q1 + 1) mod 256
2.Thay đổi giỏ trị của Q2: Q2 = (Q2 + S[Q1]) mod 256
3.Hoỏn đổi giỏ trị của 2 phần tử: S[Q1] ↔ S[Q2]
4.Tớnh T của 2 phần tử này: T = (S[Q1] + S[Q2]) mod 256
5.Gỏn giỏ trị cho γ: γ = S[T]
Trong quỏ trỡnh sử dụng, bộ đếm Q1 sẽ làm cho nội dung của khối S thay đổi chậm, cũn bộ đếm Q2 sẽ đảm bảo sự thay đổi này là ngẫu nhiờn.
3.1.2.Khởi tạo khối S
Ta đó núi rằng giỏ trị của khối S là một hoỏn vị nào đú của 256 số từ 0..255. Sau đõy là thuật toỏn để xỏc định húan vị đú.
1. Gỏn cho mỗi phần tử giỏ trị bằng chỉ số của nú: S[i] = i; i=0..255
2. Tạo một mảng k gồm 256 phần tử, mỗi phần tử cú kớch thƣớc 1 byte. Điền đầy bảng k bằng cỏc byte của khúa K: k[0]=K[0], k[1]=K[1], ... Trong trƣờng hợp cần thiết, khúa K đƣợc dựng lặp lại.
3. Khởi tạo biến đếm j: j=0; 4. Xỏo trộn khối S:
a/. i = 0..255
b/. j = (j + S[i] + k[i]) mod 256 c/. Hoỏn đổi giỏ trị: S[i] ↔ S[j]
3.1.3.Mó húa và Giải mó
Khi đó cú đƣợc Gamma thỡ việc mó húa và giải mó là vụ cựng đơn giản. Nhận xột rằng Gamma đƣợc tạo ra theo từng khối 8 bits, nờn kớch thƣớc của mỗi ký tự (symbol) trong alphabet mà chỳng ta sẽ sử dụng là 8. Quỏ trỡnh mó húa đƣợc thực hiện nhƣ sau:
Sinh một giỏ trị Gamma: γ
Đọc một ký tự Xi từ bản tin.
Thực hiện phộp XOR giữa Xi và γ sẽ thu đƣợc một ký tự của bản mó Yi: Yi = Xi γ
Do tớnh chất đối xứng của phộp XOR, quỏ trỡnh giải mó sẽ hũan tũan trựng với quỏ trỡnh mó húa. Trong thủ tục giải mó ở trờn, đầu vào là bản mó thỡ đầu ra sẽ thu đƣợc bản tin ban đầu.
3.1.4.Những ƣu điểm chớnh của hệ mó hoỏ RC4
Thuật toỏn đơn giản. í nghĩa của từng bƣớc rừ ràng, logic.
RC4 tỏ ra an toàn đối với cả 2 phƣơng phỏp thỏm cơ bản là thỏm tu yến tớnh và thỏm vi phõn (chƣa cú cụng trỡnh nào về thỏm RC4 đƣợc cụng bố). Số trạng thỏi mà RC4 cú thể cú là 256!ì256ì256 21700.
Cú thể thay đổi kớch thƣớc của alphabet. Trờn đõy ta xột trƣờng hợp alphabet cú 256 symbols (kớch thƣớc mỗi symbol là 8 bits). Ta hũan tũan cú thể ỏp dụng thuật toỏn RC4 cho alphabet với symbol 4 bits, 16 bits, ...