hai ứng dụng chính của các thuật toán mật m∙ • Mã hoá dữ liệu Data Encryption: chuyển đổi bản rõ plaintext thành bản mã ciphertext để che dấu nghĩa của nó • Ký dữ liệu Signing of Data:
Trang 1an toμn m¹ng th«ng tin
Mai Quèc Kh¸nh
khanhmq@fpt.vn
Bμi 2: c¬ së mËt m∙ häc
Trang 2Giíi thiÖu (1)
• Tæng quan vÒ c¸c thuËt to¸n mËt m·
• TÊn c«ng mËt m·
• Thuéc tÝnh cña c¸c thuËt to¸n m· ho¸
• Ph©n lo¹i c¸c thuËt to¸n m· ho¸
Trang 3Giíi thiÖu (2)
Trang 4hai ứng dụng chính của các
thuật toán mật m∙
• Mã hoá dữ liệu (Data Encryption): chuyển đổi bản rõ
(plaintext) thành bản mã (ciphertext) để che dấu nghĩa của nó
• Ký dữ liệu (Signing of Data): máy tính kiểm tra chữ
ký số (digital signature) của bản rõ hoặc bản mã để
xác nhận các thực thể nào đó có quyền truy cập dữ
liệu (đã đ−ợc ký) hay không
• Một số thuật toán mật mã có thể dùng cho cả hai mục
đích mã hoá và ký dữ liệu, một số thuật toán chỉ dùng cho một trong hai mục đích
Trang 5các thành phần của sơ đồ
mật m∙ truyền thống
• Bản rõ (plaintext): bản tin gốc đầu vào của thuật toán mã hoá
• Thuật toán mã hoá (encryption algorithm): thuật toán thực hiện các
phép thay thế và chuyển đổi trên bản rõ
• Khoá bí mật (secret key): cũng là một đầu vào của thuật toán mã
hoá Sự chuyển đổi và thay thế sẽ đ−ợc thực hiện phụ thuộc vào
khoá này
• Bản mã (ciphertext): bản tin đã đ−ợc xáo trộn ở đầu ra của thuật
toán Cùng một bản rõ, nh−ng mã hoá với hai khoá bí mật khác
nhau sẽ tạo ra hai bản mã khác nhau
• Thuật toán giải mã (decryption algorithm): thuật toán ng−ợc lại với
thuật toán mã hoá Với đầu vào là bản mã và cùng khoá bí mật sẽ tái tạo ra bản rõ ban đầu ở đầu ra cuả thuật toán giải mã
Trang 6• Theo phép toán sử dụng để chuyển đổi bản rõ thành bản mã:
– Thay thế (substitution): mỗi phần tử trong bản rõ đ−ợc ánh xạ (map) sang
một phần tử khác
– Hoán vị (transposition): các phần tử của bản rõ đ−ợc sắp xếp lại
• Theo số l−ợng khoá đ−ợc dùng:
– Nếu cả bên gửi và bên nhận sử dụng cùng một khoá, thì hệ thống đ−ợc
gọi là mã hoá đối xứng (symmetric), mã hoá khoá bí mật (secret-key),
mã hoá một khoá (single-key)
– Nếu bên gửi và bên nhận sử dụng hai khoá khác nhau, thì hệ thống đ−ợc
gọi là mã hoá bất đối xứng (asymmetric), mã hoá khoá công khai
(public-key), mã hoá hai khoá (two-key)
• Theo cách thức xử lý bản rõ:
– Mật mã khối (block cipher): xử lý mỗi lần một khối các phần tử đầu vào,
tạo ra một khối đầu ra với mỗi khối đầu vào
– Mật mã chuỗi (stream cipher): xử lý liên tiếp các phần tử đầu và, tạo ra
mỗi lần một phần tử đầu ra
Các tiêu chí phân loại mật m∙
Trang 7• Mật mã đối xứng (symmetric cryptography) dùng một
khoá cho mã hoá/giải mã hoặc cho ký/kiểm tra
• Mật mã không đối xứng (asymmetric cryptography)
dùng hai khoá khác nhau cho mã hoá/giải mã hoặc cho ký/kiểm tra
• Các hàm trộn mật mã (cryptographic hash functions)
sử dụng các khoá 0 (“khoá” ở đây không phải là một
đầu vào tách rời mà đ−ợc “gắn” hoặc “trộn” với dữ
liệu)
phân loại các thuật toán mật m∙
Trang 8tấn công mật m∙ - Thám m∙
• Tấn công mật mã (cryptography attack) hay còn gọi là thám mã (cryptanalysis) là quá trình cố gắng phát
hiện bản rõ (plaintext) hoặc khoá (key)
• Chiến lược được dùng bởi những người thám mã phụ thuộc vào tính chất của sơ đồ mã hoá và các thông tin
có thể có với người thám mã
• Những kiểu thám mã truyền thống (xem bảng trong slide tiếp theo)
• Những kiểu thám mã mới: thám mã vi sai, thám mã tuyến tính
Trang 9Kiểu tấn công Những điều người thám mã biết trước
Chỉ với bản mã
(ciphertext only)
• Thuật toán mã hoá
• Bản mã được giải mã
Bản rõ đã biết
(known plaintext)
• Thuật toán mã hoá
• Bản mã được giải mã
• Một hoặc nhiều cặp bản rõ-bản mã được tạo ra với khoá bí mật
Bản rõ đã chọn
(chosen plaintext)
• Thuật toán mã hoá
• Bản mã được giải mã
• Bản rõ đã chọn bởi người thám mã, cùng với bản mã tương ứng được tạo ra với khoá bí mật
Bản mã đã chọn
(chosen ciphertext)
• Thuật toán mã hoá
• Bản mã được giải mã
• Bản mã dự định bởi người thám mã, cùng với bản rõ tương ứng được giải mã với khoá bí mật
Bản text đã chọn • Thuật toán mã hoá
• Bản mã được giải mã
• Bản rõ đã chọn bởi người thám mã, cùng với bản mã tương ứng được tạo ra với khoá bí mật
•Bản mã dự định bởi người thám mã, cùng với bản rõ tương ứng được giải mã với khoá bí mật
Trang 10M∙ ho¸ vµ gi¶i m∙ (1)
Trang 11M∙ ho¸ vµ gi¶i m∙ (2)
Cã thÓ kho¸ ®−îc th×
còng cã thÓ më ®−îc
Ai còng kho¸ ®−îc nh−ng chØ cã ng−êi gi÷ ch×a kho¸ míi cã thÓ më ®−îc.
Trang 12mËT m∙ kho¸ c«ng khai
• Gi¶i mËt m· c¸c thuËt m· ho¸ kho¸ c«ng khai:
– Thùc tÕ khi kho¸ ®−îc bÞ lé th× cã thÓ bÞ khai th¸c – C¸c thuËt to¸n gi¶i m· kho¸ c«ng khai tËp trung vµo viÖc ph¸ vì b¶n th©n hÖ thèng mËt m· vµ gÇn víi c¸c nghiªn cøu to¸n häc thuÇn tuý h¬n c¸c
thuËt gi¶i m· mËt cæ ®iÓn
– C¸c h−íng chÝnh:
• TÝnh to¸n c¸c thuËt to¸n rêi r¹c
• T×m thõa sè cña c¸c sè nguyªn lín
Trang 13tấn công tổng lực (Brute force attack)
• Tấn công tổng lực thử mọi khoá có thể có cho đến khi nào tìm ra bản rõ hiểu được:
• Về mặt lý thuyết, mọi thuật toán mật mã đều có thể bị phá vỡ bằng cách tấn công tổng lực
• Trung bình, một nửa số chìa khoá có thể có sẽ phải
được thử
• Bảng dưới đây chỉ thời gian trung bình để tìm hết mọi chìa khoá với các kích thước khoá khác nhau
Trang 14Thời gian trung bình để tìm kiếm theo kiểu "vét cạn" để tìm ra hết mọi chìa khoá
Kích thước
khoá [bit]
Số lượng khoá
có thể có
Với tốc độ xử lý
1 phép giải mã / μs
Với tốc độ xử lý
10 6 phép giải mã / μs
128 2 128 = 3.4 * 10 38 2 127 μs = 5.4 x 10 24 năm 5.4 x 10 18 năm
168 2 168 = 3.7 * 10 50 2 167 μs = 5.4 x 10 36 năm 5.4 x 10 30 năm
Trang 15thế nào là số lớn?
• Bảng dưới đây liệt kê các con số tham chiếu so sánh với các độ lớn tương đối:
Trang 16thuộc tính của thuật toán m∙ hoá
• Khi mã hoá một bản rõ thành bản mã, cần quan tâm đến các thuộc tính sau:
– Truyền lỗi: đặc trưng cho ảnh hưởng của các lỗi bit xảy ra
khi truyền bản mã lên bản rõ được tái tạo
• Tuỳ theo thuật toán mã hoá, mỗi bit lỗi của bản mã có thể gây ra một hay nhiều bit lỗi trên bản rõ được tái tạo
– Đồng bộ hoá: đặc trưng cho ảnh hưởng của việc mất các
đơn vị dữ liệu bản mã lên bản rõ được tái tạo
• Một số thuật toá mã hoá không thể phục hồi bản rõ từ bản mã đã mất dữ liệu và do vậy cần phải đồng bộ lại trong trường hợp mất bản tin
• Các thuật toán khác tự động đồng bộ lại sau 0 đến n bit bản mã (n lớn hay nhỏ tuỳ thuộc vào thuật toán)
Trang 17Các thuật toán mật m∙ (tóm tắt)
Các thuật toán viết mật mã
đối xứng
Mật mã / giải mã
không đối xứng
Các hàm trộn mật mã
Giải mật mã
Các thuộc tính
Các chế độ hoạt động
DES
AES
RC4
Cơ bản
RSA
Diffie-Hellman
EIGamal
MDC’s / MACs
MD-5
SHA-1
CBC-MAC