• Không có kết quả nào được tìm thấy

Xây dựng chương trình chữ ký điện tử bằng ngôn ngữ C#

Protected

Academic year: 2024

Chia sẻ "Xây dựng chương trình chữ ký điện tử bằng ngôn ngữ C#"

Copied!
82
0
0

Loading.... (view fulltext now)

Văn bản

Nghiên cứu về chữ ký điện tử và một số mô hình ứng dụng chữ ký điện tử. Nếu và là hai số nguyên thì ta nói a đồng dư với b modulo n, viết là a≡b(mod n), nếu n│(a-b) và n thì nó được gọi là mô đun đồng dư. Thuật toán Euclide có thể được mở rộng để không chỉ tính ước số chung d của hai số nguyên a và b mà còn tính toán hai số nguyên x,y thỏa mãn ax+by=d.

Thuật toán Euclidean mở rộng

Không gian Z n (các số nguyên theo modulo n)

Không gian Z * n

Tập thặng dƣ bậc hai theo modulo

Phần tử nghịch đảo

Lý thuyết độ phức tạp

Nói chung, chi phí thực hiện một thuật toán là một hàm của dữ liệu đầu vào. Nói chung, nếu hàm chi phí của thuật toán (trong một trường hợp nhất định) bị giới hạn bởi O(f(n)), thì chúng ta nói rằng thuật toán có độ phức tạp là O(f(n)) trong trường hợp đó. Vì vậy, thuật toán tìm số lớn nhất có độ phức tạp trong trường hợp này.

TỔNG QUAN VỀ MẬT MÃ HỌC

Lịch sử phát triển của mật mã

  • Mật mã học cổ điển
  • Thời trung cổ
  • Mật mã học trong Thế chiến II
  • Mật mã học hiện đại

Vào những năm 1840, Edgar Allan Poe đã phát triển một số phương pháp có hệ thống để phá mã. Các nhà mật mã của Hải quân Hoa Kỳ (với sự hợp tác của các nhà mật mã người Anh và Hà Lan sau năm 1940) đã có thể xâm nhập một số hệ thống mật mã của Hải quân Nhật Bản. Các thuật toán mã hóa khóa bất đối xứng dựa trên một lớp bài toán gọi là hàm một chiều.

Một số thuật ngữ sử dụng trong hệ mật mã

Giải mã là quá trình biến văn bản được mã hóa thành văn bản nguồn. Giải mã tin nhắn được mã hóa sẽ mang lại tin nhắn rõ ràng ban đầu. Có các thuật ngữ "bản rõ" và "tin nhắn được mã hóa" đều liên quan đến một mật mã cụ thể.

Định nghĩa mật mã học

Rõ ràng, trong trường hợp này, hàm mã hóa phải là hàm một-một (tức là ánh xạ 1-1), nếu không việc giải mã sẽ không được thực hiện một cách rõ ràng. Copyright Company Nếu chuỗi văn bản mã hóa và chuỗi văn bản gốc giống nhau thì mỗi hàm văn bản mã hóa sẽ là sự sắp xếp lại (hoặc hoán vị) các phần tử của chuỗi đó.

Phân loại hệ mật mã học

  • Mật mã cổ điển
  • Mật mã hiện đại

Bên nhận sau khi nhận được tin nhắn được mã hóa sẽ sử dụng khóa bí mật mà hai bên đã thỏa thuận để giải mã và lấy lại bản rõ. Mật mã bất đối xứng: mã hóa bất đối xứng bằng cách sử dụng một cặp khóa liên quan đến toán học, khóa chung để mã hóa (khóa chung) và khóa bí mật để giải mã (khóa riêng). Khóa phiên này sau đó được mã hóa bằng khóa chung của người nhận dữ liệu.

Hình 1.Thuật toán mã hóa đối xứng
Hình 1.Thuật toán mã hóa đối xứng

