Lược đồ xác thực chữ ký RSA

Một phần của tài liệu Nghiên cứu chữ ký số trong ứng dụng quản lý tài liệu lưu trữ quốc gia (Trang 36 - 39)

2.3.7. Đánh giá độ chi phí, tốc độ và độ an toàn của thuật toán RSA 2.3.7.1. Chi phí và tốc độ thực hiện của thuật toán RSA 2.3.7.1. Chi phí và tốc độ thực hiện của thuật toán RSA

Chi phí: Để thực hiện thuật toán RSA phần lớn phải tốn chi phí thực hiện các phép tính cơ bản như: tạo khoá, mã hoá, giải mã. Quá trình mã hoá và giải mã tương đương với chi phí thực hiện các phép tính luỹ thừa module n. Để đảm bảo cho khoá bí mật được an toàn thì thường chọn số mũ công khai e nhỏ hơn nhiều so với số mũ bí mật d, do đó chi phí thời gian để thực hiện mã hoá dữ liệu nhỏ hơn nhiều so với thời gian giải mã.

Tốc độ của hệ RSA: Tốc độ của RSA là một trong những điểm yếu của RSA so với các hệ mã đối xứng, so với hệ mã DES thì RSA chậm hơn từ 100 đến 1000 lần, vì vậy RSA không được dùng để mã hoá khối lượng dữ liệu lớn mà thường dùng để mã hoá những dữ liệu nhỏ.

2.3.7.2. Độ an toàn

Độ an toàn của RSA được thiết kế dựa trên độ khó giải bài toán phân tích ra thừa số nguyên tố n = p*q với 2 số nguyên tố bí mật lớn p, q. Nếu ta chọn các số p, q khoảng 100 chữ số thập phân thì nó sẽ có khoảng 200 chữ số thập phân. Để phân tích một số nguyên cỡ lớn như thế với các thuật toán nhanh nhất hiện nay cùng với những máy tính hiện đại nhất cũng mất hàng triệu năm. Như vậy việc phân tích số nguyên n thành các thừa số nguyên tố

Dữ liệu gốc Dữ liệu tóm lược

mới

Chữ ký số

Hàm băm SHA Chứng thư số người ký ID người ký

Kho chứng thư

Chứng thư số người ký Khóa công khai

người ký Tóm lược gốc So sánh Xác thực Yes No Băm

p, q nhằm mục đích bẻ gãy hệ mật mã RSA là điều khó có thể tính toán nổi nếu như trong quá trình thiết kế hệ RSA ta chọn số nguyên N lớn.

Độ an toàn của hệ thống RSA dựa trên 2 vấn đề của toán học: bài toán phân tích ra thừa số nguyên tố các số nguyên lớn và bài toán RSA. Nếu 2 bài toán trên là khó (không tìm được thuật toán hiệu quả để giải chúng) thì không thể thực hiện được việc phá mã toàn bộ đối với RSA. Phá mã một phần phải được ngăn chặn bằng các phương pháp chuyển đổi bản rõ an toàn.

Bài toán RSA là bài toán tính căn bậc e môđun n (với n là hợp số): tìm số m sao cho me

=c mod n, trong đó (e, n) chính là khóa công khai và c là bản mã. Hiện nay phương pháp triển vọng nhất giải bài toán này là phân tích n ra thừa số nguyên tố. Khi thực hiện được điều này, kẻ tấn công sẽ tìm ra số mũ bí mật d từ khóa công khai và có thể giải mã theo đúng quy trình của thuật toán. Nếu kẻ tấn công tìm được 2 số nguyên tố p và q sao cho: n = pq thì có thể dễ dàng tìm được giá trị (p-1)(q-1) và qua đó xác định d từ e. Chưa có một phương pháp nào được tìm ra trên máy tính để giải bài toán này trong thời gian đa thức (polynomial-time). Tuy nhiên người ta cũng chưa chứng minh được điều ngược lại (sự không tồn tại của thuật toán).

Tại thời điểm năm 2005, số lớn nhất có thể được phân tích ra thừa số nguyên tố có độ dài 663 bít với phương pháp phân tán trong khi khóa của RSA có độ dài từ 1024 tới 2048 bít. Một số chuyên gia cho rằng khóa 1024 bít có thể sớm bị phá vỡ (cũng có nhiều người phản đối việc này). Với khóa 4096 bít thì hầu như không có khả năng bị phá vỡ trong tương lai gần. Do đó, người ta thường cho rằng RSA đảm bảo an toàn với điều kiện n được chọn đủ lớn. Nếu n có độ dài 256 bít hoặc ngắn hơn, nó có thể bị phân tích trong vài giờ với máy tính cá nhân dùng các phần mềm có sẵn. Nếu n có độ dài 512 bít, nó có thể bị phân tích bởi vài trăm máy tính tại thời điểm năm 1999. Một thiết bị lý thuyết có tên làTWIRL do Shamir và Tromer mô tả năm 2003 đã đặt ra câu hỏi về độ an toàn của khóa 1024 bít. Vì vậy hiện nay người ta khuyến cáo sử dụng khóa có độ dài tối thiểu 2048 bít.

