CHƯƠNG I NGHIÊN CỨU TỔNG QUAN VỀ MẬT MÃ DựA TRÊN ĐƯỜNG CONG ELLIPTIC 1. Khái quát về mật mã học Mật mã học là nghiên cứu các kỹ thuật toán học giúp cho việc trao đổi thông tin an toàn truớc kẻ thù. - Mô hình truyền thông cơ bản Hình 1.1, A (Alice) và B (Bob) trao đổi thông tin qua một kênh truyền tin không an toàn. Giả định rằng tất cả các thông tin liên lạc diễn ra khi có mặt của kẻ thù E (Eve), E có mục tiêu phá vỡ bất kỳ dịch vụ an toàn nào đuợc cung cấp cho A và B.
Mô hình truyền thông cơ bản 4 ❖ Mục tiêu an ninh 1. Bảo mật: giữ bí mật dữ liệu, trừ những người có thẩm quyền để xem thông điệp đó (các thư gửi từ A tới B sẽ không thể đọc được bởi E). Tính toàn vẹn dữ liệu: bảo đảm rằng dữ liệu không bị thay đổi bởi bên thứ 3 (B sẽ có thể phát hiện khi dữ liệu được gửi bởi A đã được sửa đổi bởi E). Xác thực nguồn gốc dữ liệu: xác thực nguồn gốc dữ liệu (B sẽ có thể xác minh rằng dữ liệu được cho là đã gửi bởi A thực sự có nguồn gốc với A).
Xác thực định danh: xác thực danh tính của một thực thể (B phải được xác thực về danh tính của thực thể giao tiếp khác). Chống chối bỏ: ngăn chặn một thực thể từ chối các cam kết hoặc hành động trước đó (khi B nhận được một thông điệp có chủ ý từ A, B không chỉ xác thực rằng thông điệp bắt nguồn từ A, nhưng B có thể xác thực bên thứ ba trung lập về điều này; do đó A không thể phủ nhận đã gửi tin nhắn đến B). ❖ Mô hình đối kháng Trong mô hình các mối đe dọa thực tế mà A và B phải đối mặt. Ngoài việc có thể đọc tất cả dữ liệu truyền qua kênh, E có thể sửa đổi dữ liệu truyền và chèn dữ liệu của chính mình.
Hơn thế nữa, E có khả năng tính toán đáng kể theo ý mình. Cuối cùng, mô tả đầy đủ các giao thức truyền thông và bất kỳ cơ chế mật mã được triển khai (trừ thông tin khoá bí mật) được biết bởi E. Thách thức đối với các nhà mật mã là thiết kế các cơ chế để đảm bảo truyền thông đối mặt với những kẻ thù như vậy. ❖ Mật mã khóa đối xứng Các hệ thống mật mã có thể được chia thành hai loại.
Trong mô hình khóa đối xứng, được mô tả trong Hình 1.2 (a), đầu tiên, các thực thể truyền thông thỏa thuận về các nguyên liệu bí mật và xác thực. Sau đó, sử dụng một lược đồ mã hóa khóa đối xứng như Chuẩn hóa dữ liệu (DES), RC4 hoặc Chuẩn mã dữ liệu tiên 5 tiến (Advanced Encryption Standard - AES) để bảo mật. Hơn nữa, có thể sử dụng thuật toán mã xác thực thông báo (MAC) như HMAC để kiểm tra được tính toàn vẹn dữ liệu và xác thực nguồn gốc dữ liệu. Ví dụ, nếu muốn giữ bí mật và khoá bí mật được chia sẻ bởi A và B là k, sau đó A sẽ mã hóa một bản rõ m sử dụng một hàm mã hoá ENC và khoá k và truyền bản mã kết quả c = ENck(m) sang B.
Khi nhận c, B sẽ dùng hàm DEC và khóa k để phục hồi m = DEck (c). Nếu muốn tính toàn vẹn dữ liệu và xác thực nguồn gốc dữ liệu, thì A và B đầu tiên sẽ đồng ý với một khoá bí mật k, sau đó A sẽ tính toán thẻ xác thực t = MA ck (m) của một bản rõ m sử dụng thuật toán MAC và khóa k. A sau đó sẽ gửi m và t đến B. Khi nhận m và t, B sẽ sử dụng thuật toán MAC và cùng một khoá k để tính lại t' = MAc k(m) của m và chấp nhận thông điệp là có nguồn gốc từ A nếu t = t'.
* Phân phối và quản lý khóa Ưu điểm chính của mật mã khóa đối xứng là hiệu quả cao; tuy nhiên, có những hạn chế đáng kể đối với các hệ thống này. Một nhược điểm chính là vấn đề phân phối - gọi là vấn đề phân phối khóa chính - yêu cầu về một kênh vừa bí mật vừa chứng thực cho việc phân phối khoá. Trong một số ứng dụng, phân phối này có thể được thực hiện một cách thuận tiện bằng cách sử dụng một kênh an toàn vật lý như chuyển phát nhanh đáng tin cậy. Một cách khác là sử dụng các dịch vụ của một bên thứ ba tin cậy trực tuyến thiết lập các khóa bí mật với tất cả các thực 6 thể trong mạng và sau đó sử dụng các khoá này để phân phối một cách an toàn khoá tới các thực thể liên lạc khi được yêu cầu.
Các giải pháp như vậy có thể phù hợp với các môi trường có cơ quan trung ương được chấp nhận và đáng tin cậy nhưng rõ ràng là không thực tế trong các ứng dụng như email trên Internet. Hạn chế thứ hai là vấn đề quản lý khóa - trong mạng của các thực thể N , mỗi thực thể có thể phải duy trì các tài liệu khóa khác nhau với mỗi N — 1 thực thể khác. Vấn đề này có thể được giảm bớt bằng cách sử dụng các dịch vụ của một bên thứ ba đáng tin cậy trực tuyến phân phối tài liệu khóa theo yêu cầu, qua đó giảm sự cần thiết cho các thực thể để lưu trữ an toàn nhiều khóa. Một lần nữa, tuy nhiên, các giải pháp như vậy là không thực tế.
Cuối cùng, vì khóa được chia sẻ giữa hai thực thể (hoặc nhiều hơn), không thể sử dụng được các kỹ thuật khóa đối xứng để tạo ra các chữ ký số cung cấp các dịch vụ chống chối bỏ. ❖ Mật mã khóa công khai. Khái niệm về mật mã khoá công khai, được mô tả trong Hình 1.2 (b), được Diffie-Hellman và Merkle giới thiệu vào năm 1975 để giải quyết các thiếu sót nói trên của mật mã khóa đối xứng. Ngược lại với mật mã khóa đối xứng, mật mã khoá công khai chỉ yêu cầu rằng các thực thể trao đổi các tài liệu (nhưng không bí mật).
Mỗi thực thể chọn một cặp khóa duy nhất ( e, d) bao gồm một khóa công khai e, và một khóa cá nhân tương ứng d (mà thực thể phải giữ bí mật). Tính bí mật: Nếu thực thể A muốn gửi thực thể B một thông điệp bí mật m, A có đuợc một bản sao khóa công khai eB chính xác của B và sử dụng chức năng mã hóa ENC của một chuơng trình mã hóa khóa công khai để tính bản mã c = EN c eB (m). A sau đó truyền c đến B, sử dụng các chức năng giải mã DEC và dB cá nhân của mình để phục hồi các bản rõ: m = DEc d (c). Giả định rằng đối thủ chỉ có kiến thức về eB (nhung không phải là dB không thể giải mã đuợc c).
Luu ý rằng không có yêu cầu về tính bí mật trên e B. Điều quan trọng là chỉ có A nhận 7 đuợc một bản sao đích thực của eB - nếu không A mã hóa m bằng cách sử dụng khóa công khai eE của E thay vì của B, thì m sẽ đuợc phục hồi bởi E. Tính chống chối bỏ: Các luợc đồ chữ ký số có thể đuợc tạo ra để xác thực nguồn gốc dữ liệu và toàn vẹn dữ liệu, và để tạo thuận lợi cho việc cung cấp các dịch vụ chống chối bỏ. Một thực thể A sẽ sử dụng thuật toán tạo chữ ký SIGN của một luợc đồ chữ ký số và khóa cá nhân dA để tính chữ ký của một thông điệp: s = sỊGN d (m).
Khi nhận m và s, một thực thể B có bản sao của khóa công khai của sử dụng một thuật toán xác minh chữ ký để xác nhận rằng s đã thực sự đuợc tạo ra từ m và dA. Vì dA chỉ đuợc biết bởi A , B chắc chắn rằng thông điệp thực sự bắt nguồn từ A. Hơn nữa, chữ ký của m cũng có thể đuợc xác minh bởi một bên thứ ba có thể giải quyết tranh chấp nếu từ chối có ký tên. Không giống nhu chữ ký viết tay, chữ ký số của phụ thuộc vào thông điệp m đang đuợc ký kết.
Mặc dù không có yêu cầu về bí mật đối với khóa công khai e A, điều quan trọng là nguời kiểm tra nên sử dụng một bản sao của khi xác minh các chữ ký đuợc tạo ra bởi. Bằng cách này, mật mã khóa công khai cung cấp giải pháp khắc phục điểm yếu của mật mã hóa đối xứng, cụ thể là phân phối khóa, quản lý khóa và cung cấp tính chống chối bỏ. Cần phải chỉ ra rằng mặc dù yêu cầu về một kênh bí mật để phân phối tài liệu khoá đã được loại bỏ, việc triển khai cơ sở hạ tầng khóa công khai (PKI) để phân phối và quản lý khóa công khai có thể là một thách thức lớn trong thực tế. Ngoài ra, hoạt động của khoá công khai thường chậm hơn đáng kể so với các khóa đối xứng.
Do đó, các hệ thống lai ghép thường sử dụng tính một cách hiệu quả kết hợp giữa các thuật toán khoá đối xứng và các thuật toán khoá công khai. Các lược đồ dựa trên bài toán logarit rời rạc Đầu tiên, lược đồ dựa trên bài toán logarit rời rạc (DL) là giao thức thỏa 8 thuận quan trọng được đề xuất bởi Diffie và Hellman năm 1976. Vào năm 1984, ElGamal đã mô tả các chương trình mã hóa và khoá công khai của DL. Kể từ đó, nhiều biến thể của đề án đã được đề xuất.
Ở đây chúng tôi trình bày sơ đồ cơ bản của ElGamal và thuật toán Chữ kí Số (Digital Signature Algorithm - DSA). * Sinh khóa DL Trong các hệ thống logarit rời rạc, một cặp khóa được liên kết với một tập các tham số miền (p, q, g). Ở đây, p là số nguyên tố, q là ước lượng nguyên tố của p — 1 , và g E [1, p — 1 ] có trật tự q (nghĩa là, t = q là số nguyên dương nhỏ nhất đáp ứng g = 1(mod p)). Khóa bí mật là một số nguyên X được chọn thống nhất ngẫu nhiên từ khoảng thời gian [1, q — 1 ] (thao tác này được biểu thị X e R [1, q — 1 ]), và khoá công khai tương ứng là y = gxmod p.
Vấn đề xác định các tham số miền X (p , q, g) và y là vấn đề logarit rời rạc (DLP).