Hệ mật mã cổ điển

  • Hệ mã Caesar
  • Hệ mã Affinne
  • Hệ mã Vigenère
  • Hệ mật Hill
  • Hệ mật Playfair

Vì lý do này, các hệ thống mật mã còn lại được gọi là hệ thống thay thế ký hiệu đơn. Nói chung, việc giải mã các hệ thống thay thế nhiều hàng khó hơn việc giải mã các hệ thống một hàng. Trong phần này, chúng ta sẽ mô tả một mật mã thay thế nhiều dòng khác gọi là mật mã Hill.

Thay thế n-gram: thay vì thay thế các ký tự, người ta có thể thay thế từng cụm 2 ký tự (gọi là digram) hoặc thay thế từng cụm 3 ký tự (gọi là trigram) và khái quát hóa thành từng cụm gồm n ký tự (gọi là n-gram). Đây là sơ đồ dựa trên sự thay thế digram, trong đó khóa là một hình vuông 5 × 5 chứa một số cách sắp xếp của 25 chữ cái trong bảng chữ cái (không tính chữ J do nó xuất hiện ít). Nó và có thể thay thế nó bằng I). Tương tự, nếu digram được thay thế là VN thì chuỗi thay thế là HO.

Nếu các ký tự digram nằm ngang thì chuỗi thay thế là các ký tự ở bên phải của chúng. Ví dụ: nếu digram là WU thì chuỗi thay thế là SP, nếu digram là FP thì chuỗi thay thế là UW, nếu digram là XR thì chuỗi thay thế là LK. Tương tự, nếu các ký tự digram nằm trên một đường thẳng đứng thì chuỗi thay thế là các ký tự bên dưới chúng.

Ví dụ: nếu digram là SO thì chuỗi thay thế là AN, nếu digram là MR thì chuỗi thay thế là DI, nếu digram là GH thì chuỗi thay thế là UG.

Hệ mật mã công khai

  • Giới thiệu mật mã với khóa công khai
    • Lịch sử
    • Lý thuyết mật mã công khai
    • Những yếu điểm, hạn chế của mật mã với khóa công khai
    • Ứng dụng của mật mã
  • Hệ mật RSA
    • Lịch sử
    • Mô tả thuật toán
    • Tốc độ mã hóa RSA
    • Độ an toàn của RSA
    • Sự che dấu thông tin trong hệ thống RSA
  • Hệ mật Rabin
    • Mô tả giải thuật Rabin
    • Đánh giá hiệu quả

Nếu A muốn gửi tin nhắn cho B thì A sẽ mã hóa tin nhắn bằng khóa chung của B. Tuy nhiên, tính bảo mật của thuật toán mã hóa khóa chung cũng được đảm bảo tương đối. Nhiều điểm yếu của một số thuật toán mã hóa khóa bất đối xứng đã được phát hiện trong quá khứ.

Công dụng rõ ràng nhất của mật mã khóa công khai là bảo mật: văn bản được mã hóa bằng khóa chung của người dùng chỉ có thể được giải mã bằng khóa riêng của người dùng đó. Người dùng có thể mã hóa văn bản bằng khóa riêng của mình. Trong mật mã, RSA là một thuật toán mã hóa khóa công khai.

Thuật toán RSA có hai khóa: khóa chung (hoặc khóa chung) và khóa bí mật (hoặc khóa riêng). Mỗi khóa là một số cố định được sử dụng trong quá trình mã hóa và giải mã. Khóa công khai được cung cấp công khai cho mọi người và được sử dụng để mã hóa.

Thông tin được mã hóa bằng khóa chung chỉ có thể được giải mã bằng khóa riêng tương ứng. Khóa cho hệ thống mã hóa RSA có thể được tạo ra mà không cần tính toán quá nhiều. Thuật toán mã hóa Rabin là một thuật toán cực kỳ nhanh vì nó chỉ cần thực hiện một phép toán bình phương modulo đơn giản.

CHỮ KÝ ĐIỆN TỬ

Lịch sử ra đời của chữ ký điện tử

