Hàm dẫn xuất khóa (KDF) là thành phần cơ bản và cần thiết của các hệ thống mật mã. Mục tiêu của nó là từ nguồn tư liệu khóa ban đầu nào đó (thông thường chứa một độ ngẫu nhiên nhất định nào đó, nhưng không có phân bố đều hoặc kẻ tấn công có một phần tri thức về nguồn dữ liệu đó) điều chế thành một hoặc nhiều khóa mật mã mạnh.
Số lượng và độ dài của các khóa mật mã phụ thuộc vào các thuật toán mật mã cụ thể cần đến những khóa đó. Nhìn chung các hàm dẫn xuất khóa phải đáp ứng được mọi mức độ về số lượng và độ dài nói trên. Thuật ngữ “khóa mật mã mạnh” được đề cập ở đây ngụ ý là các khóa giả ngẫu nhiên mà người ta không thể phân biệt được với một xâu các ký tự ngẫu nhiên phân bố đều, có độ dài được xác định bởi sức mạnh tính toán trên thực tế. Đặc biệt, các hàm dẫn xuất khóa phải bảo đảm rằng tri thức về một phần các bit hoặc khóa từ đầu ra của hàm KDF không làm lộ thông tin về các bit khác được sinh ra.
Các ví dụ điển hình về tư liệu khóa ban đầu là các giá trị Diffie - Hellman được tính toán trong giao thức trao đổi khóa, một dãy bit thu được bởi lấy mẫu thống kê (như lấy mẫu các sự kiện hệ thống hoặc các phím gõ của người dùng), đầu ra của bộ sinh số ngẫu nhiên vật lý không hoàn hảo....
Cho đến nay, hầu hết các thiết kế KDF trong thực tế (người ta hay gọi loại KDF này là lược đồ truyền thống) có thể được mô tả như sau:
KM = Hash(SKM ll”1” llinfo) ll Hash (SKM ll ”2” llinfo) ll... ll Hash(SKM ll ”t” llinfo)
Hoặc
KM = PRF(SKM ll”1” llinfo) ll PRF(SKM ll”2” llinfo) ll... ll PRF(SKM ll”t” llinfo)
Trong đó, SKM ký hiệu nguồn tư liệu khóa (hay là tư liệu khóa ban đầu), ll chỉ phép nối và info (tùy chọn) là thông tin ngữ cảnh và ứng dụng đặc biệt. PRF(K,.) chỉ hàm giả ngẫu nhiên bị khóa bởi khóa K. Giá trị t phụ thuộc vào tư liệu khóa KM do ứng dụng yêu cầu. Ở đây, Hash thường được thực hiện bởi hàm hash rõ như SHA-1.
Đến nay, các lược đồ truyền thống đã được nghiên cứu và ứng dụng tương đối nhiều. Về ứng dụng, điển hình là mô tả trong tài liệu SP 800-108 Recommendation For Key Derivation Using Pseudorandom Function của Viện Tiêu chuẩn quốc gia Mỹ (NIST).
Những năm gần đây, một cấu trúc mới của KDF đã được đề xuất, trong đó hai giai đoạn tương ứng với hai môđun trích và mở rộng được tách bạch rõ ràng, có thể mô tả như sau:
K = Hash(SKM);
KM = PRF(K,”1”llinfo) ll PRF(K,”2”llinfo) ll... ll PRF(K,”t”llinfo);
Lược đồ mới này được gọi tắt là lược đồ XtX (trích - rồi - mở rộng)
Khi tư liệu khóa ban đầu (SKM) có tính chất ngẫu nhiên như khóa K ngẫu nhiên đều hoặc giả ngẫu nhiên thì người ta có thể sử dụng SKM làm khóa K cho hàm giả ngẫu nhiên (PRF) để tạo ra nhiều khóa mật mã khác. Tuy nhiên, khi tư liệu khóa ban đầu không ngẫu nhiên phân bố đều hoặc không giả ngẫu nhiên thì trước hết KDF cần "trích" từ tư liệu khóa không hoàn hảo này một khóa giả ngẫu nhiên rồi từ đó các khóa tiếp theo có thể được dẫn xuất nhờ sử dụng một PRF (hàm giả ngẫu nhiên). Như vậy, có thể có hai môđun logic trong một KDF: môđun đầu tiên lấy tư liệu khóa ban đầu và trích ra một khóa K giả ngẫu nhiên có độ dài cố định, môđun thứ hai sẽ mở rộng khóa K thành một số khóa mật mã giả ngẫu nhiên nữa.
Cả hai lược đồ đều xử lý giá trị SKM (có entropy ở một mức độ nào đó) bằng hàm Hash để tập trung entropy vào các bit ra, nhưng điểm khác biệt chính giữa hai loại lược đồ này là ở cách áp dụng hàm Hash. Trong lược đồ truyền thống cũ, hàm Hash được dùng lặp lại để trích nhiều bit ra còn trong XtX hàm Hash được dùng một lần để trích một số rất ít các bit (để tạo ra khóa đơn K). Điều này tạo ra ưu thế ban đầu về độ an toàn cho lược đồ XtX so với lược đồ truyền thống. Tuy nhiên, lược đồ XtX cũng cần sinh ra nhiều bit như lược đồ truyền thống. Điều làm cho lược đồ XtX vẫn giữ được ưu thế chính là việc dùng lặp lại PRF. PRF đã được thiết kế và phân tích để làm chính xác cái việc: nhận một khóa đơn tốt và sinh ra nhiều bit giả ngẫu nhiên. Cần chú ý rằng trong lược đồ truyền thống cũ (so với SP 800-108 Recommendation For Key Derivation Using Pseudorandom Function), hàm Hash rõ được áp dụng lặp đi lặp lại vào các giá trị chỉ khác biệt rất ít bởi giá trị đếm. Nghĩa là các đầu vào của hàm Hash tuy khác nhau nhưng có tương quan cao. Trong lược đồ XtX, hàm PRF được áp dụng lặp đi lặp lại vào các giá trị chỉ khác biệt rất ít như thế, nhưng PRF được thiết kế để duy trì an toàn ngay cả khi các đầu vào (trừ khóa mã) đã được biết hết và có tương quan, hoặc thậm chí do đối phương lựa chọn. Ngay cả đối với lược đồ mô tả trong SP 800-108, sau khi đã có cải tiến lược đồ truyền thống bằng cách thay hàm Hash bằng PRF thì lược đồ XtX dạng sau đây vẫn có thêm một ưu thế nữa là khóa K đã được làm mạnh hơn từ SKM nhờ “bộ trích tính ngẫu nhiên” XTR (mà ở trên ta ký hiệu chung là Hash) có “muối” XTS không bí mật:
PRK = XTR(XTS, SKM);
KM = PRF*(PRK, CTXinfo, L)
trong đó, t = , d = L mod k và k là độ dài đầu ra của PRF,
PRF*(PRK, x, L) = K(1) ll K(2) ll... ll K(t):d
K(1) = PRF(PRK, 0:k llx ll0:32),
K(i+1) = PRF(PRK, K(i)llx lli:32), 1 i <t.
Cần nói thêm là, muối XTS được rút ra từ đại lượng ngẫu nhiên phân phối đều, tuy không cần giữ bí mật nhưng cũng làm cho khóa đơn mạnh lên rất nhiều so với SKM. Người ta chứng minh được rằng, khi đó KM là giả ngẫu nhiên.Việc nghiên cứu các hàm dẫn xuất khóa là rất quan trọng và cần thiết cho quá trình nghiên cứu, ứng dụng và cả chuẩn hóa các thành tố mật mã.
13:00 | 30/07/2024
Trong thế giới số hiện nay, việc nhận thức về cách các công ty thu thập và sử dụng dữ liệu của người dùng trở nên quan trọng hơn bao giờ hết. Nếu dữ liệu cá nhân rơi vào tay kẻ xấu, người dùng có thể trở thành nạn nhân của việc gian lận và bị đánh cắp danh tính. Dưới đây là năm lời khuyên để bảo vệ quyền riêng tư dữ liệu cho người dùng.
10:00 | 27/05/2024
Quản lý rủi ro chuỗi cung ứng (Supply Chain Risk Management - SCRM) là quá trình tìm kiếm và giải quyết các lỗ hổng tiềm ẩn trong chuỗi cung ứng của một doanh nghiệp. Mục đích của SCRM là nhằm giảm thiểu tác động của những rủi ro này đối với hoạt động, thương hiệu và hiệu quả tài chính của doanh nghiệp.
19:00 | 30/04/2024
Theo báo cáo năm 2022 về những mối đe doạ mạng của SonicWall, trong năm 2021, thế giới có tổng cộng 623,3 triệu cuộc tấn công ransomware, tương đương với trung bình có 19 cuộc tấn công mỗi giây. Điều này cho thấy một nhu cầu cấp thiết là các tổ chức cần tăng cường khả năng an ninh mạng của mình. Như việc gần đây, các cuộc tấn công mã độc tống tiền (ransomware) liên tục xảy ra. Do đó, các tổ chức, doanh nghiệp cần quan tâm hơn đến phương án khôi phục sau khi bị tấn công.
09:00 | 28/04/2024
Thời gian gần đây, lĩnh vực an toàn thông tin ghi nhận hình thức bảo mật Bug Bounty đang ngày càng nở rộ. Tuy nhiên, bên cạnh những số liệu khủng về giải thưởng, lỗ hổng được phát hiện, vẫn có những ý kiến trái chiều về hiệu quả thực sự mà Bug Bounty đem lại cho các tổ chức, doanh nghiệp.
Một ví dụ điển hình trong việc triển khai mô hình Zero Trust thành công là của Tập đoàn công nghệ Microsoft. Điều này minh chứng cho cách một tổ chức lớn có thể bảo vệ tài nguyên và người dùng bằng các phương pháp kiểm soát nghiêm ngặt, đảm bảo an ninh mạng toàn diện. Đây cũng là bài học kinh nghiệm cho các tổ chức trong quá trình triển khai mô hình bảo mật hiện đại này.
10:00 | 14/11/2024
Đứng trước thách thức về các mối đe dọa nâng cao, khái niệm về “chuỗi tiêu diệt” được sử dụng để phòng, chống các mối đe dọa này. Phần 2 của bài báo tập trung trình bày về các biện pháp phát hiện, bảo vệ hệ thống khỏi tấn công APT, khai thác lỗ hổng Zero-day và tấn công chuỗi cung ứng.
13:00 | 18/11/2024