Sig(x) = xa mod n và

Một phần của tài liệu LÝ THUYẾT ĐỘ PHỨC TẠP VÀ ỨNG DỤNG.doc (Trang 25 - 29)

Mỗi phần tử A ký một thông điệp m ∈ M. Mỗi thực thể B có thể xác định được

chữ ký của A và khôi phục lại thông điệp từ chữ ký

* Sinh chữ ký: thực thể A làm theo các bước sau:

Tính m' = H(m), là một số nguyên trong khoảng [0, n-1] Tính s = m'd mod n

Chữ ký của A cho m là s

*Xác nhận chữ ký : Thực thể B làm theo các bước sau:

Nhận khoá công khai của A là (n, b) Tính m' = sb mod n

Kiểm tra m' ∈ MR nếu không sẽ không chấp nhận chữ ký

Lấy lại thông điệp m từ m = H-1(m') c. Tóm tắt lược đồ ký theo RSA :

Ví dụ : ví dụ sau đây sử dụng sơ đồ ký RSA, với thông điệp lớn

* Sinh khoá:

Thực thể A chọn số nguyên tố p = 7927 và q = 6997 và tính n = pq = 5546521 và

φ = 7926x6996 = 55450296. A chọn a = 5 và giải ab = 5b ≡1 (mod 55450296) được b = 44360237. Khoá công khai của A là (n = 55465219, a = 5) và khoá riêng của A là b = 44360237

* Sinh chữ ký::

Ðể ký một thông điệp m = 31229978, A tính m'1 = H(m) = 31229978 và tính toán chữ ký s = m1'b mod n = 312299784430237 mod 55465219 = 30729435

* Xác nhận chữ ký:

B tính m'2 = sa mod n = 307294355 mod 55465219 = 31229978. Cuối cùng B chấp nhận chữ ký vì m’2 = m’1

5.3 Tấn công chữ ký điện tử

Sinh viên thực hiện: Lưu Thị Lan Hương K54A-CNTT-DHSPHN 26

Cho n = pq với p và q là các số nguyên tố.Cho p = a = Zn

Định nghĩa: p = {(n, p, q, a, b) || n=pq, p và q là nguyên tố, ab 1 mod φ(n)}. Các giá trị n, b là công khai. Ta định nghĩa mod φ(n)}. Các giá trị n, b là công khai. Ta định nghĩa

Sigk(x) = xa mod n và

Verk(x,y) = true x yb (mod n) với x, y Zn

Khi nói đến chữ ký điện tử, chúng ta luôn mục tiêu an toàn lên hàng đầu. Một chữ ký điện tử chỉ thực sự được áp dụng trong thực tế nêu như nó được chứng minh là không thể giả mạo. Mục tiêu lớn nhất của kẻ tấn công các sơ đồ chữ ký chính là giả mạo chữ ký; điều này có nghĩa là kẻ tấn công sẽ sinh ra được chữ ký của người ký lên thông điệp mà chữ ký này sẽ được chấp nhận bởi người xác nhận. Trong thực tế các hành vi tấn công chữ ký điện tử hết sức đa dạng, để dễ dàng phân tích một sơ đồ chữ ký là an toàn hay không người ta tiến hành kiểm nghiệm độ an toàn của chữ ký trước các sự tấn công sau:

Total break: Một kẻ giả mạo không những tính được thông tin về khoá riêng (private key) mà còn có thể sử dụng một thuật toán sinh chữ ký tương ứng tạo ra được chữ ký cho thông điệp.

Selective forgert: Kẻ tấn công có khả năng tạo ra được một tập hợp các chữ ký cho một lớp các thông điệp nhất định, các thông điệp này được ký mà không cần phải có khoá mật của người ký.

Existential forgery: Kẻ tấn công có khả năng giả mạo chữ ký cho một thông điệp, kẻ tấn công không thể hoặc có rất ít khả năng kiểm soát thông điệp được giả mạo này.

