Một số tính chất của hệ RSA

Một phần của tài liệu Tiểu luận môn toán học cho khoa học máy tính MÃ HÓA THÔNG TIN (Trang 45)

X. Hệ mã hoá RSA

29. Một số tính chất của hệ RSA

Trong các hệ mật mã RSA, một bản tin có thể được mã hoá trong thời gian tuyến tính.

Đối với các bản tin dài, độ dài của các số được dùng cho các khoá có thể được coi như là hằng. Tương tự như vậy, nâng một số lên luỹ thừa được thực hiện trong thời gian hằng, các số không được phép dài hơn một độ dài hằng. Thực ra tham số này che dấu nhiều chi tiết cài đặt có liên quan đến việc tính toán với các con số dài, chi phí của các phép toán thực sự là một yếu tố ngăn cản sự phổ biến ứng dụng của phương pháp này. Phần quan trọng nhất của việc tính toán có liên quan đến việc mã hoá bản tin. Nhưng chắc chắn là sẽ không có hệ mã hoá nào hết nếu không tính ra được các khoá của chúng là các số lớn.

Các khoá cho hệ mã hoá RSA có thể được tạo ra mà không phải tính toán quá nhiều.

Một lần nữa, ta lại nói đến các phương pháp kiểm tra số nguyên tố. Mỗi số nguyên tố lớn có thể được phát sinh bằng cách đầu tiên tạo ra một số ngẫu nhiên lớn, sau đó kiểm tra các số kế tiếp cho tới khi tìm được một số nguyên tố. Một phương pháp đơn giản thực hiện một phép tính trên một con số ngấu nhiên, với xác suất 1/2 sẽ chứng minh rằn g số đ ược kiểm tra khôn g phải nguyên tố. Bước cuối cùng là tính p dựa vào thuật toán Euclid.

Như phần trên đã trình bày trong hệ mã hoá công khai thì khoá giải mã (private key) k B và các thừa số p,q là được giữ bí mật và sự thành công của phương pháp là tuỳ thuộc vào kẻ địch có khả năng tìm ra được giá trị của k B hay không nếu cho trước N và K B . Rất khó có thể tìm ra được k B từ K B cần biết về p và q, như vậy cần phân tích N ra thành thừa số để tính p và q. Nhưng việc phân tích ra thừa số là một việc làm tốn rất nhiều thời gian, với kỹ thuật hiện đại ngày nay thì cần tới hàng triệu năm để phân tích một số có 200 chữ số ra thừa số.

Độ an toàn của thuật toán RSA dựa trên cơ sở những khó khăn của việc xác định các thừa số nguyên tố của một số lớn. Bảng dưới đây cho biết các thời gian dự đoán, giả sử rằng mỗi phép toán thực hiện trong một micro giây.

Mã hóa thông tin

Mã hóa thông tin

D. Kết luận

Mật mã học có thể cung cấp cơ chế để giúp đỡ thực hiện điều này. Tuy nhiên, một số mục tiêu không phải bao giờ cũng là cần thiết, trong nghĩa cảnh của thực tế hay mong muốn của người sử dụng. Ví dụ, người gửi thông tin có thể mong muốn giữ mình là nặc danh; trong trường hợp này tính không từ chối rõ ràng là không thích hợp.

Mật mã hóa được sử dụng phổ biến để đảm bảo an toàn cho thông tin liên lạc. Các thuộc tính được yêu cầu là:

1. Bí mật: Chỉ có người nhận đã xác thực có thể lấy ra được nội dung của thông tin chứa đựng trong dạng đã mật mã hóa của nó. Nói khác đi, nó không thể cho phép thu lượm được bất kỳ thông tin đáng kể nào về nội dung của thông điệp.

2. Nguyên vẹn: Người nhận cần có khả năng xác định được thông tin có bị thay đổi trong quá trình truyền thông hay không.

3. Xác thực: Người nhận cần có khả năng xác định người gửi và kiểm tra xem người gửi đó có thực sự gửi thông tin đi hay không.

4. Không từ chối: Người gửi không thể từ chối việc mình đã gửi thông tin đi.

5. Chống lặp lại: Không cho phép bên thứ ba copy lại văn bản và gửi nhiều lần đến người nhận mà người gửi không hề hay biết.