Mọi người đã sử dụng hợp đồng ở dạng điện tử trong hơn 100 năm qua bằng cách sử dụng mã Morse và điện báo. Năm 1889, Tòa án tối cao New Hampshire (Mỹ) đã phê chuẩn giá trị pháp lý của chữ ký điện tử. Mặc dù chữ ký trên các văn bản này vẫn được thể hiện trên giấy nhưng quá trình gửi và nhận hoàn toàn dựa trên tín hiệu điện tử.Ngày nay, chữ ký điện tử có thể bao gồm các cam kết gửi qua email, mã số nhận dạng cá nhân (PIN) khi vào ATM, ký bằng tài khoản ngân hàng. bút điện tử với thiết bị màn hình cảm ứng tại máy tính tiền, chấp nhận các điều khoản sử dụng (EULA-End User LicenseThỏa thuận) khi cài đặt phần mềm Phần mềm máy tính, ký hợp đồng điện tử trực tuyến.

Khái niệm và mô hình chung của chữ ký điện tử

Sử dụng khóa chung của người gửi (khóa này được công bố cho mọi người) để giải mã chữ ký số của tin nhắn. Các nhà khoa học Diffie và Hellman đã đề xuất một phương pháp ký các tài liệu điện tử bằng cách sử dụng mã hóa khóa công khai theo ý tưởng. Người nhận sử dụng khóa chung của người gửi, khóa chung, để giải mã bản mã nhận được.

Xác nhận rằng tài liệu đã được người gửi cố ý ký bằng khóa riêng của họ. Chữ ký trên văn bản được mã hóa không thể được sử dụng lại vì ngay cả khi bạn biết khóa chung, bạn cũng không thể tìm thấy khóa riêng tương ứng. Người ký văn bản không thể phủ nhận chữ ký của mình vì chỉ có người đó mới biết khóa bí mật để mã hóa văn bản.

Chữ ký số là một dạng chữ ký điện tử đặc biệt sử dụng công nghệ khóa công khai PKI (Public Key Opportunity). Để sử dụng chữ ký số, văn bản không cần phải mã hóa mà chỉ cần mã hóa các băm của văn bản đó (thường có độ dài cố định và ngắn hơn văn bản). Tất nhiên, chúng tôi không thể đảm bảo 100% văn bản không bị giả mạo vì hệ thống vẫn có thể bị hỏng.

Để tránh khả năng này, bên nhận có thể yêu cầu bên gửi đưa chữ ký số vào tài liệu.

Hàm băm

Kiểu tấn công thứ ba: giả sử Oscar tính toán chữ ký trên hàm băm ngẫu nhiên của tin nhắn Mr. Chữ ký số chỉ được đảm bảo khi khóa bí mật không được tiết lộ. Giả sử bạn muốn gửi cho B một tin nhắn rõ ràng được xác thực bằng chữ ký số của bạn.

Ví dụ sau sử dụng lược đồ chữ ký RSA với thông báo lớn c. Đầu tiên Alice ký m bằng chữ ký S= SigA(m), sau đó mã hóa m và S nhận z. Vì vậy, trong trường hợp b, Oscar có thể giả mạo chữ ký mà không cần giải mã.

Điều này có nghĩa là có nhiều chữ ký hợp lệ trên một tin nhắn nhất định. B tính toán chữ ký bằng cách sử dụng cả giá trị bí mật r và số ngẫu nhiên bí mật R (dùng để ký thông điệp m). Giả sử Oscar cố gắng giả mạo chữ ký trên một bức điện tín m nào đó mà không biết r.

Tuy nhiên, có một số cách để Oscar giả mạo chữ ký trên bức điện. Vì vậy, không có gì nguy hiểm về tính bảo mật của sơ đồ chữ ký Elgamal. Một khi r bị lộ, hệ thống sẽ bị hỏng và Oscar có thể dễ dàng giả mạo chữ ký.

Tài liệu tham khảo

Tài liệu liên quan