1. Mã hoá dòng
- Định nghĩa: Cho K là một không gian khóa của một hệ mã và k1k2 K
là một dòng khóa. Hệ mã này gọi là mã dòng nếu việc mã hóa trên chuỗi bản rõ
m1m2 bằng cách áp dụng lặp đi lặp lại của phép mã hóa trên những đơn vị thông
điệp bản rõ.
- Mã dòng có các đặc tính sau:
+ Kích thước một đơn vị mã hóa: gồm k bít. Bản rõ được chia thành các
đơn vị mã hóa: P → p0p1p2...pn-1 (pi: k bit)
+ Một bộ sinh dãy số ngẫu nhiên: dùng một khóa K ban đầu để sinh ra các
số ngẫu nhiên có kích thước bằng kích thước đơn vị mã hóa:
StreamCipher(K) → S = s0s1s2...sn-1 (si: k bit)
+ Mỗi số ngẫu nhiên được XOR với đơn vị mã hóa của bản rõ để có được
bản mã.
c0 = p0 s0, c1 = p1 s1...; C = c0c1c2...cn-1
- Ứng dụng của mã hoá dòng trong thực tế:
+ Dùng trong mạng GSM để bảo mật dữ liệu trong quá trình liên lạc giữa
máy điện thoại và trạm thu phát sóng vô tuyến.
+ Ứng dụng trong WEP, WPA, cung cấp bảo mật cho dữ liệu trên mạng
không dây.
2. AES: Cơ sở toán học, các bước xử lí
Cơ sở toán học
của AES: trong AES các phép toán cộng và nhân được thực hiện trên các byte
trong trường hữu hạn GF(28)
Phép cộng:
A = (a1 a2 a3 a4 a5 a6 a7 a8); B = (b1 b2 b3 b4 b5 b6 b7 b8)
C = A + B = (c1 c2 c3 c4 c5 c6 c7 c8),
trong đó: Ci = ai+bi mod 2,
1 ≤ i ≤ 8.
Phép nhân: Phép nhân được thực hiện trên GF(28) bằng cách nhân hai đa thức
rút gọn theo mođulo của một đa thức bất khả quy m(x) = x8 + x4 + x3 + x +1.
Các bước xử lí chính:
- Hàm băm không khóa
+ ĐN 1:Mật mã khối (n, r) là một mã khối xác định một hàm khả nghịch từ các
bản rõ n bit sang các bản mã n bit bằng cách sử dụng một khoá r bit. . Nếu E là
một phép mã hoá như vậy thì Ek(x) ký hiệu cho phép mã hoá x bằng khoá k.
+ ĐN 2: Cho h là một hàm băm có lặp được xây dựng từ một mật mã khối với
hàm nén thực hiện s phép mã hoá khối để xử lý từng khối bản tin n bit. Khi đó
tốc độ của h là 1/s.
- Hàm băm có khóa: là các hàm băm được sử dụng để xác thực thông báo và
thường được gọi là các thuật toán tạo mã xác thực thông báo (MAC).
- Đặc trưng:
Plaintext x thu được bản băm z = h(x) là duy nhất.
khó tìm được 2 thông điệp trùng giá trị băm.
Dễ dàng tính giá trị băm, nhưng khôi phục thông điệp từ giá trị băm rất khó
khăn.
- Tính chất:
Tính không va chạm yếu: cho trước một bức điện x, không thể tiến hành
về mặt tính toán để tìm ra một bức điện x’ x mà h(x’) = h(x).
Tính không va chạm mạnh: không có khả năng tính toán để tìm ra hai bức
thông điệp x và x’ mà x x’ và h(x) = h(x’)
Tính một chiều: cho trước một bản tóm lược thông báo z, không thể thực
hiện về mặt tính toán để tìm ra thông điệp ban đầu x sao cho h(x) = z .
4. Hoạt động của Kerberos
AS = (authentication server), TGS = (ticket granting server), SS =(service server).
1. user nhập tên (ID) và mật khẩu tại máy tính của mình (máy khách).
2. software máy khách thực hiện hàm băm một chiều trên mật khẩu nhận được.
Kết quả dùng làm khóa bí mật của người sử dụng.
3.soft máy khách gửi một gói tin (không mật mã hóa) tới AS để yêu cầu dịch vụ.
Nội dung của gói tin đại ý: "user x muốn sd dv ". chú ý private key and pass
không send toAS.
điểm yêu cầu và được mật mã hóa với "Khóa phiên máy chủ/máy khách".
9. SS giải mã "Vé" bằng khóa bí mật của mình và gửi gói tin sau tới người sử
dụng để xác nhận định danh của mình và khẳng định sự đồng ý cung cấp dịch vụ:
Gói tin H: Thời điểm trong gói tin yêu cầu dịch vụ cộng thêm 1, mật mã hóa với
"Khóa phiên máy chủ/máy khách".
10. Máy khách giải mã gói tin xác nhận và kiểm tra thời gian có được cập nhật
chính xác. Nếu đúng thì người sử dụng có thể tin tưởng vào máy chủ SS và bắt
đầu gửi yêu cầu sử dụng dịch vụ.
11. Máy chủ cung cấp dịch vụ cho người sử dụng.
5. RSA
- Chọn ngẫu nhiên 2 số nguyên tố lớn p và q. Tính số làm modulo của hệ thống:
N = p.q
4
- Tính Ф(N)=(p-1)(q-1) .
- Chọn ngẫu nhiên khoá mã e trong đó 1
L0R0, trong đó L0 gồm 32 bit đầu và R0 là 32 bit cuối.
B2: Sau đó tính toán 16 lần lặp theo một hàm xác định. Ta sẽ tính LiRi, 1≤
i ≤16 theo quy tắc sau: Li = Ri-1; Ri = Li-1 f(Ri-1, ki)
Trong đó:
là phép loại trừ của hai xâu bit
f là một hàm sẽ được mô tả ở sau
k1, k2, …, k16 là các xâu bit có độ dài 48 được tính như 1 hàm của khóa k
(ki chính là một phép chọn hoán vị bit trong k).
Một vòng của phép mã hóa được mô tả như sau:
B3: Áp dụng phép hoán vị ngược IP-1 cho xâu bit R16L16, ta thu được bản
mã y. Tức là y = IP-1(R16L16) . Hãy chú ý thứ tự đã đảo của L16 và R16
Sơ đồ mã hoá DES
6
9.
- Tính chất của hàm băm không có khoá:
Tính chất nén
Tính dễ dàng tính toán
Tính khó tính toán nghịch ảnh
Khó tìm nghịch ảnh thứ hai: với x cho trước thì không có khả năng tìm x’
x sao cho: h(x) = h(x’)
Tính kháng va chạm: không có khả năng về tính toán để tìm hai đầu vào
khác nhau bất kì x’ và x để h(x) = h(x’)
- Nguyên tắc làm việc của hàm băm có khoá:
Input: Dữ liệu x, mật mã khối E, khoá MAC bí mật k của E.
Output: n bit MAC trên x (n là độ dài khối của E)
(1) Độ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
Two-Party Authentication (Xác thực 2 bên)
Một thực thể, được gọi là người khởi xướng, bắt đầu quá trình xác thực bằng cách phát
hành một cuộc gọi API trả về một thông báo xác thực
Tin xác thực này được gửi đến thực thể ngang hàng từ xa, được gọi là người trả lời
Khi người trả lời nhận được tin nhắn, nó tạo ra một cuộc gọi API tương ứng mà xác
minh tính hợp lệ của các thông báo xác thực đến
Tùy thuộc vào các thông số xác thực, hoặc là một cách xác thực có thể được thực hiện
Key Distribution(Phân phối khóa)
Để có được một khóa bí mật được chia sẻ, hai bên đầu tiên phải tham gia vào
một cuộc đối thoại với một kryptokinght AS
Toàn bộ quá trình liên hệ với AS, chứng minh danh tính của một người, và nhận
được chìa khóa, được ẩn từ các đơn vị sử dụng kryptoknight. nói cách khác, đã hoặc
không phải là hai bên Share một khóa, họ thực hiện cuộc gọi API cùng với chính xác
các thông số tương tự. một khi một phím được ban hành và recevied, nó được lưu trữ
để sử dụng sau.
Authentication of origin and contents of data (Xác thực nguồn gốc và nội dung của
dữ liệu)
Xác thực thành công
Một phiên kryptoknight được đặc trưng bởi khóa bí mật chung của họ. phiên này
các máy chủ như là một bối cảnh giao tiếp an toàn hơn nữa giữa hai bên. nó sẽ bị chấm
dứt hoặc rõ ràng, bởi một trong các bên giao tiếp gửi cho bên kia một yêu cầu kết thúc
phiên, hoặc ngầm khi hết thời hạn của khóa chia sẻ.
11. RC4
RC4 : Đơn vị mã hóa của RC4 là một byte 8 bít. RC4 dùng 2 mảng S và T gồm
256 số nguyên 8 bít. Khóa K là một dãy gồm N số nguyên 8 bít với N có thể lấy
giá trị từ 1 đến 256. Bộ sinh số mỗi lần sinh ra một byte để sử dụng trong phép
XOR. Hai giai đoạn của RC4 là
• Giai đoạn khởi tạo:
/* Khoi tao day S va T*/
𝐾3
𝐾𝑛−1
P → C1 → C2 → … → Cn
Trong đó bản rõ P và các bản mã Ci được chia thành nửa trái và nửa phải:
P = (L0, R0)
Ci = (Li, Ri) i = 1, 2, …n
Quy tắc biến đổi các nửa trái phải này qua các vòng được thực hiện như
sau:
Li = Ri-1
Ri = Li-1 F(Ri-1, Ki)
Ki là một khóa con cho vòng thứ i. Khóa con này được sinh ra từ khóa K
ban đầu theo một thuật toán sinh khóa con (key schedule):
K → K1 → K2 → … → Kn
F là một hàm mã hóa dùng chung cho tất cả các vòng. Hàm F đóng vai trò
như là phép thay thế còn việc hoán đổi các nửa trái phải có vai trò hoán vị. Bản
mã C được tính từ kết xuất của vòng cuối cùng:
C = Cn = (Ln, Rn)
9
13. Thuật toán MD5
Mô tả thuật toán
- Đầu vào: là một thông điệp có độ dài tuỳ ý
- Đầu ra là một chuỗi có độ dài cố định là 128 bit.
- Thuật toán được thiết kế để chạy trên các máy tính 32 bit.
Thuật toán:
- Thông điệp đầu vào có độ dài b bit bất kỳ. Biểu diễn các bit dưới dạng như sau:
- Tổng quan: Các giải thuật mật mã khóa công khai sử dụng một khóa để mật
hóa và một khóa khác có liên quan để giải mật. Chúng có các đặc điểm:
Không thể tính lại khóa giải mã nếu biết trước giải thuật mã hóa và khóa
dùng mã hóa.
Một trong hai khóa đều có thể dùng để mã hóa và khóa còn lại dùng đề giải
mã
- Giải thuật khóa công khai gồm 6 thành phần:
Bản rõ: thông điệp có thể đọc, đầu vào của giải thuật
Giải thuật mật hóa: thuật toán dùng để mã hóa
Khóa công khai và bí mật: một cặp khóa được chọn sao cho 1 khóa dùng
để mã hóa và 1 khóa dùng để giải mã.
Bản mã: thông điệp đầu ra ở dạng không đọc được, phụ thuộc vào bản rõ
và khóa. Nghĩa là với cùng một thông điệp, 2 khóa khác nhau sinh ra 2
bảng mã khác nhau
Giải thuật giải mật: thuật toán dùng để giải mã
- Ưu nhược điểm
Ưu:
+ Kích thước khóa lớn
+ Độ an toàn cao
+ Dễ dàng trong việc quản lý và phân phối khóa
Nhược:
+ Do kích thước khóa lớn nên thời gian mã hóa/ giả mã sẽ chậm
+ Độ phức tạp thuật toán cao
15. Ứng dụng Smart Cards cho điện thoại di động: thẻ SIM
- Khóa xác thực có độ dài 128-bit để xác thực trong mạng di động. Mỗi SIM
giữ 1 khóa K duy nhất (không giống với các SIM khác). Khóa K cũng được
luu trong cơ sở dữ liệu tại nhà cung cấp mạng.
- Thẻ SIM được thiết kế để không cho phép đọc (lấy) được khóa K trực tiếp
thông qua các điểm tiếp xúc của thẻ. Thay vào đó, thẻ SIM cung cấp 1 chức
năng chạy thuật toán GSM, chức năng cho phép truyền dữ liệu vào thẻ SIM
16. Hệ khoá bí mật
- Tổng quan:
Khóa phải được giữ bí mật giữa người gửi và người nhận
Một khóa có thể áp dụng để truyền tin nhiều lần
Kích thước khoá tương đối ngắn.
Đảm bảo tính bí mật : Bản mã C được gửi đi trên kênh truyền. Do bản mã
C đã được biến đổi so với bản rõ P, cho nên những người thứ ba can thiệp
vào kênh truyền để lấy được bản mã C, thì không hiểu được ý nghĩa của
bản mã.
Đảm bảo tính toàn vẹn dữ liệu: Nếu Trudy chặn được bản mã C của Alice
và sửa C thành CT, thì xác suất để PT là văn bản có nghĩa cũng rất bé. Và
Bob biết được C đã bị sửa đổi. Đối với mã hóa hiện đại cũng vậy, nếu
Trudy chọn CT là một dãy bít bất kỳ thì bản rõ PT cũng là một dãy bít lộn
xộn, không có cấu trúc ý nghĩa.
Tính xác thực (authentication) của mã hóa đối xứng: Mã hóa đối xứng có
thể chống lại các hình thức tấn công sửa đổi thông điệp, mạo danh và phát
lại thông điệp.
Tính không từ chối (non-repudiation) của mã hóa đối xứng: Mặc dù mã
hóa đối xứng thỏa mãn tính bảo mật nhưng mã hóa đối xứng lại không thỏa
mãn được tính không từ chối. Vì khóa của mã hóa đối xứng chỉ có hai
người biết, nên nếu khóa K bị tiết lộ thì không có cơ sở để quy trách
nhiệm cho Alice hay Bob làm lộ khóa.
12
- Thành phần:
Bản rõ P (plaintext)
Thuật toán mã hóa E (encrypt algorithm)
Khóa bí mật K (secret key)
Bản mã C (ciphertext)
t là số thứ tự của chu kì
A,B,C,D,E là 5 word(32 bit) của trạng thái
F là hàm phi tuyến (thay đổi tùy theo chu kì)