Các thuật ngữ.. Cryptography: Ngành khoa học về mã hóa và giải mã thông tin Cryptanalysis: Việc nghiên cứu phương pháp để giải mã thông tin mà khôngcần khóa Key: Thành phần trong qu
Trang 1MÃ HÓA VÀ GIẢI MÃ THÔNG TIN
Trang 3Cryptography
Trang 4 Sender: Người gởi thông tin hay dữ liệu
Receiver: Người nhận dữ liệu
Plaintext (cleartext): Thông tin trước khi được mã hóa
Ciphertext: Thông tin đã được mã hóa
Encryption: Quá trình mã hóa che dấu nội dung của dữ liệu (plaintext ciphertext)
Decryption: Quá trình lấy lại thông tin ban đầu (ciphertext plaintext)
Trang 5Các thuật ngữ
Cryptography: Ngành khoa học về mã hóa và giải mã thông tin
Cryptanalysis: Việc nghiên cứu phương pháp để giải mã thông tin mà khôngcần khóa
Key: Thành phần trong quan trọng trong mã hóa và giải mã
Cryptographic algorithm: là các hàm toán học được sử dụng cho việc mã hóa
hoặc giải mã thông tin
CryptoSystem: thuật toán mã hóa, khóa, plaintext, ciphertext
Trang 6Receiver
Trang 7Mục tiêu của mã hóa
Trang 8 Các thuật toán khác nhau cung cấp độ an toàn khác nhau
Tại một thời điểm tính an toàn phụ thuộc
Nếu công sức, chi phí cần thiết để phá vỡ một thuật tóan lớn hơn giá trị của thông tin mã hóa
Nếu thời gian dùng để phá vỡ một thuật toán quá lâu
Dữ liệu cần thiết để phá vỡ một thuật toán quá lớn
Sự bảo mật trong mã hóa phụ thuộc nhiều yếu tố: thuật toán, độ lớn khóa…
Trang 9Theo số lượng khóa
Symmetric (Private Key Cryptography)
Asymmetric (Public Key Crytography)
Theo cách thức
Mã hóa dòng (Stream Cipher)
Mã hóa khối (Block Cipher)
Trang 11Mã hóa cổ điển
Các phương pháp mã hóa cổ điển không dùng khóa
Thuật toán đơn giản dễ hiểu
Cho phép ta hình dung cách tiếp cận cơ bản với mã hóa đối xứng được sử
dụng ngày nay
2 phương pháp nổi tiếng:
Substitution (mã hóa thay thế)
Transposition (mã hóa hoán vị)
Trang 13Mã hóa thay thế Ceasar Cipher
Là phương pháp mã hóa thay thế đầu tiên, được miêu tả bởi hoàng đế Ceasar
Cipher
Thay thế từng ký tự từ A-Z bằng ký tự đứng thứ k(=3) sau nó (phép dịch)
Mã hóa cổ điển
Trang 15Ceasar Cipher (tt)
Phép dịch 26 lần giống với phép dịch 0 lần Giới hạn phạm vi phép dịch từ 0-25
Xây dựng thuật toán bằng cách đánh số cho từng ký tự:
Công thức cho Ceasar Cipher
Trang 17Mã hoán vị
Ý tưởng: giữ nguyên không thay đổi Plaintext, chỉ sắp xếp lại vị trí của các ký tự
để cho ra Ciphertext
Hoán vị vị trí của các ký tự theo từng nhóm với các quy tắc nhất định
Ví dụ: bản rõ “we are discovered”
w e a r e
d i s c o
v e r e dbản mã “WDVEIEASRRCEEOD”
Mã hóa cổ điển
Trang 18Mã hoán vị cải tiến 1
dùng một khóa để hoán vị các cột trước khi kết xuất bản mã
Ví dụ: bản rõ “we are discovered”
E I Q T U
e a w r e
o s d c i
d r v e e
Trang 19Mã hóa đối xứng
Trang 20 Secret Key Cryptography (Private Key Cryptography)
Sử dụng cùng 1 khóa cho cả hai quá trình mã hóa và giải mã
Trang 21Mã hóa đối xứng (tt)
Trao đổi, thỏa thuận về thuật toán được tiến hành công khai
Thỏa thuận về khóa trong việc mã hóa và giải mã phải được tiến hành bí mật:
Nếu Sender không gởi khóa cho Receiverkhông giải mã đượckhông hiểu nội dung tài liệu nói gì
Khóa phải được trao đổi theo một kênh bí mật
Bị sniffer mất khóamất thông tin
Trang 22 Các bước tiến hành trao đổi thông tin
Bước 1 có thể thực hiện công khai, bước 2 bắt buộc phải thực hiện một cách
bí mật A và B phải tuyệt đối tin tưởng nhau
Trang 23Mã hóa đối xứng (tt)
Mã hóa đối xứng có thể phân thành 2 loại:
◦ Loại 1 (Mã hóa khối):
◦ Tác động trên plaintext theo từng nhóm (khối) bit
◦ Thuật toán được áp dụng gọi là Block Cipher
◦ Từng khối dữ liệu trong văn bản ban đầu được thay thế bằng một khối dữ liệu khác có cùng
độ dài
◦ Kích thước chung của 1 block là 64 bit.
◦ Loại 2 (Mã hóa dòng):
◦ Tác động trên plaintext theo từng bit một.
◦ Thuật toán được áp dụng gọi là Stream Cipher
Trang 24 DES: Data Encyption Standard
◦ Mã hóa theo từng khối 64 bit, sử dụng 1 khóa 64 bit
◦ Thực tế chỉ dùng 56 bit
◦ Dễ bị phá vỡ (24h)
Triple DES (3DES)
◦ Mã hóa-giải mã-mã hóa, sử dụng 3 khóa
AES : Advanced Encryption Standard
◦ AES thay thế cho DES
◦ Hỗ trợ độ lớn nhỏ nhất cho khóa là 128, 192 và 256 bits
Trang 25Phân phối khóa đối xứng
Phương pháp 1:
Trao đổi vật lý (bằng tay) các khóa
trước Các khóa bí mật được chuyển
giao trực tiếp cho các bên
Phương pháp 2:
Sử dụng trung tâm phân phối
khóa tự động
Trang 26Ưu điểm
◦ Tốc độ thực hiện nhanh
Nhược điểm
◦ Khóa phải được trao đổi theo kênh bí mật
◦ Nếu mất khóa thì thông tin có thể bị lấy cắp hoặc giả mạo
◦ Phải thay đổi khóa định kỳ
◦ Khi số lượng người sử dụng tăng thì số lượng khóa đã dùng cũng tăng nhanh.
Trang 27Mã hóa bất đối xứng
Đảm bảo tính
bí mật
Trang 28 Tên gọi khác của mã hóa bất đối xứng
◦ Mã hóa khóa công khai – Public Key Cryptography
Sử dụng hai khóa khác nhau không suy diễn được cho nhau
◦ Một khóa để mã hóa dữ liệu (công khai)
◦ Khóa còn lại để giải mã (bí mật)
Dữ liệu được mã hóa bằng khóa công khai của người nhận
Chỉ có thể được giải mã bằng khóa riêng của người nhận
Trang 29Mã hóa bất đối xứng (tt)
Encryption key được gọi là Public key
Decryption key được gọi là Private key
Bước 1 và 2 được tiến hành công khai
Trang 30 Ưu điểm
◦ An toàn hơn so với mã hóa đối xứng
◦ Người mã hóa không thể giải mã được
Trang 32 Hàm băm (hash function) là giải thuật
nhằm sinh ra các giá trị băm tương ứng
với mỗi khối dữ liệu
Giá trị băm (hash value) đóng vai gần như
một khóa để phân biệt các khối dữ liệu
Mục tiêu: các hàm băm (H) tạo ra bản nhận dạng (fingerprint) cho một tập tin, thông điệp hay một khối dữ liệu truyền đi nhằm kiểm tra tính toàn vẹn
Trang 34 H(x) có thể áp dụng với các x có chiều dài bít khác nhau
Kích thước của output h = H(x) cố định và nhỏ
Từ h không thể tìm lại được x
Tính chống trùng: không tìm được x≠ y bất kỳ sao cho H(x) = H(y)
Trang 35Yêu cầu của tính chống trùng: Về mặt thời gian, không thể tìm được hai
Trang 36 Kích thước của giá hash cần lớn để đảm bảo tính chống trùng.
Nếu kích thước của hash là 8 bít Chỉ cần thử 256+1 trường hợp là cóthể tìm ra 2 giá trị x,y cùng giá trị hash
Dùng bài toán “Ngày sinh nhật” Kích thước của Hash phải từ 128 bíttrở lên để bảo đảm an toàn
Trang 37Các hàm băm phổ biến
• MD5: kích thước 128 bít, do Ron Rivest xây dựng
o Năm 1998 đã tìm thấy 2 thông điệp có cùng giá trị băm MD5
• SHA-1: kích thước 161 bít, chuẩn quốc gia Hoa Kỳ
• SHA-256: kích thước 256 bít
• SHA-512: kích thước 512 bít
Trang 381) Download file
Internet
download
Nếu chất lượng đường truyền không tốt, file download về máy client
có thể bị sai so với file gốc trên máy chủ
Làm sao người download biết file đã bị hỏng?
Dùng hàm băm
Trang 40HX so sánh bằng mắt HY
Nếu HX = HY theo tính chất hàm hash: File X = File Y
quá trình download không xảy ra lỗi
Trang 412) Lưu trữ mật khẩu trong database
Các phần mềm thường lưu trữ mật khẩu người sử dụng
trong database
Nếu mật khẩu không được mã hóa có thể lộ mật khẩu
do hacker hay do administrator
Chỉ cần lưu trữ giá trị hash của mật khẩu
Trang 422) Lưu trữ mật khẩu trong database
Các phần mềm thường lưu trữ mật khẩu người sử dụng trong database
Nếu mật khẩu không được mã hóa có thể lộ mật khẩu do hacker hay
do administrator
Lưu trữ giá trị hash của mật khẩu (mã hóa mật khẩu với hàm băm)
Trang 43 Chỉ cần lưu trữ giá trị hash của mật khẩu
Trang 45Chữ ký điện tử
Chữ ký: Người gửi chịutrách nhiệm đã gửi vănbản (Tính không chối bỏ)
Trang 46 Chữ ký điện tử (Digital Signatures ):
Chuỗi bit kèm vào văn bản gọi là chữ ký điện tử
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ả của văn bản và giúp người nhận kiểm tra tính toàn vẹn của nội dung văn bản gốc
Trang 47Chữ ký điện tử (tt)
Chữ ký thông thường
◦ Xác thực, đáng tin cậy
◦ Không thể làm giả được
◦ Người khác không thể sử dụng lại chữ ký
◦ Không thể thay đổi văn bản đã ký (tính chứng thực)
◦ Người ký không thể chối bỏ chữ ký của mình (tính chống chối bỏ)
Chữ ký điện tử cũng phải thỏa mãn các tính chất trên
Trang 48 Sử dụng mã hóa khóa công khai và hàm băm 1 chiều:
1) Bên gửi A tạo ra hash value HA của thông điệp M
2) A ký hash value HA bằng khóa bí mật KRA của mình
3) Gởi thông điệp (M) và chữ ký (DS) cho bên nhận B
4) B dùng khóa công khai của KUA để giải mã DS, tìm ra hash value
5) B so sánh giải mã được từ DS với hash value sinh ra từ thông tin
Trang 51 Việc lựa chọn khóa phụ thuộc vào hoàn cảnh
Bảo vệ bí mật kinh doanh
Bảo vệ bí mật quốc gia
Trang 52 A gởi thông điệp cho B và mã hóa theo phương pháp khóa công khai
A cần mã hóa thông điệp bằng public key của B
Hacker tự sinh 1 cặp khóa public key/private key
Đưa cho A public key public key của B
A dùng public key giả hacker đọc đựợc thông tin mà A gởi đi.
Trang 53Tổ chức chứng nhận khóa công khai (tt)
Vấn đề được giải quyết nếu có bên thứ 3 được tin cậy gọi là C, đứng ra chứng
nhận public key
Những public key được C chứng nhận gọi là chứng nhận điện tử (public key certificate hay digital certificate)
Một chứng nhận điện tử được xem như là một “CMND”, “passport” Nó được 1
tổ chức tin cậy tạo ra như VeriSign, Entrust, CyberTrust,
Được gọi là tổ chức chứng nhận khóa công khai Certificated Authority (CA)
Trang 54Cấu trúc của 1 CA
◦ Issuer: tên của CA tạo ra chứng nhận
◦ Period of validity: ngày hết hạn của chứng nhận
◦ Subject: bao gồm những thông tin về thực thể được chứng nhận
◦ Public key: khóa công khai được chứng nhận
◦ Signature: do private key của CA tạo ra và đảm bảo giá trị của chứngnhận
Trang 55Cơ sở hạ tầng khóa công khai
Public Key Infrastructure
Là một tập hợp bao gồm phần cứng, phần mềm các chính sách và các thủ tục dùng để thiết lập 1 phương thức an toàn trong việc
truyền nhận dữ liệu cùng với sự trợ giúp của “digital certificates”.
PKI chủ yếu điều khiển việc tạo lập, quản lý và thu hồi
“certificates” được sử dụng trong cơ chế mã hóa công khai.
Trang 56 Chức năng:
◦ Tạo lập và xác nhận tính hợp lệ của digital sign
◦ Đăng ký người dùng mới
◦ Xác thực người dùng và phân phối certificates
◦ Thu hồi các certificates hết hạn
◦ Tạo khóa riêng và công khai cho PKI client
Trang 57PKI (tt)
Các thành phần của PKI
◦ PKI client
◦ Certification Authority (CA)
◦ Registration Authority (RA)
◦ Digital Certificates
◦ Certificate Distribution System