2010-08-30 38 views
7

Tôi có một kỳ thi vào ngày mai trong Phát triển nâng cao, nhưng tôi bị mắc kẹt về chủ đề Mã hóa. Tôi đã đọc trên nó tại http://support.microsoft.com/kb/246071. Tuy nhiên tôi vẫn còn bối rối.Mã hóa không đối xứng

Nếu thư được mã hóa bằng cách sử dụng mã hóa không đối xứng, sử dụng khóa công khai, trình giải mã sẽ biết khóa riêng tư để giải mã nó như thế nào? Chắc chắn cách duy nhất để làm điều này là để làm cho khóa riêng công khai, nhưng điều đó đánh bại đối tượng của mã hóa không đối xứng.

Ai đó có thể giải thích điều này theo cách mà một người không phải là người kỹ thuật có thể hiểu nó không? Mã hóa không đối xứng duy nhất của nó tôi không hiểu, không phải mã hóa đối xứng. Cảm ơn trước.

Kính trọng,

Richard

Edit: Vì vậy, để tổng hợp tất cả các câu trả lời trong trường hợp của một ứng dụng web (việc sử dụng cụ thể mà tôi cần phải biết về điều này):

  1. Người dùng truy cập trang web;
  2. Người dùng được yêu cầu cung cấp khóa công khai;
  3. Người dùng tạo cặp khóa công khai và riêng tư, giữ riêng tư với khóa riêng và gửi lại khóa công khai tới máy chủ;
  4. Máy chủ sử dụng khóa công khai để mã hóa mọi thứ cần gửi tới người dùng và gửi thông tin cho người dùng;
  5. Người dùng sử dụng khóa riêng của mình để giải mã phản hồi từ máy chủ;
  6. Người dùng thực hiện những gì họ cần và gửi lại phản hồi cho máy chủ, sử dụng khóa cá nhân để mã hóa nó;
  7. Máy chủ giải mã bằng cách sử dụng khóa chung. Các bước 4 - 7 có thể tiếp tục nhiều lần hoặc chúng chỉ có thể xảy ra một lần hoặc chỉ có 4 và 5 có thể xảy ra.

Điều này có chính xác không? Nếu vậy thì nó phải là tất cả những gì tôi cần biết cho kỳ thi. Tôi không nên nghĩ rằng tôi sẽ cần phải biết thêm bất kỳ để có được tối đa 40% nên một câu hỏi về chủ đề này đi lên - sẽ đề cập đến sự tồn tại của giấy chứng nhận và chữ ký mặc dù.

Cảm ơn sự giúp đỡ của bạn.

Kính trọng,

Richard

Edit: Vâng, tôi đã vừa trở về từ kỳ thi của tôi và nó đã đi khá ok tôi nghĩ. Nhưng không có câu hỏi về mật mã đã đưa ra, tuy nhiên ... Sự giúp đỡ được đánh giá cao anyway. Cảm ơn tất cả.

Kính trọng,

Richard

+1

http://en.wikipedia.org/wiki/Public-key_cryptography? –

+1

BTW, nếu bạn quan tâm đến mật mã, bạn nên xem "The Code Book" của Simon Singh –

+0

Cảm ơn bạn đã liên kết đến wiki, tuy nhiên a) chúng tôi đã được thông báo không bao giờ sử dụng wiki (tôi vẫn làm cho hầu hết mọi thứ !!) và b) cách nó được giải thích ở đây dễ hiểu hơn wiki. Tuy nhiên, wiki có một số chương tốt về ý nghĩa thực tế. – ClarkeyBoy

Trả lời

7

Alice tạo khóa riêng của cô + Khóa công khai. Cô ấy giữ bí mật khóa riêng của mình. Cô ta làm cho Public Key của cô ấy được công khai.

Bob lấy chìa khóa công cộng của Alice (trước tiên anh ta phải xác minh, đó thực sự là khóa công khai của Alice!), Và sử dụng nó để mã hóa tin nhắn, mà anh gửi cho Alice.

Alice có thể giải mã thư bằng Khóa riêng của cô ấy.

+0

Từ những gì tôi hiểu nó hoạt động theo cách khác vòng quá - Alice có thể mã hóa bằng cách sử dụng khóa riêng của mình và sau đó Bob có thể giải mã. Cách tốt để giải thích nó. Cảm ơn. – ClarkeyBoy

+0

Không. Trong trường hợp này, Bob sẽ phải sử dụng khóa công khai để giải mã. Nhưng bất kỳ ai cũng biết khóa công khai (công khai!) Và cũng có thể giải mã. – Jens

+0

