Giới thiệu về hệ mã khoá công khai

Một phần của tài liệu Số học số lớn cho mật mã luận án thạc sĩ (Trang 27 - 29)

6. Ý nghĩa khoa học và thực tiễn cửa đề tài

1.3 Giới thiệu về hệ mã khoá công khai

Vào năm 1976, các nhà khoa học Whitfield Diffie, Martin Hellman và Ralph Merkle tại Đại học Stanford giới thiệu ý tƣởng về hệ thống mật mã khóa công khai, có thể khắc phục các nhƣợc điểm của phƣơng pháp mật mã khoá đối xứng. Các phƣơng pháp Diffie-Hellman của Martin Hellman và Whitfield Diffie đƣợc công bố. Năm 1977 nhóm tác giả Ronald Rivest, Adi Shamir và Leonard Adleman đã công bố phƣơng pháp RSA, phƣơng pháp mã hóa khóa công khai RSA hiện đƣợc sử dụng rất nhiều trong các ứng dụng mã hóa và bảo mật thông tin. RSA nhanh chóng trở thành chuẩn mã hóa khóa công khai trên toàn thế giới do tính an toàn và khả năng ứng dụng của nó.

Độ an toàn của hệ thống mật mã mới này, không phải đƣợc đo bằng độ phức tạp của các thuật toán mã hóa, mà nó dựa vào một khám phá mới vô cùng quan trọng trong ngành khoa học máy tính, đó là lý thuyết độ phức tạp tính toán: Chủ yếu đề cập đến sự phân tích các thuật toán và đặc biệt là số các bƣớc tính toán cần thiết để phát hiện khóa bí mật. Từ đó xác định độ an toàn của bất kỳ hệ mật mã khóa công khai nào.

Một hệ thống mật mã khóa công khai sử dụng hai loại khóa trong cùng một cặp khóa: Khoá công khai (public key) đƣợc công bố rộng rãi và sử dụng trong mã hóa thông tin, khóa riêng (private key) sử dụng để giải mã thông tin đã đƣợc mã hóa bằng khóa công khai. Các phƣơng pháp mã hóa này khai thác

những ánh xạ f mà việc thực hiện ánh xạ ngƣợc f1 rất khó so với việc thực hiện ánh xạ f. Chỉ khi biết đƣợc khóa riêng thì mới có thể thực hiện đƣợc ánh xạ f1.

Các quan điểm của hệ mã công khai:

+ Hệ mật mã khoá công khai dựa trên quan điểm hàm một chiều (one-way function) và khoá công khai, để biến đổi một bản rõ thành bản mã với thời gian tính toán hợp lý. Nhƣng nếu muốn tính ngƣợc lại (inverse function) thì phải mất nhiều thời gian và khó thực hiện đƣợc. Vì vậy, các thám mã rất khó có thể tính toán để thu đƣợc bản rõ từ bản mã chặn đƣợc.

+ Một quan điểm khác dùng trong hệ mật mã khoá công khai, là thông tin “cửa sập” mà hàm một chiều phải có. Thông tin bí mật (khoá riêng) chỉ đƣợc đƣa vào bởi ngƣời sở hữu cặp khóa. Khi có đƣợc thông tin “cửa sập” thì công việc giải mã sẽ trở nên dễ dàng.

Các hệ mật mã khóa công khai đƣợc xây dựng dựa trên những bài toán khó nhƣ: bài toán logarithm rời rạc trong trƣờng hữu hạn Zp (hệ ElGamal) và bài toán phân tích một số nguyên lớn ra các thừa số nguyên tố (hệ RSA).

Hoạt động của hệ mã khoá công khai:

+ Đối với hệ thống mã hóa khóa công khai: Mỗi ngƣời sử dụng phải tạo riêng cho mình một cặp khóa. Trong đó, một khóa công khai (public key) cùng với thuật toán mã hóa E, đƣợc công bố rộng rãi tại thƣ mục dùng chung cho mọi ngƣời sử dụng. Còn lại là khóa riêng (private key) cùng với thuật toán giải mã D đƣợc giữ bí mật bởi ngƣời sử dụng.

Nhƣ vậy, ngƣời A muốn gửi thông điệp R đến cho ngƣời B

Giả sử: Khóa công khai của B là: KB, Khóa riêng của B là: MB Khóa công

khai của A là: KA, Khóa riêng của A là: MA Thuật toán mã hóa: E, thuật toán giải mã: D

Ngƣời A tìm khóa công khai KB của ngƣời B trong thƣ mục dùng chung và tính C = E(KB, R), sau đó gửi bản mã C cho ngƣời B. Khi nhận bản mã C ngƣời B sẽ giải mã dựa vào khóa riêng MB của mình để tính R = D(MB, C).

Các yêu cầu của hệ mã khoá công khai:

+ Dễ tính toán đối với các thành viên khi muốn tạo một cặp khóa (khóa công khai và khóa riêng).

+ Ngƣời gửi dễ tính toán khi biết khóa công khai và thông điệp R cần mã hoá thành một bản mã tƣơng ứng C = E(KB,R).

+ Ngƣời nhận dễ tính toán khi sử dụng khóa riêng để giải mã bản mã C, khôi phục lại thông điệp ban đầu: R = D(MB, C).

+ Đối với ngƣời thám mã, khi biết đƣợc khóa công khai KB, muốn xác định khóa bí mật MB hoặc biết đƣợc khóa công khai KB và bản mã C để khôi phục lại thông điệp R ban đầu: Điều này không thể tính toán nổi.

Một phần của tài liệu Số học số lớn cho mật mã luận án thạc sĩ (Trang 27 - 29)