LỜI MỞ ĐẦUMã hóa dựa trên chữ ký điện tử Electronic Signatures hiện nay đang đượcxem là một công nghệ mật mã mới có nhiều thuận tiện trong thực thi ứng dụng sovới các thuật toán khóa côn
Trang 1THIEMPHACHANH THANOUNGSING
NGHIÊN CỨU CHỮ KÝ ĐIỆN TỬ VÀ ỨNG DỤNG VÀO BÀI TOÁN KIỂM SOÁT QUYỀN TRUY NHẬP TRONG HỆ THỐNG TRUYỀN HÌNH TRẢ TIỀN
CHUYÊN NGÀNH: HỆ THỐNG THÔNG TIN
MÃ SỐ: 60.48.01.04
LUẬN VĂN THẠC SỸ KỸ THUẬT
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS PHẠM THẾ QUẾ
HÀ NỘI - 2014
Trang 2Cho phép tôi được bày tỏ lòng cảm ơn chân thành tới những người đã giúp đỡtôi trong thời gian nghiên cứu hoàn thành luận văn này
Trước hết xin được bày tỏ lòng biết ơn sâu sắc tới Thầy giáo hướng dẫn
TS Phạm Thế Quế đã tận tình hướng dẫn và giúp đỡ tôi hoàn thành luận văn.Xin bày tỏ lòng biết ơn đối với sự giúp đỡ của các Thầy, Cô giáo trong Họcviện Công nghệ Bưu chính Viễn thông, đặc biệt là các Thầy, Cô tham gia giảng dạylớp Cao học hệ thống thông tin đã cung cấp kiến thức tạo tiền đề cho tôi hoàn thànhluận văn
Xin chân thành cám ơn Ban giám hiệu trường Trung học Bưu chính Viễn thôngcùng các đồng nghiệp đã luôn tạo điều kiện thuận lợi, hỗ trợ tôi trong quá trình thựchiện luận văn
Cuối cùng, xin chân thành cám ơn gia đình và bạn bè đã động viên, quan tâm,giúp đỡ tôi hoàn thành luận văn này
Hà Nội, tháng 3 năm 20014
Thiemphachanh
Trang 3dung luận văn là kết quả nghiên cứu của bản thân tôi, không sao chép của bất kỳluận văn nào.
Trang 4CHƯƠNG 1: HỆ MẬT MÃ KHÓA CÔNG KHAI 3
1.1Mật mã khóa công khai RSA 3
1.1.1Giới thiệu 3
1.1.2 Các thành phần của một hệ thống mã hoá 4
5
Các tiêu chí đặc trưng của một hệ thống mã hoá: 4
1.1.3 Cấu trúc hệ thống mật mã khóa công khai 5
1.2 Thuật toán mật mã RSA 7
1.3 Thuật toán trao đổi khóa Diffie - Hellman 9
1.4 Mã hóa dựa trên thuộc tính IBE 12
1.5 Mã hóa dựa trên thuộc tính chính sách bản mã 12
1.6 Mã hóa dựa trên thuộc tính chính sách khóa 16
CHƯƠNG 2: TỔNG QUAN VỀ CHỮ KÝ ĐIỆN TỬ 18
2.1 Xác thực thông tin 18
2.1.1 Kỹ thuật mật mã (đối xứng và bất đối xứng) để xác thực thông tin 18
2.1.2 Dùng mã xác thực MAC (Message Authentication Code): 19
2.1.3 Dùng các hàm băm bảo mật (secure hash function) 20
2.2 Hàm băm bảo mật 21
2.2.1 Hàm băm MD5 23
2.3 Xác thực trong các hệ phân tán 24
2.4 Chữ ký điện tử 26
2.4.1 Giới thiệu 26
2.4.2 Chữ ký điện tử dùng khoá mật (secret-key) 28
2.4.3 Chữ ký điện tử dùng khoá công khai (public-key) 29
2.5 Quy trình tạo chữ ký điện tử 30
2.6 Quy trình kiểm tra chữ ký điện tử 33
2.6.1 Giải pháp ứng dụng chữ ký điện tử 33
2.6.2 Quá trình nhận các tệp văn bản 35
2.6.3 Vận dụng vào hệ thống 36
Trang 53.1.1 Mô tả bài toán 37
3.1.2 Thiết kế hệ thống 38
3.1.3 Chương trình thử nghiệm 40
3.2 Quy trình truy cập hệ thống 42
3.2.1 Xây dựng hệ thống bảo mật dựa trên IBE 42
3.2.2 Các bước thực hiện xây dựng hệ thống bảo mật 46
3.3 Ứng dụng mã hóa dựa trên thuộc tính giải quyết bài toán kiểm soát quyền truy cập 49
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 50
DANH MỤC CÁC TÀI LIỆU THAM KHẢO 52
Trang 6Hình 1.2: Cấu trúc hệ thống mật mã bất đối xứng 6
Hình 1.3: Thuật toán trao đổi khoá Diffie-Hellman 10
Hình 2.1: Xác thực thông tin dùng mật mã 19
Hình 2.2: Xác thực thông tin dùng MAC 20
Hình 2.3: Xác thực thông tin dùng hàm băm 21
Hình 2.4: Một ứng dụng điển hình của hàm băm 22
Hình 2.5: Sơ đồ minh hoạ xác thực sử dụng chứng chỉ số &chữ ký điện tử 27
Hình 2.6: Chữ ký điện tử với Big Brother 28
Hình 2.7: Chữ ký điện tử dùng mã hoá công khai 29
Hình 2.8 : Sơ đồ minh hoạ quá trình xin cấp chứng chỉ số 32
Hình 2.9 Sơ đồ mô tả quá trình ký và gửi các tệp văn bản 34
Hình2.10 Sơ đồ mô tả quá trình nhận các tệp văn bản 36
Hình 3.1 Sơ đồ phân tích hệ thống 38
Hình 3.2 Mô hình hệ thống nhận dạng IBE 45
Hình 3.3: Hệ thống mã hoá mô hình bảo mật 46
Trang 7AES Advanced Encryption Standard Chuẩn mã hoá tiên tiến
ANSI American National Standards
Institude
Viện tiêu chuẩn quốc gia Mỹ
CA Certification Authority Nhà cung cấp chứng thực
CRL Certificate Revocation List Danh sách các chứng thực thu hồiDES Data Ecryption Standard Chuẩn mã dữ liệu
DSA Digital Signature Algorithm Thuật toán chữ ký điện tử
DSS Digital Signature Standard Chuẩn chữ ký điện tử
EDI Electronic Data Interchange Trao đổi dữ liệu điện tử
FIPS Federal Information Processing
Standard
Chuẩn xử lý thông tin liên bang
FTP File Transfer Protocol Giao thức truyền file
HTTP Hyper Text Transport Protocol Giao thức truyền siêu văn bảnIDEA International Data Encryption
Algorithm
Thuật toán mã hoá dữ liệu quốc tế
ISO International Organization for
Standardization
Tổ chức tiêu chuẩn hoá quốc tế
ISP Internet Service Provider Nhà cung cấp dịch vụ InternetITU International Telecommunication
PKI Public Key Infrastructure Cơ sở hạ tầng khoá công khai
RA Registration Authority Nhà quản lý đăng ký
RSA Rivest-Shamir-Aldeman
SET Secure Electronic Transaction Giao dịch điện tử an toàn
SHA Secure Hash Algorithm Thuật toán băm an toàn
TCP/IP Transmission Control Protocol/
Internet protocol
Giao thức điều khiển truyền dẫn/ giao thức Internet
URL Uniform Resource Locator Bộ định vị tài nguyên
SSL Secure Sockets Layer
Trang 9LỜI MỞ ĐẦU
Mã hóa dựa trên chữ ký điện tử (Electronic Signatures) hiện nay đang đượcxem là một công nghệ mật mã mới có nhiều thuận tiện trong thực thi ứng dụng sovới các thuật toán khóa công khai khác Đối với các hệ mật mã khóa công khaitruyền thống, việc cài đặt là khó khăn và tốn kém, ứng dụng thành công nhất củacông nghệ khóa công khai là việc sử dụng rộng rãi của SSL, nó yêu cầu tương táctối thiểu với người sử dụng khi được dùng để xác thực máy chủ và mã hóa cáctruyền thông với máy chủ đó Các ứng dụng mà yêu cầu người sử dụng quản lýhoặc sử dụng các khóa công khai thì không thành công được như vậy
Chữ ký điện tử là một công nghệ mã hoá khoá công khai, cho phép một người
sử dụng tính khoá công khai từ một chuỗi bất kỳ Chuỗi này như là biểu diễn địnhdanh của dạng nào đó và được sử dụng không chỉ như là một định danh để tínhkhoá công khai, mà còn có thể chứa thông tin về thời hạn hợp lệ của khoá để tránhcho một người sử dụng dùng mãi một khoá chữ ký điện tử hoặc để đảm bảo rằngngười sử dụng sẽ nhận được các khoá khác nhau từ các hệ thống chữ ký điện tử khác nhau Trong chuỗi này có chứa thông tin là duy nhất đối với mỗi cài đặt chữ
ký điện tử cụ thể, chẳng hạn như URL mà định danh máy chủ được sử dụng trongcài đặt của các hệ thống chữ ký điện tử khác nhau Khả năng tính được các khoánhư mong muốn làm cho các hệ thống chữ ký điện tử có các tính chất khác với cáctính chất của các hệ thống khoá công khai truyền thống, những tính chất này tạo
ra các ưu thế thực hành đáng kể trong nhiều tình huống Bởi vậy, có một số ít tìnhhuống không thể giải quyết bài toán bất kỳ với các công nghệ khoá công khaitruyền thống, nhưng lại có thể giải quyết được với chữ ký điện tử và sử dụng chữ
ký điện tử có thể đơn giản hơn nhiều về cài đặt và ít tốn kém hơn về nguồn lực để
hỗ trợ
Chữ ký điện tử không đề xuất bất kỳ khả năng mới nào mà các công nghệkhóa công khai truyền thống không thể cung cấp nhưng nó cho phép tạo ra các giải
Trang 10pháp để giải quyết vấn đề khó khăn và tốn kém nếu triển khai bằng các công nghệtrước đây.
Đây là lý do để chúng tôi chọn đề tài có tên: Nghiên Chữ Ký Điện Tử Và Ứng Dụng vào bài toán kiểm soát quyền truy cập trong hệ thống truyền hình trả tiền.
Nội dung nghiên cứu:
- Nghiên cứu về hệ mật mã khóa công khai truyền thống
- Nghiên cứu hệ mã hóa dựa trên định danh và các ưu điểm của hệ mã hóa này
so với hệ mã hóa công khai truyền thống
- Ứng dụng mã hóa định danh trong bảo vệ thông tin
Nội dung luận văn gồm 3 chương:
Chương 1: Tổng quan về hệ mật mã khóa công khai
Chương 2: Tổng quan về chữ ký điện tử
Chương 3: Ứng dụng mã hóa dựa trên chữ ký điện tử vào bài toán kiểm soátquyền truy cập trong hệ thống truyền hình trả tiền
Trang 11CHƯƠNG 1: HỆ MẬT MÃ KHÓA CÔNG KHAI
1.1 Mật mã khóa công khai RSA
Một công trình nghiên cứu kiểm tra tính đúng đắn của các khóa công khaicủa các hệ mật RSA, ElGamal, DSA và ECDSA đã đưa ra một kết quả bất ngờ là:khoảng 0,2% các khóa công khai không đảm bảo an toàn Bài báo này giới thiệunhững số liệu khảo sát liên quan tới các modulus RSA là yếu tố ảnh hưởng nhiều tớitính an toàn của các khóa công khai
Có một giả thiết quan trọng được mặc định để bảo đảm độ an toàn của hạtầng khóa công khai, đó là khi thiết lập khóa, không được lặp lại các lựa chọn ngẫunhiên trước đó, ví dụ, với hệ mật RSA thì modulus của hai người phải khác nhau,không một tham số nào trong hai tham số p, q được dùng chung Trước đây đã xảy
ra một lỗi nghiêm trọng trong lệnh sinh số ngẫu nhiên của Debian OpenSSL, khiếncho những khóa RSA được sinh ra từ đó mắc phải điểm yếu được nói tới ở trên.Người ta đã phải lập một “danh sách đen” các modulus như vậy và cộng đồngnhững người làm mật mã đã tốn khá nhiều công sức để khắc phục sự cố này Đượctài trợ bởi Quỹ Khoa học Quốc gia Thụy Sỹ, các tác giả của công trình nghiên cứu(Lenstra và các cộng sự) [1] đã thu thập dữ liệu và thực hiện phân tích, thống kê cáckhóa công khai Mục tiêu chính của họ là kiểm chứng tính hiệu lực của giả thiết màcác lựa chọn ngẫu nhiên khác nhau đã thực hiện mỗi khi các khóa được sinh ra và
họ đã rút ra được rất nhiều nhận xét hữu ích
1.1.1Giới thiệu
Mật mã (Encryption) là một kỹ thuật cơ sở quan trọng trong bảo mật thông tin.Nguyên tắc của mật mã là biến đổi thông tin gốc thành dạng thông tin bí mật mà chỉ
có những thực thể tham gia xử lý thông tin một cách hợp lệ mới hiểu được
Một thực thể hợp lệ có thể là một người, một máy tính hay một phần mềm nào
đó được phép nhận thông tin Để có thể giải mã được thông tin mật, thực thể đó cầnphải biết cách giải mã (tức là biết được thuật tóan giải mã) và các thông tin cộngthêm (khóa bí mật)
Quá trình chuyển thông tin gốc thành thông tin mật theo một thuật toán nào đóđược gọi là quá trình mã hoá (encryption) Quá trình biến đổi thông tin mật về dạng
Trang 12thông tin gốc ban đầu gọi là quá trình giải mã (decryption) Đây là hai quá trìnhkhông thể tách rời của một kỹ thuật mật mã bởi vì mật mã (giấu thông tin) chỉ có ýnghĩa khi ta có thể giải mã (phục hồi lại) được thông tin đó Do vậy, khi chỉ dùngthuật ngữ mật mã thì nó có nghĩa bao hàm cả mã hóa và giải mã.
Kỹ thuật mã hoá được chia thành hai loại: mã hoá dùng khoá đối xứng(symmetric key encryption) và mã hoá dùng khoá bất đối xứng (asymmetric keyencryption) như sẽ trình bày trong các phần tiếp theo
1.1.2 Các thành phần của một hệ thống mã hoá
Hình 1.1 mô tả nguyên tắc chung của một hệ thống mật mã quy ước Các thànhphần trong một hệ thống mật mã điển hình bao gồm:
Plaintext: là thông tin gốc cần truyền đi giữa các hệ thống thông tin
Encryption algorithm: thuật tóan mã hóa, đây là cách thức tạo ra thông tin mật
từ thông tin gốc
Key: khóa mật mã, gọi tắt là khóa Đây là thông tin cộng thêm mà thuật tóan
mã hóa sử dụng để trộn với thông tin gốc tạo thành thông tin mật
Ciphertext: thông tin đã mã hóa (thông tin mật) Đây là kết quả của thuật toán
mã hóa
Decryption algorithm: Thuật tóan giải mã Đầu vào của thuật tóan này là thôngtin đã mã hóa (ciphertext) cùng với khóa mật mã Đầu ra của thuật tóan làthông tin gốc (plaintext) ban đầu
Các tiêu chí đặc trưng của một hệ thống mã hoá:
Một hệ thống mã hóa bất kỳ được đặc trưng bởi 3 tiêu chí sau đây:
-Phương pháp mã (operation): có hai phương pháp mật mã bao gồm
Trang 131.1.3 Cấu trúc hệ thống mật mã khóa công khai
Đặc trưng của kỹ thuật mật mã khóa công khai, hay còn gọi là hệ mật mã khóabất đối xứng là dùng 2 khóa riêng biệt cho hai quá trình mã hóa và giải mã, trong đó
có một khóa được phổ biến công khai (public key hay PU) và khóa còn lại được giữ
bí mật (private key hay PR) Cả hai khoá đều có thể được dùng để mã hoá hoặc giải
mã Việc chọn khoá công khai hay khoá bí mật cho quá trình mã hoá sẽ tạo ra haiứng dụng khác nhau của kỹ thuật mật mã bất đối xứng:
Nếu dùng khoá công khai để mã hoá và khoá bí mật để giải mã, ta có ứngdụng bảo mật trên thông tin (confidentiality)
Nếu dùng khoá bí mật để mã hoá và khoá công khai để giải mã, ta có ứngdụng xác thực nội dung và nguồn gốc thông tin (authentication)
Thuật toán mật mã bất đối xứng dựa chủ yếu trên các hàm toán học hơn là dựa vàocác thao tác trên chuỗi bit Mật mã hóa bất đối xứng còn được gọi bằng một tênthông dụng hơn là mật mã hóa dùng khóa công khai (public key encryption)
Nói chung, mật mã hóa bất đối xứng không phải là một kỹ thuật mật mã an tòanhơn so với mật mã đối xứng, mà độ an tòan của một thuật toán mã nói chung phụthuộc vào 2 yếu tố: Độ dài của khóa và mức độ phức tạp khi thực
hiện thuật tóan (trên máy tính) Hơn nữa, mặc dù được ra đời sau nhưng không cónghĩa rằng mật mã bất đối xứng hòan tòan ưu điểm hơn và sẽ được
Khoá mật mã (Key)
Khoá mật mã (Key)
Thông tin đã được
mã hoá (ciphertext)
Thông tin gốc
(Plaintext)
Thông tin gốc (Plaintext) Thuật toán giải mã
(Decryption algorithm)
Thuật toán mã hoá (Encryption algorithm)
Hình 1.1: Cấu trúc một hệ thống mật mã quy ước
Trang 14sử dụng thay thế cho mật mã đối xứng Mỗi kỹ thuật mã có một thế mạnh riêng vàmật mã đối xứng vẫn rất thích hợp cho các hệ thống nhỏ và đơn giản Ngoài ra, vấn
đề phân phối khóa trong mật mã bất đối xứng cũng được đánh giá là một trongnhững vấn đề phức tạp khi triển khai kỹ thuật mật mã này trong thực tế
Các bước cơ bản của một hệ thống mật mã dùng khóa công khai bao gồm:
Mỗi thực thể thông tin (user) tạo ra một cặp khóa (public/private) để dùngcho việc mã hóa và giải mã
Mỗi user thông báo một trong hai khoá của mình cho các user khác biết,khóa này được gọi là khóa công khai (public key) Khóa còn lại được giữ bímật, và gọi là khóa riêng (private key)
Nếu một user A muốn gửi thông tin cho user B, user A sẽ thực hiện mã hóathông tin cần gửi bằng khóa công khai của user B
Tập khoá
Khoá bí mật của user B
User User User
User
Khoá công khai của user B Thông tin mật
Thuật toán giải mã
(thực hiện bởi user B)
Thông tin gốc
Thông tin
gốc Thuật toán mã hoá
(thực hiện bởi user A)
Thuật toán giải mã
(thực hiện bởi user B)
Thuật toán mã hoá
(thực hiện bởi user A)
Thông tin gốc
Thông
tin gốc
b- Ứng dụng xác thực thông tin
Hình 1.2: Cấu trúc hệ thống mật mã bất đối xứng
Trang 15 Khi nhận được thông tin đã mã hóa từ user A, user B thực hiện giải mã thôngtin đó bằng khóa riêng của mình Do khóa riêng không phổ biến công khainên chỉ có một mình user B có khả năng giải mã được.
Mật mã hóa bất đối xứng được sử dụng trong các ứng dụng: che giấu thông tin,tạo chữ ký số (digital signature) và trao đổi khóa trong các thuật tóan mật mã đốixứng (key exchange)
1.2 Thuật toán mật mã RSA
RSA là thuật toán mật mã bất đối xứng được xây dựng bởi Ron Rivest, AdiShamir và Len Adleman tại viện công nghệ Massachusetts (MIT), do đó được đặttên là Rivest – Shamir – Adleman hay RSA Thuật toán này ra đời năm 1977 và chođến nay đã được ứng dụng trong nhiều lĩnh vực Cũng như các thuật toán mật mãbất đối xứng khác, nguyên lý của RSA dựa chủ yếu trên lý thuyết số chứ không dựatrên các thao tác xử lý bit
RSA là một thuật toán mật mã khối, kích thước khối thông thường là 1024 hoặc
2048 bit Thông tin gốc của RSA được xử lý như các số nguyên Ví dụ, khi chọnkích thước khối của thuật toán là 1024 bit thì số nguyên này có giá trị từ 0 đến
21024 – 1, tương đương với số thập phân có 309 chữ số Chú ý rằng đây là những
số nguyên cực lớn, không thể xử lý được bằng cách sử dụng các cấu trúc dữ liệu cósẵn của các ngôn ngữ lập trình phổ biến
Thuật toán RSA được mô tả như sau:
1- Để tạo ra một cặp khóa RSA, trước hết, chọn hai số nguyên tố đủ lớn p và q.Gọi N là tích của p và q (N = pq)
2- Chọn một số e sao cho e và (p-1)(q-1) là hai số nguyên tố cùng nhau Tìm số
d sao cho ed = 1 mod (p-1)(q-1)
3- Với 3 thành phần còn lại là N, e và d, ta đó:
Khóa công khai (public key) là tổ hợp (N, e)
Khóa bí mật (private) là tổ hợp (N, d)
4- Mã hóa một khối thông tin gốc M được thực hiện theo công thức:
C = Me mod N (với M là số nguyên nhỏ hơn N)
Trang 165- Quá trình giải mã C được thực hiện theo công thức:
Với e = 3, xác định được d = 7 vì ed = 3*7 = 1 mod 20 Thật ra, có nhiều giátrị d thỏa mãn yêu cầu này, nhưng để cho đơn giản, ta chọn giá trị nhỏ nhất
Khi đó, ta xác định được cặp khóa như sau:
Khóa công khai: (N, e) = (33, 3)
Khóa bí mật: (N, d) = (33, 7)
Giả sử, user B muốn gửi thông tin M = 15 cho user A, dựa trên khóa côngkhai của A, B thực hiện như sau:
C = Me mod N = 153 mod 33 = 3375 mod 33 = 9 mod 33
Khi đó, thông tin mật gửi cho A là C = 9.
Khi nhận được thông tin này, A giải mã bằng khóa riêng (d = 7) như sau:
M = Cd mob N = 97 mod 33 = 4.782.969 mod 33 = 15 mod 33
Như vậy, thông tin giải mã được là M = 15, đúng với thông tin gốc ban đầu.Tóm lại, thuật toán mật mã RSA được thực hiện gồm 3 quá trình tách rời: tạokhoá, mã hoá và giải mã được tóm tắt như sau:
1-Tạo khoá:
Chọn p, q (p và q là số nguyên tố, p q)
Tính N = p.q
Tính (N) = (p – 1) (q – 1)N) = (N) = (p – 1) (q – 1)p – 1) (N) = (p – 1) (q – 1)q – 1)
Chọn e sao ước số chung lớn nhất của e và (N) = (p – 1) (q – 1)N) là 1
Chọn d sao cho e.d mod (N) = (p – 1) (q – 1)N) = 1
Cặp khoá RSA được tạo ra là PU = (N) = (p – 1) (q – 1)N, e), PR = (N) = (p – 1) (q – 1)N, d) 2- Mã hoá:
C = M e mod N (M là số nguyên nhỏ hơn N)
3- Giải mã:
M = C d mod N
Trang 17Trong thực tế, để đạt được độ an tòan cao, cặp khóa phải được chọn trên các số p và
q đủ lớn (N nhỏ nhất phải là 1024 bit), do vậy, vấn đề thực thi RSA bao gồm cácphép tóan lũy thừa trên các số rất lớn Vấn đề giảm chi phí tính tóan và tăng tốc độthực hiện thuật tóan RSA là một trong những vấn đề quan trọng cần phải giải quyết.Trên các hệ thống máy tính hiện nay, hiệu suất thực hiện giải thuật RSA là chấpnhận được
1.3 Thuật toán trao đổi khóa Diffie - Hellman
Diffie-Hellman là một thuật toán dùng để trao đổi khóa (key exchange) chứkhông dùng để mật mã hóa (che giấu) dữ liệu Tuy nhiên, Deffie-Hellman lại có íchtrong giai đọan trao đổi khóa bí mật của các thuật toán mật mã đối xứng Như trongphần đầu của chương này đã trình bày, một trong những vấn đề quan trọng liênquan trực tiếp đến tính an toàn của các thuật toán mật mã đối xứng là vấn đề thốngnhất khoá bí mật giữa các thực thể thông tin
Thuật toán trao đổi khoá Diffie-Hellman dựa trên phép logarit rời rạc(discrete log) Cho trước một số g và x = gk , để tìm k, ta đơn giản thực hiện phéplogarit: k = logg(x) Tuy nhiên, nếu cho trước g, p và (gk mod p), thì quá trình xácđịnh k được thực hiện theo cách khác với cách ở trên và được gọi là logarit rời rạc.Việc tính logarit rời rạc nói chung rất phức tạp nhưng vẫn có thể thực hiện được
Thuật tóan Diffie-Hellman khá đơn giản như sau:
Trang 18 Gọi p là một số nguyên tố và g là một cơ số sinh (generator) thoả điều kiệnvới mọi x {1, 2, …, p-1}, ta luôn tìm được số n sao cho x = gn mod p.
Giá trị p và g được phổ biến công khai giữa các thực thể trao đổi khoá Sau
đó user A tạo ra một số bí mật Xa < p, tính giá trị Ya = (gXa mod p) và gửi cho B.Tương tự, user B cũng tạo ra một số bí mật Xb < p, tính giá trị Yb = (gb mod p)
và gửi lại cho A
-Dựa trên thông tin nhận được từ A, user B xác định được khoá bí mật dùngcho phiên làm việc bằng cách tính giá trị (gXa mod p)Xb = (gXaXb mod p) Bằng cáchtương tự, user A cũng xác định được khoá bí mật này bằng cách tính giá trị (gXb
mod p)Xa = (gXaXb mod p)
-Giả sử trong quá trình trao đổi các giá trị (gXa mod p) và (gXb mod p), mộtngười thứ 3 nào nó bắt được thông tin này thì cũng rất khó xác định được a và b vì
độ phức tạp của phép tóan logarit rời rạc là rất cao
User A tính được Ya = (397 mod 353) = 40 và gửi cho B
User B tính được Yb = (3233 mod 353) = 248 và gửi cho A
User A tính được khoá bí mật K = (Yb)Xa mod 353=24897mod 353= 160User B tính được khoá bí mật K =(Ya)Xb mod 353= 4097 mod 353 = 160
Đánh giá độ an toàn của thuật toán trao đổi khoá Diffie-Hellman
Tính an toàn của Diffie-Hellman dựa trên độ phức tạp của phép toán logaritrời rạc Nói chung, việc xác định các giá trị Xa, Xb từ các giá trị p, g, Ya và Yb làkhông thể thực hiện được trên các số nguyên đủ lớn Tuy nhiên, thuật toán nàykhông ngăn chặn được các tấn công theo phương thức xen giữa Man-In-The-Middle(MITM) như sau:
Trang 19 Để thực hiện tấn công MITM trên kết nối giữa user A và user B, user
C cũng chọn cho mình hai số nguyên XC1 và XC2 thoả điều kiện XC1 < p và
XC2 < p, sau đó cũng tính hai giá trị tương ứng YC1 = (gXc1 mod p) và YC2 =(gXc2 mod p)
Khi user A gửi Ya cho user B, user C sẽ chặn lấy thông tin này, đồngthời mạo danh A để gửi cho B giá trị YC1 User B xác định khoá K1 dựa trên
YC1, và gửi lại cho A giá trị Yb User C lại chặn lấy giá trị này và mạo danh B
để gửi cho A giá trị YC2
User A xác định khoá K2 dựa trên YC2 Bắt đầu từ đây, các thông tintrao đổi giữa A và B đều được C chặn bắt và thay đổi bằng cách sử dụng cặpkhoá K1 và K2
Như vậy, thuật toán Diffie-Hellman không giải quyết được vấn đề này dokhông có cơ chế xác thực giữa các thực thể trao đổi khoá Điểm yếu này được khắcphục bằng cách sử dụng kết hợp với các thuật toán xác thực như sẽ trình bày ở phần
kế tiếp
Ngoài hai thuật toán RSA và Diffie-Hellman, một số thuật toán khác cũngđược phát triển dựa trên nguyên lý sử dụng một cặp khoá công khai và bí mật.Elliptic-Curve Cryptography (ECC) là một giải thuật mới đang được thử nghiệm vàhứa hẹn nhiều ưu điểm so với RSA như độ phức tạp tính toán giảm trong khi tính
an tòan vẫn được đảm bảo ECC thích hợp với các ứng dụng chạy trên các thiết bị
có năng lực xử lý hạn chế chẳn hạn như các thiết bị nhúng (embded devices)
1.4 Mã hóa dựa trên thuộc tính IBE
Mã hóa dựa trên thuộc tính là một trường hợp riêng của mã hóa dựa trên địnhdanh Vậy mã hóa dựa trên thuộc tính có gì khác biệt so với các công nghệ truyềnthống và tại sao nó cùng với mã hóa dựa trên định danh đang thu hút được nhiều sựquan tâm như vậy? Để trả lời cho câu hỏi này, bài báo sau đây giới thiệu một số đặctính cơ bản của mã hóa dựa trên thuộc tính
- Khái quát về Mã hóa dựa trên thuộc tính: (Attribute-based Encryption - ABE) được
đề xuất bởi Sahai và Waters, trong bài báo “Mã hóa dựa trên định danh mờ Fuzzy
Trang 20IBE” Trong mã hóa dựa trên thuộc tính, một bên tham gia sẽ mã hóa một tài liệu sửdụng cho tất cả những người dùng cùng sở hữu một tập hợp thuộc tính nào đó Ví
dụ, trong một khoa giảng dạy về khoa học máy tính, một văn bản được mã hóa vàdùng cho tất cả hệ thống của khoa Trong trường hợp này, người ta sẽ mã hóa cả cácđịnh danh {“khoa”, “hệ thống”} Bất kỳ người dùng nào có định danh chứa tất cảcác thuộc tính trên mới có thể giải mã được văn bản Ưu điểm của mã hóa này làvăn bản có thể lưu trữ ở một server không tin cậy (thay vì dựa vào một server đángtin cậy) để thực hiện kiểm tra xác thực văn bản khi nhận được Mã hóa dựa trênthuộc tính ABE được xây dựng theo hai hướng chính: mã hóa dựa trên thuộc tínhchính sách bản mã (CP-ABE), mã hóa dựa trên thuộc tính chính sách khóa (KP-ABE)
1.5 Mã hóa dựa trên thuộc tính chính sách bản mã
Trong nhiều hệ thống phân tán, một người dùng chỉ có thể truy cập đến dữ liệu nếu sở hữu một tập hợp các ủy nhiệm hoặc thuộc tính Hiện nay, phương pháp duy nhất để thi hành chính sách trên là sử dụng một server tin cậy để lưu trữ dữ liệu và làm trung gian trong việc quản lý quyền truy cập Tuy nhiên, nếu server lưu trữ dữ liệu bị tổn hại, thì tính bí mật của dữ liệu lưu trữ ở đó cũng bị xâm phạm Mã hóa dựa trên thuộc tính chính sách bản mã (Ciphertext-policy Attribute-Based
Encryption - CP-ABE) được xây dựng với mục đích thực hiện việc quản lý quyền truy cập lên các dữ liệu đã được mã hóa Với việc sử dụng mã hóa dựa trên thuộc tính chính sách hướng bản mã (CP- ABE) dữ liệu mã hóa có thể được giữ bí mật, thậm chí khi server dữ liệu không còn đáng tin cậy và phương pháp này cũng an toàn đối với Tấn công thông đồng (collusion attacks) Hệ thống mã hóa dựa trên định danh có thể sử dụng những thuộc tính để mô tả dữ liệu đã được mã hóa và xây dựng những chính sách sử dụng khóa của người dùng, còn trong hệ thống mã hóa CP- ABE, các thuộc tính được dùng để mô tả thông tin ủy nhiệm của người dùng vàmột người mã hóa dữ liệu sẽ xác định chính sách cho phép ai có thể giải mã dữ liệu này
Trang 21Trong nhiều tình huống, khi một người dùng mã hóa dữ liệu nhạy cảm đồng nghĩa với việc họ phải thiết lập một chính sách quản lý quyền truy cập nhất định đối với những người có thể giải mã dữ liệu này Ví dụ, giả thiết rằng cơ quan phòng chống tham nhũng của FBI ở Knoxville và San Francisco đang điều tra một vụ hối lộ liên quan đến một người vận động hành lang ở San Francisco và một nghị sĩ quốc hội của Tennessee Người đứng đầu cơ quan phòng chống tham nhũng có thể muốn mã hóa một bản tin nhạy cảm mà chỉ nhân viên thuộc quyền có đủ thông tin ủy nhiệm hoặc thuộc tính cần thiết có thể truy cập nó Ví dụ, có thể xác định cấu trúc truy cập
để truy cập thông tin đó: (“PUBLIC CORRUPTION OFFICE” AND
KNOXVILLE” OR “SAN FRANCISCO”) OR (MANAGEMENT-LEVEL>5) OR AME:CHARLIE EPPES”) Theo đó, bản tin chỉ được đọc bởi nhân viên làm ở cơ quan điều tra tham nhũng tại Knoxville hoặc San Francisco, các cán bộ FBI cấp cao,
và một cố vấn tên là Charlie Eppes Như được mô tả trong ví dụ trên, điều cốt lõi là người sở hữu những dữ liệu bí mật có thể lựa chọn chính sách truy cập dựa trên những kiến thức nào đó của dữ liệu Hơn nữa, người này không nhất thiết phải biết chính xác định danh của tất cả những người có quyền truy cập đến dữ liệu nhạy cảmnhưng có thể mô tả định danh của họ nhờ các thuộc tính hoặc thông tin ủy nhiệm.Theo truyền thống, kiểu quản lý quyền truy cập nhanh thường sử dụng một server tin cậy để bảo quản dữ liệu cục bộ Server tin cậy như một giám sát viên, kiểm tra người dùng, yêu cầu phải trình chứng chỉ đúng sau đó mới cho quyền truy cập đến bản ghi hoặc file Việc sao lưu dữ liệu ở các địa điểm khác nhau như vậy tạo thuận lợi và hiệu quả trong công việc Nhược điểm của xu hướng này là khó khăn trong việc đảm bảo tính an toàn của dữ liệu Khi dữ liệu được lưu giữ ở nhiều điểm khác nhau thì cơ hội rò rỉ, mất mát thông tin sẽ tăng lên rất nhiều Với những nguyên nhân này, các dữ liệu nhạy cảm cần phải được lưu ở dạng mã hóa, như vậy thì chúng sẽ vẫn giữ được tính bí mật, nếu server bị tổn thất.Hầu hết các phương pháp
mã hóa khóa công khai cho phép một bên tham gia mã hóa cho những người dùng riêng lẻ, nhưng không thể kiểm soát một cách hiệu quả kiểu quản lý quyền truy cập nhanh như ở trong ví dụ trên.Trong hệ thống CP- ABE, khóa riêng của người dùng
Trang 22sẽ được liên kết với một số tùy ý các thuộc tính, được diễn đạt dưới dạng các xâu Mặt khác, khi một bên mã hóa thông báo trong hệ thống này, họ xác định một cấu trúc truy cập có liên quan đến các thuộc tính Một người dùng chỉ có thể giải mã một bản mã nếu các thuộc tính của người dùng thỏa mãn cấu trúc truy cập Ở mức toán học, trong hệ thống CP- ABE cấu trúc truy cập được mô tả dưới dạng “cây truycập” đơn, ở đó các nút của cấu trúc truy cập được tạo bởi cổng ngưỡng và “những chiếc lá” là những thuộc tính.Ở mức độ cao, CP- ABE tương tự như mã hóa dựa trên thuộc tính chính sách khóa (KP-ABE) của cùng nhóm tác giả Sahai, Waters (sẽ được trình bày dưới đây), tuy nhiên các yêu cầu kỹ thuật khác biệt về căn bản Trong KP- ABE, các bản mã sẽ liên kết với tập hợp của các thuộc tính mô tả, và khóa của người dùng liên kết với chính sách (ngược lại so với CP- ABE).
Trang 23Ở mức kỹ thuật, đối tượng chính mà chúng ta phải đạt được là kháng thông đồng (collusion-resistance) Có nghĩa là nếu nhiều người dùng thông đồng, họ chỉ
có thể giải một bản mã, mà ít nhất một trong những người dùng có thể giải mã được Mục tiêu được đặt ra là những kẻ thông đồng trên không thể giải mã các bản tin bí mật bằng cách kết hợp các thuộc tính của chúng Kiểu an ninh này là điều kiện thiết yếu của việc kiểm soát quyền truy cập
Một sơ đồ mã hóa dựa trên thuộc tính chính sách bản mã chứa bốn thuật toán
cơ bản là Setup (Thiết lập), Encrypt (Mã hóa), GenKey (Tạo khóa), Decrypt (Giải mã), trong đó:Setup: Thuật toán thiết lập chỉ lấy đầu vào là các tham số an toàn, đầu
ra là tham số công khai PK và khóa chủ MK.Encrypt (PK,M,A) Thuật toán mã hóa lấy đầu vào là tham số công khai PK, một thông báo M, và một cấu trúc truy cập A trên tập các thuộc tính Thuật toán sẽ mã hóa M và tạo ra bản mã CT, sao cho chỉ người dùng sở hữu một tập hợp các thuộc tính thỏa mãn cấu trúc truy cập sẽ có thể giải mã được thông báo
GenKey (MK,S) Thuật toán tạo khóa lấy đầu vào là khóa chủ MK và tập hợp các thuộc tính S, có đầu ra là khóa riêng SK.Decrypt (PK,CT,SK) Thuật toán giải mã lấy đầu vào là tham số công khai PK, một bản mã CT, nó chứa chính sách truy cập A và một khóa riêng SK (là một khóa riêng cho một tập hợp thuộc tính S) Nếu tập hợp thuộc tính S thỏa mãn cấu trúc truy cập A thì thuật toán sẽ giải mã thành công bản mã và đưa ra thông báo M
1.6 Mã hóa dựa trên thuộc tính chính sách khóa
Trong hệ thống CP- ABE chính sách truy cập được xác định trong bản mã, còn trong hệ thống mã hóa dựa trên thuộc tính chính sách khóa (KP- ABE), chính sách truy cập được chỉ định trong khóa riêng thuộc tính (Hình 3)
Trang 24Mã hóa dựa trên thuộc tính chính sách khóa là một nguyên thủy mật mã, nó được đề xuất để giải quyết vấn đề quản lý quyền truy cập trong trường hợp liên lạc
từ một đến nhiều điểm (one- to- many) Trong hệ thống KP-ABE, một bản mã đượcliên kết với một tập hợp các thuộc tính và khóa bí mật của mỗi người dùng được nhúng vào một cấu trúc truy cập, cấu trúc này là một tổ hợp lôgic của tập hợp thuộc tính nào đó Người dùng có thể giải mã khi và chỉ khi tập hợp thuộc tính liên kết vớibản mã thỏa mãn cấu trúc truy cập được nhúng trong khóa bí mật của họ Bên cạnh tính chất này, KP-ABE cũng có những tính chất tốt có thể đối phó lại Tấn công thông đồng Các tính chất “tốt” đó cho phép KP-ABE trở thành một công cụ hoàn hảo phục vụ cho quản lý quyền truy cập và các ứng dụng đối với thông tin nhạy cảm.Sơ đồ KP- ABE bao gồm bốn thuật toán sau:- Setup (1l,n) Thuật toán thiết lập lấy đầu vào là tham số an toàn 1l và n- chiều dài của định danh người dùng Đầu ra của thuật toán thiết lập là khóa chủ MK và khóa công khai PK
- Enc (M, g, PK) Thuật toán mã hóa lấy đầu vào là thông báo M, tập hợp cácthuộc tính g, và tham số công khai PK Đầu ra là bản mã E
- KeyGen (T, MK, PK) Thuật toán tạo khóa lấy đầu vào là cấu trúc truy cập
T, khóa chủ bí mật MK, khóa công khai PK Đầu ra là khóa riêng của một người dùng SK.- Dec (E, SK, PK) Lấy đầu vào là bản mã E cho tập hợp thuộc tính g, mộtkhóa riêng SK cho cấu trúc truy cập T, và khóa công khai PK Nếu g thỏa mãn T, thuật toán trả về thông báo M Ngược lại, nó đưa ra đầu ra giá trị z Ứng dụng của
mã hóa dựa trên thuộc tính
Hai dạng mã hóa dựa trên thuộc tính nêu trên đều được ứng dụng trong thực
tế CP- ABE cho phép một kiểu kiểm soát truy cập mới đến bản mã, mà ở đó khóa riêng của người dùng
Trang 25được xác định bởi một tập hợp các thuộc tính, và phía người mã hóa dữ liệu xác định chính sách trên các thuộc tính, nhờ đó xác định những người có thể giải mã.KP- ABE được ứng dụng trong những hệ thống mà dữ liệu có thể được phân loại theo thuộc tính của chúng và đặc quyền truy cập của người dùng được xác định theocách cho phép họ có quyền truy cập đến một tập hợp con nào đó của tài nguyên và cấm việc sử dụng sai đặc quyền truy cập Một lĩnh vực ứng dụng quan trọng của KP- ABE là hệ thống truyền hình trả tiền Trong hệ thống như vậy, mỗi chương trình có một giá tiền riêng và sử dụng sai quyền truy cập là vi phạm pháp luật Gần đây, KP-ABE cũng được ứng dụng trong môi trường mạng không dây và kết hợp với các nguyên thủy mật mã khác để giải quyết bài toán kiểm soát quyền truy cập.
Trang 26CHƯƠNG 2: TỔNG QUAN VỀ CHỮ KÝ ĐIỆN TỬ
Để thực hiện xác thực thông tin, có 3 phương pháp sau đây:
2.1.1 Kỹ thuật mật mã (N) = (p – 1) (q – 1)đối xứng và bất đối xứng) để xác thực thông tin
Nguyên tắc của mật mã là chỉ có những đối tượng hợp lệ mới khôi phục đượcthông tin gốc từ thông tin mật Ta có thể sử dụng nguyên tắc này để xác thực thôngtin như sau (hình 2.4):
Mật mã đối xứng Theo quy ước, chỉ có nơi gửi thông tin và nơi nhận thôngtin hợp lệ mới có khóa bí mật K, do đó chỉ có thực thể gửi thông tin hợp lệ mới
có khả năng tạo ra khối thông tin mật hợp lệ từ khối thông tin gốc M Tương tự,chỉ có thực thể nhận thông tin hợp lệ mới có khả năng giải mã được thông tin mật
để khôi phục đúng thông tin gốc M Tất cả các cố gắng khác đều cho ra kết quảsai
Trường hợp thứ hai: dùng mật mã bất đối xứng Thực thể gửi thông tin thựchiện mã hóa dùng khóa bí mật (PR) thay vì dùng khóa công khai Khối thông tinmật tạo ra có thể được giải mã bởi bất kỳ đối tượng nào biết khóa công khai củathực thể gửi Tuy nhiên, nếu quá trình giải mã thành công, đối tượng nhận thôngtin có thể chắc chắn rằng thông tin nhận được là đúng và chính đối tượng gửi hợp
lệ đã gửi thông tin này, bởi vì chỉ có đối tượng đó mới có khóa riêng PR
Trang 27Phương pháp xác thực dùng mật mã dựa hòan tòan vào độ tin cậy của khóa bí mật.
2.1.2 Dùng mã xác thực MAC (N) = (p – 1) (q – 1)Message Authentication Code):
Mã xác thực MAC được sinh ra từ tổ hợp gồm một khối thông tin gốc có độ dàibất kỳ và một khóa bí mật Kích thước của MAC là cố định, không phụ thuộc vàokích thước của khối dữ liệu gốc và thường nhỏ hơn dữ liệu gốc Đối tượng gửi sẽgửi kèm giá trị MAC đi cùng với thông tin gốc Phía nhận sau khi nhận được thôngtin gốc cùng với giá trị MAC gửi kèm sẽ thực hiện thao tác tạo ra giá trị
MAC mới từ thông tin gốc cùng với khóa bí mật đã thống nhất giữa hai bên.Nếu giá trị MAC vừa tạo ra giống với giá trị MAC nhận được từ phía gửi, phía nhận
có thể chắc chắn rằng thông tin gốc không bị thay đổi trong quá trình truyền (hình2.5)
Nơi gởi thông tin
C
b- Dùng mật mã bất đối xứng
Nơi nhận thông tin
Trang 28Việc dùng MAC để xác thực thông tin dựa vào hai cơ sở:
Ứng với một khối thông tin gốc M và một khóa bí mật K, hàm C chỉtạo ra duy nhất một mã xác thực MAC
Chỉ có phía gửi và phía nhận hợp lệ mới được biết khóa K
Có hai kỹ thuật tạo ra mã xác thực MAC: kỹ thuật thứ nhất dùng cơ chế mật
mã khối (Cipher Block Chaining) và được gọi là CMAC hay CBC-MAC Kỹ thuậtthứ hai dựa trên các hàm băm bảo mật và được gọi là HMAC
Mã xác thực MAC được ứng dụng trong các trường hợp thông tin chỉ yêucầu đảm bảo tính xác thực mà không cần đảm bảo tính bí mật
2.1.3 Dùng các hàm băm bảo mật (N) = (p – 1) (q – 1)secure hash function)
Giống như mã xác thực MAC, hàm băm cũng tạo ra một khối thông tin ngắn có
độ dài xác định gọi là mã băm (hash code) từ một khối thông tin gốc có độ dài bất
kỳ Tuy nhiên, khác với MAC, hàm băm chỉ dựa vào thông tin gốc để tạo ra mãbăm mà không dùng thêm bất kỳ khóa bí mật nào Do vậy, để có thể sử dụng nhưmột cơ chế xác thực thông tin, hàm băm phải được dùng kèm với một thuật tóanmật mã nào đó (đối xứng hoặc bất đối xứng)
Hình 2.6 trình bày một ứng dụng điển hình của hàm băm trong xác thựcthông tin Theo cơ chế này, mã băm sau khi được tạo ra sẽ được mã hóa bằng mộtthuật tóan mật mã đối xứng với khóa bí mật K chỉ có bên gửi và bên nhận biết.Đọan mã băm đã được mật mã hóa được gửi đi kèm với thông tin gốc và quá trình
Mã xác thực (MAC)
M: thông tin gốcC: Hàm tạo mã xác thực
K: Khóa bí mật dùng chung giữa bên gởi và bên nhận
| |: Nối mã xác thực vào thông tin gốc
Hình 2.2: Xác thực thông tin dùng MAC
So sánh
Trang 29kiểm tra ở phía nhận cũng được tiến hành theo trình tự ngược lại, tức là giải mãđọan mã băm bằng khóa bí mật, sau đó tạo ra mã băm mới từ thông tin gốc và sosánh hai đọan mã băm.
Có nhiều cách áp dụng các thuật tóan mật mã vào hàm băm để xác thựcthông tin: dùng mã đối xứng hoặc bất đối xứng, chỉ mã hóa mã băm hoặc mã hóa cảthông tin gốc và mã băm, có thể tổ hợp nhiều cách trên lại với nhau
Ngòai ứng dụng xác thực thông tin, hàm băm còn được dùng trong nhiều ứngdụng khác
2.2 Hàm băm bảo mật
Các hàm băm bảo mật (secure hash functions), gọi là hàm băm là một trongnhững kỹ thuật cơ bản để thực hiện cơ chế xác thực thông tin (messageauthentication) Ngoài ra, hàm băm cũng còn được sử dụng trong nhiều thuật toánmật mã, chữ ký số (digital signature) và nhiều ứng dụng khác
Nguyên tắc của hàm băm là biến đổi khối thông tin gốc có độ dài bất kỳ thànhmột đoạn thông tin ngắn hơn có độ dài cố định gọi là mã băm (hash code haymessage digest) Mã băm được dùng để kiểm tra tính chính xác của thông tin nhậnđược Thông thường, mã băm được gửi kèm với thông tin gốc Ở phía nhận, hàm
Mã băm đã được mã hóa
So sánh
M: thông tin gốcH: hàm băm E: thuật tóan mã hóa
D: thuật tóan giải mãK: khóa bí mật dùng chung giữa phía gởi và phía nhận
| |: nối mã băm đã được mã hóa vào thông tin gốc
Hình 2.3: Xác thực thông tin dùng hàm băm
Trang 30băm lại được áp dụng đối với thông tin gốc để tìm ra mã băm mới, giá trị này được
so sánh với mã băm đi kèm với thông tin gốc Nếu hai mã băm giống nhau, nghĩa làthông tin gửi đi không bị thay đổi
Chỉ có thể dùng hàm băm để tính mã băm từ thông tin gốc chứ không thể tínhđược thông tin gốc từ mã băm Do đặc tính này, các hàm băm bảo mật cũng cònđược gọi là hàm băm một chiều (one way hash fntion)
Hình 2.7 mô tả nguyên lý hoạt động của một giải thuật xác thực thông tin sửdụng hàm băm đơn giản
Các yêu cầu của một hàm băm bảo mật H:
H có thể được áp dụng cho khối thông tin với chiều dài bất kỳ
Kết quả của hàm H luôn có chiều dài cố định
Việc tính giá trị của H(x) với một giá trị x cho trước phải đơn giản, cóthể thực hiện được bằng cả phần cứng hoặc phần mềm
Cho trước một giá trị h, không thể tìm được một giá trị x sao cho H(x)
= h, đây được gọi là thuộc tính một chiều của hàm băm (one-wayproperty)
Cho trước khối thông tin x, không thể tìm được một khối thông tin ykhác x sao cho H(y) = H(x) Thuộc tính này được gọi là weakcollision resistance
Không thể tìm được hai khối thông tin x và y khác nhau sao cho H(x)
= H(y) Thuộc tính này được gọi là strong collision resistance