Có hệ thống mã hóa đối xứng và hệ thống mã hóa bất đối xứng. Hai loại mã hóa này khác nhau ở số lượng khóa. Mã hóa đối xứng sử dụng cùng một khóa để mã hóa/giải mã. Trong khi đó, mã hóa bất đối xứng sử dụng hai khóa khác nhau để mã hóa và giải mã thông tin. Mỗi hệ thống mã hóa có ưu nhược điểm riêng. Mã hóa đối xứng xử lí nhanh nhưng độ an toàn không cao. Mã hóa bất đối xứng xử lí chậm hơn, nhưng độ an toàn và tính thuân tiện trong quản lí khóa cao. Trong các ứng dụng mã hóa hiện tại, người ta thường kết hợp các ưu điểm của cả hai loại mã hóa này.

Thuật toán khóa đối xứng là những thuật toán hoặc là sử dụng cùng một khóa cho việc mật mã hóa và giải mật mã hoặc là khóa (thứ hai) sử dụng để giải mật mã có thể dễ dàng tính được từ khóa (thứ nhất) đã dùng để mật mã hóa. Các thuật ngữ khác bao gồm mật mã hóa khóa cá nhân, mật mã hóa một khóa và mật mã hóa khóa đơn.

Một sự lặp lại (trên 6–10) của mật mã hóa khối SAFER-K. Các mật mã hiện đại thực hiện bởi máy tính có thể phức tạp hơn nhiều so với việc thực hiện bằng tay hay các máy cơ điện khác.

Khóa đối xứng có thể nhóm thành mật mã khối và mật mã luồng. Mật mã luồng mật mã hóa 1 bit tại một thời điểm, ngược lại với mật mã khối là phương thức cho phép thực hiện trên một nhóm các bit ("khối") với độ dài nào đó trong một lần. Phụ thuộc vào phương thức thực hiện, mật mã khối có thể được thực hiện như là mật mã luồng tự đồng bộ (chế độ CFB). Tương tự, mật mã luồng có thể làm để nó hoạt động trên các khối riêng rẽ của văn bản thường tại một thời điểm. Vì thế, ở đây tồn tại sự đối ngẫu giữa hai cách thức này. Các mật mã khối như DES, IDEA và AES, và mật mã luồng như RC4, là những loại mật mã khóa đối xứng nổi tiếng nhất.

Các nền tảng mật mã học khác đôi khi cũng được phân loại như là mật mã học khóa đối xứng:

Mã hóa thông tin

• Các hàm băm mật mã sản sinh ra sự băm thông điệp. Trong khi nó có thể rất dễ tính toán nhưng nó lại rất khó để đảo ngược (hàm một chiều), cho dù các thuộc tính khác thông thường cũng là cần thiết. MD5 và SHA-1 là các hàm băm nổi tiếng nhất.

• Các MAC (mã xác thực thông điệp), cũng được biết đến như là hàm băm có khóa, là tương tự như các hàm băm, ngoại trừ việc cần có khóa để tính toán việc băm. Như tên gọi của nó, chúng được sử dụng rộng rãi để xác thực thông điệp. Chúng thông thường được xây dựng từ các nền tảng khác, chẳng hạn từ mật mã khối, hàm băm không khóa hay mật mã luồng.

Các thuật toán Mã hóa khóa đối xứng có một số trở ngại không thuận tiện — hai người muốn trao đổi các thông tin bí mật cần phải chia sẻ khóa bí mật. Khóa cần phải được trao đổi theo một cách thức an toàn, mà không phải bằng các phương thức thông thường vẫn dùng để liên lạc. Điều này thông thường là bất tiện, và mật mã hóa khóa công khai (hay khóa bất đối xứng) được đưa ra như là một giải pháp thay thế. Trong mật mã hóa khóa công khai có hai khóa được sử dụng, là khóa công khai (hay khóa công cộng) vàkhóa bí mật (hay khóa cá

nhân), trong đó khóa công khai dùng để mật mã hóa còn khóa bí mật dùng để giải mật mã

(cũng có thể thực hiện ngược lại). Rất khó để có thể thu được khóa bí mật từ khóa công khai. Điều này có nghĩa là một người nào đó có thể tự do gửi khóa công khai của họ ra bên ngoài theo các kênh không an toàn mà vẫn chắc chắn rằng chỉ có họ có thể giải mật mã các thông điệp được mật mã hóa bằng khóa đó.