Năm 1993, Peter Shor công bố thuật toán Shor chỉ ra rằng: máy tính lượng tử (trên lý thuyết) có thể giải bài toán phân tích ra thừa số trong thời gian đa thức. Tuy nhiên, máy tính lượng tử vẫn chưa thể phát triển được tới mức độ này trong nhiều năm nữa.

Năm 2010, các nhà khoa học thuộc Đại học Michigan đã công bố phát hiện một kẽ hở trong hệ thống mật mã hoá RSA. Cách phá vỡ hệ thống, lấy khoá bí mật RSA 1024 bit chỉ trong vài ngày thay vì vài năm nếu tấn công theo cách

thông thường - tấn công bằng brute force (dò tìm lần lượt). Các nhà khoa học tạo một điện thế lớn để gây lỗi hệ thống, từ đó giúp tìm ra khoá bí mật. Việc tấn công được thực hiện trên một FPGA. Báo cáo được trình bày tại hội nghị DATE 2010 diễn ra tại Dresden, Đức tháng 3 năm 2010.

2.3.7.3. Ứng dụng

RSA được sử dụng nhiều trong bảo mật thông tin trong thương mại điện tử. Nó cũng là cơ sở quan trọng để hình thành hạ tầng khóa công khai cho phép người sử dụng của một mạng công cộng như internet trao đổi dữ liệu một cách an toàn. Các ứng dụng chính của RSA là:

Tạo vỏ bọc an toàn cho văn bản Tạo chữ ký số cho văn bản Hạ tầng khóa Công khai

2.4. Hạ tầng khóa công khai (PKI)

2.4.1. Giới thiệu PKI

Một PKI (Public Key Infrastructure) cho phép người sử dụng của một mạng công cộng không bảo mật, chẳng hạn như Internet, có thể trao đổi dữ liệu và tiền một cách an toàn thông qua việc sử dụng một cặp mã khóa công khai và khóa cá nhân được cấp phát và sử dụng thông qua một nhà cung cấp chứng thực được tín nhiệm. Nền tảng khóa công khai cung cấp một chứng thư số, dùng để xác minh một cá nhân hoặc một tổ chức, và các dịch vụ danh mục có thể lưu trữ và khi cần có thể thu hồi các chứng thư số. Mặc dù các thành phần cơ bản của PKI đều được phổ biến, nhưng một số nhà cung cấp đang muốn đưa ra một chuẩn PKI riêng khác biệt. Một tiêu chuẩn chung về PKI trên Internet cũng đang trong quá trình xây dựng.

2.4.2. Chức năng của PKI

PKI cho phép những người tham gia xác thực lẫn nhau. Mục tiêu chính của PKI là cung cấp khóa công khai và xác định mối liên hệ giữa khóa và định dạng người dùng. Nhờ vậy người dùng có thể sử dụng trong một số ứng dụng như:

- Xác thực người dùng ứng dụng;

- Mã hóa, giải mã văn bản;

- Mã hóa Email hoặc xác thực người gửi Email;

- Tạo chữ ký số trên văn bản điện tử; 2.4.3. Các thành phần của PKI

- Cơ quan chứng thực Certificate Authority (CA): là một bên thứ 3 được tin cậy có trách nhiệm tạo, quản lý, phân phối, lưu trữ và thu hồi các chứng thư số. CA sẽ nhận các yêu cầu cấp chứng thư số và chỉ cấp cho những ai đã xác minh được nhận dạng của họ.

- Registration Authority (RA): đóng vai trò trung gian giữa CA và người dùng. Khi người dùng cần chứng thư số mới, họ gửi yêu cầu tới RA và RA sẽ xác nhận tất cả các thông tin nhận dạng cần thiết trước khi chuyển tiếp yêu cầu đó tới CA để CA thực hiện tạo và ký số lên chứng chỉ rồi gửi về cho RA hoặc gửi trực tiếp cho người dùng.

- Certificate Repository và Archive: có 2 kho chứa quan trọng trong kiến trúc của PKI. Đầu tiên là kho công khai lưu trữ và phân phối các chứng chỉ và CRL (chứa danh sách các chứng chỉ không còn hiệu lực). Cái thứ 2 là một cơ sở dữ liệu được CA dùng để sao lưu các khóa hiện đang sử dụng và lưu trữ các khóa hết hạn, kho này cần được bảo vệ an toàn như chính CA.

- Security Server: là một máy chủ cung cấp các dịch vụ quản lý tập trung tất cả các tài khoản người dùng, các chính sách bảo mật chứng thư số, các mối quan hệ tin cậy (trusted relationship) giữa các CA trong PKI, lập báo cáo và nhiều dịch vụ khác.

- PKI-enabled applications và PKI users: bao gồm các người dùng sử dụng các dịch vụ của PKI và các phần mềm có hỗ trợ cài đặt và sử dụng các chứng thư số như các trình duyệt web, các ứng dụng email chạy phía máy khách. 2.4.4. Mô hình hoạt động của PKI

Một phần của tài liệu Nghiên cứu chữ ký số trong ứng dụng quản lý tài liệu lưu trữ quốc gia (Trang 36 - 39)