Khuyến cáo của Viện Tiêu chuẩn và công nghệ quốc gia Mỹ (NIST) về tấn công mật mã lên SHA-1
Một hàm băm nhận dữ liệu nhị phân, được gọi là thông điệp, và tạo ra một đại diện thu gọn, được gọi là tóm lược thông điệp. Hàm băm mật mã là một hàm băm được thiết kế để đạt được một số tính chất an toàn nào đó. Tiêu chuẩn hàm băm an toàn FIPS 180-2: Secure Hash Standard, chỉ ra các thuật toán để tính 5 hàm băm mật mã- SHA-1, SHA-224, SHA-256, SHA-384 và SHA-512.
Năm 2005, giáo sư Xiaoyun Wang đã thông báo một tấn công lượng sai lên hàm băm SHA-1. Cùng với những cải tiến tiếp theo của giáo sư Wang, tấn công này được đánh giá là tìm được một va chạm băm (hai thông báo có cùng giá trị băm) với khối lượng công việc ước tính khoảng 263 phép toán, thay cho một cách lý tưởng là 280 phép toán như người ta mong đợi cho SHA-1 hoặc một hàm băm tốt bất kỳ có độ dài đầu ra bằng 160 bit. Đây là một khối lượng tính toán lớn, nhưng 263 phép toán rõ ràng là nằm trong khả năng của một kẻ tấn công có nhiều tài nguyên. NIST công nhận rằng giáo sư Wang đã thực sự tìm được một tấn công va chạm thực hành lên SHA-1.
Trong các ngày 31/10 và 1/11/2005 tại Gaithersburg, NIST đã tổ chức Hội thảo hàm băm lần thứ nhất để xem xét tình trạng của các hàm băm và đánh giá các tác động của tấn công mà giáo sư Wang đã thực hiện. Trước hết, tấn công ảnh hưởng tới một số ứng dụng chữ ký số, bao gồm các hoạt động ký chứng thư và tem thời gian, khi một bên tham gia chuẩn bị thông điệp để cho bên thứ hai sinh ra chữ ký số và bên thứ ba sau đó kiểm tra tính đúng đắn của chữ ký. Có một số ứng dụng mật mã không đòi hỏi tính kháng va chạm mạnh, ví dụ như: các ứng dụng băm có khoá, Mã xác thực thông điệp dựa trên hàm hăm (Hash-based Message Authentication Code-HMAC) hoặc các ứng dụng dẫn xuất khoá của các hàm băm thì dường như không bị ảnh hưởng.
Ngày 15/3/2006, NIST đã công bố chính sách của mình về việc sử dụng các hàm băm hiện thời như sau: “Họ các hàm băm SHA-2 (tức là, SHA-224, SHA-256, SHA-384 và SHA-512) có thể được sử dụng cho tất cả các ứng dụng có sử dụng các thuật toán băm an toàn trong các cơ quan Liên bang Mỹ. Các cơ quan liên bang cần phải dừng việc sử dụng SHA-1 cho chữ ký số, tem thời gian số và các ứng dụng khác yêu cầu tính kháng va chạm càng mạnh càng tốt và phải sử dụng các hàm băm thuộc họ SHA-2 cho những ứng dụng này sau 2010. Sau 2010, các cơ quan liên bang chỉ có thể sử dụng SHA-1 cho các ứng dụng sau: các Mã xác thực thông báo dựa trên hàm băm (HMAC); các hàm dẫn xuất khoá (KDF); các bộ tạo số ngẫu nhiên (RNG). NIST khuyến khích những người thiết kế giao thức và ứng dụng sử dụng các hàm băm thuộc họ SHA-2 cho tất cả các giao thức và ứng dụng mới.”
Ngày 25/4/2006, NIST đã công bố kế hoạch 3 bước của mình để khắc phục các tấn công mật mã lên SHA-1 như sau:
Trước hết là nhanh chóng chuyển sang họ các hàm băm SHA-2 mạnh hơn (SHA-224, SHA-256, SHA-384 and SHA-512) đối với các ứng dụng chữ ký số. Các hàm băm SHA-2 là một họ các hàm băm có nhiều điểm giống với SHA-1, nhưng chúng mạnh hơn SHA-1 nhiều. Một cách tiềm năng, chúng có thể bị tấn công bởi cùng các kỹ thuật tương tự, nhưng chắc không xảy ra cho tới 2015; và có thể không bao giờ được tìm thấy, ngoại trừ sau nhiều thập kỷ nữa có sự gia tăng cấp luỹ thừa về năng lực tính toán. Các hàm băm SHA-2 đang ở trong quá trình triển khai thương mại hoá và có sẵn trong nhiều ứng dụng và hệ thống mới hơn, nhưng không có trong phần lớn các hệ thống đã được triển khai. Ràng buộc chính đối với việc sử dụng hiện nay của các hàm băm SHA-2 cho các chữ ký là tính tương tác; trong nhiều hệ thống nó không được cài đặt và có thể như thế trong nhiều năm nữa. NIST khuyến khích việc chấp nhận nhanh chóng các hàm băm SHA-2 cho các chữ ký số, và trong trường hợp bất kỳ, cho đến cuối năm 2010, các Cơ quan Liên bang cần phải dừng sử dụng các chữ ký dựa trên SHA-1.
Bước thứ hai là khuyến khích việc nghiên cứu hàm băm để nắm vững việc thiết kế hàm băm và các tấn công trong công tác chuẩn bị cho việc lựa chọn các hàm băm. Cộng đồng mật mã đang ở trong giai đoạn phát triển nhanh về lý thuyết của các hàm băm và các tấn công mã thám chúng. Vào các ngày 24-25/8/2006, tại Santa Barbara bang California đã diễn ra Hội thảo lần thứ hai về hàm băm mật mã.
Bước thứ ba là một cuộc tuyển chọn hàm băm, tương tự như quá trình tuyển chọn AES đã rất thành công. Một lịch trình đã được đặt ra, bao hàm các yêu cầu về độ trưởng thành và tính ổn định cần thiết trong công nghệ và lý thuyết hàm băm, các kết quả sẽ cải tiến hoặc hoàn thiện các hàm băm SHA-2. NIST không ấn định trước về số lượng các hàm băm sẽ được tuyển chọn từ cuộc thi này, vì một dải rất rộng các ứng dụng hàm băm có thể cần đến hai hoặc nhiều hơn các hàm băm chuyên dụng.
Dự kiến phát triển hàm băm mới
Kế hoạch được đề xuất đã xem xét các nhân tố sau:
- Quá trình phát triển hàm băm sẽ giống như quá trình phát triển của AES, mặc dù kế hoạch phát triển hàm băm cũng là một đối tượng để điều chỉnh.
- Cũng như trong cuộc thi tuyển AES, NIST dự định sắp xếp lịch các hội thảo về hàm băm có kết hợp với các hội nghị và hội thảo khác, bởi vì như vậy sẽ giảm thiểu việc di chuyển của những người quan tâm và thu hút được đông người tham gia.
- FIPS 180-2 (Secure Hash Standard) được xem xét lại vào năm 2007 và một lần nữa vào năm 2012. Mục tiêu là hoàn thành quá trình tuyển chọn hàm băm và công bố Chuẩn Hàm băm đã được củng cố và cập nhật vào năm 2012.
NIST đã ban hành dự thảo về các yêu cầu chấp nhận tối thiểu, các yêu cầu đệ trình và tiêu chuẩn đánh giá cho các thuật toán băm dự tuyển. Dựa trên các phản hồi của công chúng, NIST đã bổ sung các yêu cầu, các tiêu chuẩn đánh giá và phát hành Thư mời cho họ thuật toán băm mật mã mới (SHA-3) vào cuối tháng 11/2007 nhằm phát động cuộc thi thuật toán băm.
Thời hạn đệ trình thuật toán đã kết thúc vào tháng 10/2008. Danh sách các dự tuyển được chấp nhận cho vòng sơ tuyển thứ nhất đã công bố, gồm có 51 thuật toán. Sau đó đã có một hội thảo với mục đích chính là lựa chọn để rút gọn số lượng các đệ trình xuống để tiến hành các đánh giá tiếp theo.
Đến cuối tháng 11/2008, có tất cả 64 đệ trình cho cuộc thi SHA-3, nhưng trong đó có 56 đệ trình là sẵn sàng và được biết một cách công khai. Trong số này có 51 đệ trình đã được đưa vào vòng sơ tuyển thứ nhất. Ngay sau khi NIST công bố danh sách các dự tuyển, cộng đồng mật mã trên thế giới đã tập trung đánh giá độ an toàn mật mã của các dự tuyển SHA-3. Chỉ trong hai tháng cuối năm 2008 đã xuất hiện nhiều bài báo về chủ đề này. Trong số 51 đệ trình, cho tới đầu tháng 2/2009 có 10 đệ trình đã được chính những người thiết kế ra chúng rút lui khỏi cuộc thi hoặc công nhận một cách công khai là đã bị phá.
Kế hoạch tiếp theo cho cuộc thi hàm băm
Quý 2 năm 2009
Xem xét các hàm băm đã được đệ trình, chọn các dự tuyển mà thoả mãn các yêu cầu đệ trình cơ bản.
Tổ chức Hội nghị dự tuyển hàm băm lần thứ Nhất để tuyên bố các dự tuyển vòng đầu. Những người đệ trình trình bày các hàm băm của họ tại hội nghị.
Kêu gọi các ý kiến bình luận về các dự tuyển vòng đầu.
Quý 1 năm 2010
Kết thúc giai đoạn lấy ý kiến bình luận.
Ghi chú: Phụ thuộc vào số lượng và chất lượng của các đệ trình, NIST có thể kéo dài thời gian cho giai đoạn lấy ý kiến bình luận vòng 1 để có đủ thời gian cho phân tích công khai của các thuật toán dự tuyển, hoặc có thể tiến hành thêm các vòng phân tích để giảm đáng kể số các thuật toán dự tuyển cho các xem xét tiếp theo cũng như các thuật toán vào chung kết. Trong trường hợp này, NIST có thể tổ chức nhiều hội thảo để thảo luận về các kết quả phân tích trên các thuật toán dự tuyển cho đến khi sẵn sàng tuyển chọn các ứng cử viên vào chung kết.
Quý 2 năm 2010
Tổ chức Hội nghị Hàm băm lần thứ Hai. Bình luận các kết quả phân tích cho các dự tuyển đã được đệ trình. Những người đệ trình có thể tiếp tục cải tiến thuật toán của họ.
Quý 3 năm 2010
Xử lý các bình luận công khai về các dự tuyển đã đệ trình; chọn những ứng cử viên vào chung kết. Chuẩn bị báo cáo giải thích việc lựa chọn.
Công bố danh sách các ứng cử viên của vòng chung kết. Công bố báo cáo tuyển chọn.
Quý 4 năm 2010
Những người đệ trình của các ứng cử viên vòng chung kết tuyên bố ý kiến lần cuối về các đệ trình của họ.
Bắt đầu vòng cuối.
Quý 4 năm 2011
Kết thúc giai đoạn bình luận công khai cho vòng cuối.
Quý 1 năm 2012
Tổ chức Hội nghị chung kết hàm băm. Những người đệ trình của các thuật toán được vào chung kết giải trình về các bình luận đối với các đệ trình của họ.
Quý 2 năm 2012
Xử lý các bình luận công khai, chọn người thắng cuộc. Chuẩn bị báo cáo mô tả các lựa chọn chung kết.
Tuyên bố các hàm băm mới.
Quý 3 năm 2012
Dự thảo chuẩn hàm băm được cập nhật.
Công bố dự thảo chuẩn để lấy ý kiến công khai.
Quý 4 năm 2012
Kết thúc giai đoạn lấy ý kiến công khai. Xử lý các ý kiến bình luận.
Gửi chuẩn đã được đề xuất tới người có thẩm quyền để ký ban hành.