Ngoài ra, hầu hết các chữ ký điện tử đều dựa vào cơ chế mã hoá khoá công khai, các chữ ký điện tử dựa trên cơ chế này có thể bị tấn công theo các phương thức sau:

Key-only attacks: Kẻ tấn công chỉ biết khóa chung của người ký.

Message attacks: ở đây kẻ tấn công có khả năng kiểm tra các chữ ký khác nhau có phù hợp với một thông điệp có trước hay không. Ðây là kiểu tấn công rất thông dụng trong thực tế nó thường được chia làm 3 lớp:

Known-message attack: Kẻ tấn công có chữ ký cho một lớp các thông điệp. (adsbygoogle = window.adsbygoogle || []).push({});

Chosen-message attack: Kẻ tấn công dành được các chữ ký đúng cho một danh sách các thông điệp trước khi tiến hành hoạt động phá huỷ chữ ký, cách tấn công này là non-adaptive (không mang tính phù hợp) bởi vì thông điệp được chọn trước khi bất kỳ một chữ ký nào được gửi đi.

Adaptive-chosen message attack: Kẻ tấn công được phép sử dụng người ký như là một bên đáng tin cậy, kẻ tấn công có thể yêu cầu chữ ký cho các thông điệp mà các thông điệp này phụ thuộc vào khoá công khai của người ký, như vậy kẻ tấn công có thể yêu cầu chữ ký của các thông điệp phụ thuộc vào chữ ký và thông điệp dành được trước đây và qua đó tính toán được chữ ký.

CHƯƠNG IV. DEMO VỚI RSA

KẾT LUẬN:

Hiện nay nói chung mật mã và mật mã khoá công khai RSA đã trở thành một phần không thể thiếu của rất nhiều lĩnh vực trong cuộc sống. Nó giữ gìn tính riêng tư cho những thông tin nhạy cảm, quan trọng hay cung cấp các dịch vụ đảm bảo an toàn dữ liệu trong các dao dịch, kết nối điện tử. Có được thành công đó bên cạnh sự phát triển của kỹ thuật phần cứng và cơ sở hạ tầng, không thể không nói đến vai trò của khoa học máy tính mà trong đó lý thuyết độ phức tạp là một lĩnh vực hết sức quan trọng. Các kết quả nghiên cứu giúp chúng ta có cái nhìn thống nhất đối với những vấn đề phức tạp, từ đó có thể xem xét giải quyết vấn đề một cách hợp lý tuỳ theo hoàn cảnh cụ thể.

Nội báo cáo đã nghiên cứu những vấn đề cơ bản của lý thuyết độ phức tạp và ứng dụng của nó trong mật mã khoá công khai RSA. Qua đó làm rõ tầm quan trọng và ý nghĩa của việc nghiên cứu lý thuyết độ phức tạp trong thực tiễn. Tuy nhiên do thời gian có hạn nên báo cáo không đi sâu chi tiết vào mọi vấn đề và chắc chắn không tránh khỏi những thiếu sót, khiếm khuyết. Kính mong thầy cô và bạn bè góp ý và giúp đỡ,

TÀI LIỆU THAM KHẢOA. TÀI LIỆU A. TÀI LIỆU

1. Đoàn Tiến Vinh – Lý thuyết độ phức tạp và bảo mật thông tin (luận văn cao học) - Đại học sư phạm Hà Nội- 2006

2. Nguyễn Thị Như – Lý thuyết độ phức và ứng dụng (luận văn tốt nghiệp 2007) 3. Hà Huy Khoái- Nhập môn số học thuật toán (NXB Khoa học)

4. Đỗ Xuân Lôi- Cấu trúc dữ liệu và giải thuật

5. Vũ Đình Hoà, Đỗ Trung Kiên- Thuật toán và độ phức rạp thuật toán

B. INTERNET

1. http:// www.rsa.com

Một phần của tài liệu LÝ THUYẾT ĐỘ PHỨC TẠP VÀ ỨNG DỤNG.doc (Trang 25 - 29)