@Jens: Nó không hữu ích cho việc mã hóa (theo nghĩa bí mật), nhưng điều này có thể được sử dụng để ký các tin nhắn. Lưu ý: Tùy thuộc vào lược đồ mã hóa, điều quan trọng là sử dụng các khóa khác nhau để ký và mã hóa (xem ví dụ: http://security.stackexchange.com/q/1806) –

2

Các khóa công khai được cung cấp cho các "encryptor" bởi "decryptor", do đó, theo định nghĩa, là "decryptor" biết khóa riêng (bởi vì nó là một phần của các cặp khoá được tạo ra bởi "decryptor".

+0

Ah, vậy bạn có đang nói rằng thông báo được mã hóa bởi bộ giải mã bằng khóa riêng, vì vậy bộ mã hóa có thể giải mã tin nhắn, sau đó gửi lại tin nhắn được mã hóa bằng khóa công khai mà chỉ người dùng có khóa riêng ban đầu mới có thể giải mã? Điều đó có ý nghĩa, trừ khi một hacker đã nắm giữ thông điệp ban đầu có khóa công khai với nó. Hay tôi vẫn chưa nhận được nó? – ClarkeyBoy

+1

Không ... với mật mã không đối xứng bạn cần gửi cho người khác chỉ có khóa công khai của bạn. Bất kể ai lắng nghe thông điệp đó, bất kỳ ai cũng có thể mã hóa thông tin bằng khóa công khai của bạn và gửi cho bạn. Nếu ai đó đang lắng nghe, nó không quan trọng, bởi vì chỉ có bạn có khóa riêng (không bao giờ được truyền đi). – Sebastian

+0

Vì vậy, từ đây tôi lấy nó, bạn có nghĩa là, trong một ứng dụng web, chính khách hàng (người dùng) đã cung cấp khóa công khai cho máy chủ và giữ khóa riêng ..? Nếu vậy thì điều đó có ý nghĩa hoàn hảo. Cảm ơn. – ClarkeyBoy

1

Hãy nói rằng "Decryptor" = D, và "encryptor" = E.

D trước đây đã gửi khóa công khai của mình để E, vì vậy E có thể mã hóa các mesage.Bởi vì chỉ có D biết khóa riêng của mình, chỉ D sẽ biết cách giải mã thông điệp E vừa gửi cho anh ta (nhớ: một chìa khóa được sử dụng để mã hóa, một khóa được sử dụng để giải mã). Bằng cách này, bạn sẽ có được sự riêng tư.

5

Những người khác đã cung cấp mô tả "chung chung" và tôi sẽ đi sâu hơn vào khía cạnh thực tế.

Hầu hết các tiêu chuẩn mã hóa không đối xứng hiện đại không hoạt động với khóa công cộng và riêng tư, nhưng với trình bao bọc phức tạp hơn, chẳng hạn như chứng chỉ X.509 hoặc khóa OpenPGP (đây là hai cơ sở hạ tầng mã hóa không đối xứng phổ biến nhất hiện nay). Cả hai chứng chỉ và khóa OpenPGP đều chứa thông tin bổ sung cho phép chúng dễ dàng xác định, tìm kiếm và quản lý.

Bây giờ, khối dữ liệu được mã hóa thường bao gồm phần công khai (tức là chứng chỉ hoặc khóa OpenPGP công khai) được sử dụng để mã hóa hoặc ít nhất ID (phần băm của phần công khai này). Người nhận dữ liệu thường có (hoặc được cho là có) cả phần công cộng và riêng tư (khóa riêng thường được giữ cùng với chứng chỉ hoặc khóa công khai) trong tầm tay. Vì vậy, khi người nhận nhận được dữ liệu được mã hóa, anh ta biết rằng anh ta cần phải lưu trữ khóa riêng của mình cho phần công khai với ID đã cho (hoặc cho phần công khai nhất định khi nó được đưa vào dữ liệu được mã hóa).

Có các trường hợp tồn tại khi không có gì được bao gồm. Sau đó, người nhận không có gì để làm nhưng hãy thử tất cả các khóa riêng có sẵn để giải mã. Nhưng những trường hợp như vậy là rất hiếm vì theo mặc định, chứng chỉ hoặc id khóa có mặt trong khối dữ liệu được mã hóa.

+0

Đây là câu trả lời hay - bạn cần thêm thông tin nhận dạng vào khối/blob được mã hóa để xác định khóa nào sẽ giải mã nó. (Tên, Vân tay hoặc Hash của khóa công khai) –

12

Khóa cá nhân chỉ dành cho người dùng hợp pháp của mình và không được phân phối. Đối tác của nó, khóa công khai, có thể được phân phối cho bất kỳ ai.

Dựa trên điều này, bạn có thể nhận được 4 hoạt động:

  • mã hóa bằng cách sử dụng công cộng quan trọng
  • giải mã sử dụng phím
  • dấu hiệu riêng bằng cách sử dụng tin chính
  • xác minh chữ ký sử dụng cộng đồng khóa

Vấn đề tiếp theo bạn có thể gặp phải là ràng buộc danh tính với khóa công khai (như bạn sẽ không ' t muốn mã hóa một cái gì đó với hoặc tin tưởng một cái gì đó đã ký kết với khóa công khai của một kẻ mạo danh). Có nhiều mô hình phân phối khóa công khai khác nhau. Thông thường, bạn có thể có:

  • web of trust, nơi mọi người ký kết liên kết giữa khóa công khai và nhận dạng: đây thường là mô hình PGP.
  • a public key infrastructure (PKI) nơi bạn nhận được cơ quan cấp giấy chứng nhận để tạo chứng chỉ, thường là với người trung gian, trong hệ thống phân cấp giống cây. (PGP cũng có thể sử dụng mô hình này, nhưng điều này có vẻ ít phổ biến hơn.)
Các vấn đề liên quan