Các thuật toán khóa công khai thông thường dựa trên các vấn đề toán học với độ khó NP. Ví dụ RSA, dựa trên độ khó (ước đoán) của bài toán phân tích ra thừa số nguyên tố. Vì lý do thuận tiện, các hệ thống mật mã hóa lai ghép được sử dụng trong thực tế; khóa được trao đổi thông qua mật mã khóa công khai, và phần còn lại của thông tin được mật mã hóa bằng cách sử dụng thuật toán khóa đối xứng (điều này về cơ bản là nhanh hơn). Mật mã hóa đường cong elip là một dạng thuật toán khóa công khai có thể có một số ưu điểm so các hệ thống khác.

Mật mã hóa bất đối xứng cũng cung cấp cơ chế cho chữ ký số, là cách thức để xác minh với độ bảo mật cao (giả thiết cho rằng khóa cá nhân liên quan được đảm bảo giữ an toàn) rằng thông điệp mà người nhận đã nhận được là chính xác được gửi đi từ phía người gửi mà họ yêu cầu. Các chữ ký như vậy thông thường (theo luật định hay được suy diễn mặc định) được coi là chữ ký số tương đương với chữ ký thật trên các tài liệu được in ra giấy. Xét về phương diện kỹ thuật, chúng lại không phải vậy do không có sự tiếp xúc thực tế mà cũng không có liên hệ giữa "người ký" và "chữ ký". Sử dụng hợp thức các thiết kế có chất lượng cao và các bổ sung khác tạo ra khả năng có được độ an toàn cao, làm cho chữ ký điện tử vượt qua phần lớn các chữ ký thật cẩn thận nhất về mức độ thực của nó (khó bị giả mạo hơn). Các ví dụ về các giao thức chữ ký số hóa bao gồm DSA và chữ ký ElGamal. Các chữ ký số hóa là trung tâm trong các hoạt động của hạ tầng khóa công cộng (PKI) và rất nhiều hệ thống an ninh mạng (ví dụ Kerberos, phần lớn cácmạng riêng ảo (VPN) v.v). Giống như mật mã hóa, các thuật toán lai

ghép thông thường được sử dụng trong thực tế, thay vì ký trên toàn bộ chứng từ thì hàm băm

mật mã hóa của chứng từ được ký.

Mật mã khóa bất đối xứng cũng cung cấp nền tảng cho các kỹ thuật khóa thỏa thuận xác thực mật khẩu (PAKA) và không kỹ năng kiểm chứng mật khẩu (ZKPP). Điều này là quan trọng khi xét theo phương diện của các chứng minh lý thuyết và kinh nghiệm rằng việc xác

Mã hóa thông tin

thực chỉ bằng mật khẩu sẽ không đảm bảo an toàn trên mạng chỉ với khóa mật mã đối xứng và các hàm băm.

Để có thể đạt được những ưu điểm của hệ thống thì mối quan hệ giữa khóa công khai và thực thể sở hữu khóa phải được đảm bảo chính xác. Vì thế các giao thức thiết lập và kiểm tra mối quan hệ này là đặc biệt quan trọng. Việc gắn một khóa công khai với một định danh người sử dụng thường được thực hiện bởi các giao thức thực hiện hạ tầng khóa công khai (PKI). Các giao thức này cho phép kiểm tra mối quan hệ giữa khóa và người được cho là sở hữu khóa thông qua một bên thứ ba được tin tưởng. Mô hình tổ chức của hệ thống kiểm tra có thể theo phân lớp (các nhà cung cấp chứng thực số - X.509) hoặc theo thống kê (mạng lưới tín nhiệm - PGP,GPG) hoặc theo mô hình tín nhiệm nội bộ (SPKI). Không phụ thuộc vào bản chất của thuật toán hay giao thức, việc đánh giá mối quan hệ giữa khóa và người sở hữu khóa vẫn phải dựa trên những đánh giá chủ quan của bên thứ ba bởi vì khóa là một thực thể toán học còn người sở hữu và mối quan hệ thì không. Hạ tầng khóa công khai chính là các thiết chế để đưa ra những chính sách cho việc đánh giá này.

Một phần của tài liệu Tiểu luận môn toán học cho khoa học máy tính MÃ HÓA THÔNG TIN (Trang 45)

Tải bản đầy đủ (DOCX)

(49 trang)
w