Mã hóa là gì và nó hoạt động như thế nào?

Mục lục:

Mã hóa là gì và nó hoạt động như thế nào?
Mã hóa là gì và nó hoạt động như thế nào?

Video: Mã hóa là gì và nó hoạt động như thế nào?

Video: Mã hóa là gì và nó hoạt động như thế nào?
Video: KHỦNG HOẢNG 1/4 CUỘC ĐỜI: Mất phương hướng và chênh vênh thì phải làm sao? | Nguyễn Hữu Trí - YouTube 2024, Tháng tư
Anonim
Mã hóa có một lịch sử lâu đời kể từ khi người Hy Lạp cổ đại và người La Mã gửi tin nhắn bí mật bằng cách thay thế các chữ cái chỉ có thể giải mã bằng khóa bí mật. Tham gia với chúng tôi để có một bài học lịch sử nhanh và tìm hiểu thêm về cách mã hóa hoạt động.
Mã hóa có một lịch sử lâu đời kể từ khi người Hy Lạp cổ đại và người La Mã gửi tin nhắn bí mật bằng cách thay thế các chữ cái chỉ có thể giải mã bằng khóa bí mật. Tham gia với chúng tôi để có một bài học lịch sử nhanh và tìm hiểu thêm về cách mã hóa hoạt động.

Trong phiên bản HTG Explains, chúng tôi sẽ cung cấp cho bạn một lịch sử ngắn gọn về mã hóa, cách hoạt động và một số ví dụ về các loại mã hóa khác nhau - đảm bảo bạn cũng xem phiên bản trước, nơi chúng tôi giải thích lý do tại sao rất nhiều geek ghét Internet Nhà thám hiểm.

Hình ảnh của xkcd, chắc chắn.

Những ngày đầu của mã hóa

Image
Image
Người Hy Lạp cổ đại đã sử dụng một công cụ gọi là Scytale để giúp mã hóa thông điệp của họ nhanh hơn bằng cách sử dụng mật mã chuyển vị - họ chỉ đơn giản quấn dải giấy da xung quanh hình trụ, viết ra thông điệp, và sau đó khi không có ý thức sẽ không có ý nghĩa.
Người Hy Lạp cổ đại đã sử dụng một công cụ gọi là Scytale để giúp mã hóa thông điệp của họ nhanh hơn bằng cách sử dụng mật mã chuyển vị - họ chỉ đơn giản quấn dải giấy da xung quanh hình trụ, viết ra thông điệp, và sau đó khi không có ý thức sẽ không có ý nghĩa.

Phương pháp mã hóa này có thể khá dễ dàng bị phá vỡ, tất nhiên, nhưng đó là một trong những ví dụ đầu tiên về mã hóa thực sự được sử dụng trong thế giới thực.

Julius Caesar đã sử dụng một phương pháp tương tự trong thời gian của mình bằng cách dịch chuyển từng chữ cái của bảng chữ cái sang phải hoặc trái bởi một số vị trí - một kỹ thuật mã hóa được gọi là mật mã của Caesar. Ví dụ: sử dụng mật mã mẫu bên dưới bạn sẽ viết “GEEK” là “JHHN”.

Plain: ABCDEFGHIJKLMNOPQRSTUVWXYZ Cipher: DEFGHIJKLMNOPQRSTUVWXYZABC

Vì chỉ người nhận dự định của thông điệp mới biết mật mã, nên người tiếp theo sẽ giải mã tin nhắn, nó sẽ xuất hiện như là vô nghĩa, nhưng người có mật mã có thể dễ dàng giải mã và đọc nó.

Mật mã mã hóa đơn giản khác như hình vuông Polybius sử dụng một thuật toán mã hóa đa diện liệt kê từng chữ cái với các vị trí số tương ứng trên đầu và bên để cho biết vị trí của chữ cái.

Sử dụng một bảng như trên, bạn sẽ viết chữ “G” là “23” hoặc “GEEK” là “23 31 31 43”.
Sử dụng một bảng như trên, bạn sẽ viết chữ “G” là “23” hoặc “GEEK” là “23 31 31 43”.

Enigma Machine

Trong Thế chiến II, người Đức đã sử dụng máy Enigma để truyền đi những lần truyền mã hóa qua lại, mất nhiều năm trước khi người Ba Lan có thể giải được tin nhắn, và đưa ra giải pháp cho các lực lượng Đồng minh, là công cụ để chiến thắng của họ.
Trong Thế chiến II, người Đức đã sử dụng máy Enigma để truyền đi những lần truyền mã hóa qua lại, mất nhiều năm trước khi người Ba Lan có thể giải được tin nhắn, và đưa ra giải pháp cho các lực lượng Đồng minh, là công cụ để chiến thắng của họ.

Lịch sử mã hóa hiện đại

Cho phép đối mặt với nó: các kỹ thuật mã hóa hiện đại có thể là một chủ đề cực kỳ nhàm chán, vì vậy thay vì chỉ giải thích chúng bằng lời, chúng tôi đã cùng nhau đưa ra một truyện tranh nói về lịch sử mã hóa, lấy cảm hứng từ hướng dẫn hình ảnh của Jeff Moser cho AES. Lưu ý: rõ ràng chúng tôi không thể truyền đạt mọi thứ về lịch sử mã hóa trong một truyện tranh.

Quay trở lại những ngày đó, mọi người không có một phương pháp mã hóa tốt để bảo đảm thông tin liên lạc điện tử của họ.

Lucifer là tên được đặt cho một số mật mã khối dân sự đầu tiên, được phát triển bởi Horst Feistel và các cộng sự của ông tại IBM.
Lucifer là tên được đặt cho một số mật mã khối dân sự đầu tiên, được phát triển bởi Horst Feistel và các cộng sự của ông tại IBM.
Chuẩn mã hóa dữ liệu (DES) là một mật mã khối (một dạng mã hóa bí mật được chia sẻ) đã được Cục Tiêu chuẩn quốc gia chọn làm Tiêu chuẩn xử lý thông tin liên bang chính thức (FIPS) cho Hoa Kỳ năm 1976 và sau đó đã được phổ biến rộng rãi sử dụng quốc tế.
Chuẩn mã hóa dữ liệu (DES) là một mật mã khối (một dạng mã hóa bí mật được chia sẻ) đã được Cục Tiêu chuẩn quốc gia chọn làm Tiêu chuẩn xử lý thông tin liên bang chính thức (FIPS) cho Hoa Kỳ năm 1976 và sau đó đã được phổ biến rộng rãi sử dụng quốc tế.
Mối quan tâm về an ninh và hoạt động tương đối chậm của DES trong phần mềm thúc đẩy các nhà nghiên cứu đề xuất một loạt các thiết kế mã khối thay thế, bắt đầu xuất hiện vào cuối những năm 1980 và đầu những năm 1990: ví dụ như RC5, Blowfish, IDEA, NewDES, SAFER, CAST5 và FEAL
Mối quan tâm về an ninh và hoạt động tương đối chậm của DES trong phần mềm thúc đẩy các nhà nghiên cứu đề xuất một loạt các thiết kế mã khối thay thế, bắt đầu xuất hiện vào cuối những năm 1980 và đầu những năm 1990: ví dụ như RC5, Blowfish, IDEA, NewDES, SAFER, CAST5 và FEAL
Image
Image
Image
Image
Image
Image
Image
Image

Thuật toán mã hóa Rijndael đã được Chính phủ Hoa Kỳ áp dụng làm mã hóa khóa đối xứng tiêu chuẩn hoặc Chuẩn mã hóa nâng cao (AES). AES đã được Viện Tiêu chuẩn và Công nghệ Quốc gia (NIST) công bố là FIPS PUB 197 (FIPS 197) vào ngày 26 tháng 11 năm 2001 sau một quá trình chuẩn hóa 5 năm, trong đó mười lăm thiết kế cạnh tranh đã được trình bày và đánh giá trước khi Rijndael được chọn là thuật toán mã hóa phù hợp.

Hiệu suất thuật toán mã hóa

Nhiều thuật toán mã hóa tồn tại và chúng hoàn toàn phù hợp với các mục đích khác nhau - hai đặc điểm chính xác định và phân biệt một thuật toán mã hóa với thuật toán khác là khả năng bảo vệ dữ liệu được bảo vệ khỏi các cuộc tấn công và tốc độ cũng như hiệu quả của nó.

Như một ví dụ tốt về sự khác biệt về tốc độ giữa các loại mã hóa khác nhau, bạn có thể sử dụng tiện ích điểm chuẩn được tích hợp trong trình hướng dẫn tạo khối lượng của TrueCrypt - như bạn có thể thấy, AES là loại mã hóa mạnh nhất hiện nay.

Có cả hai phương pháp mã hóa chậm hơn và nhanh hơn, và chúng đều phù hợp cho các mục đích khác nhau. Nếu bạn chỉ đơn giản là cố gắng giải mã một đoạn dữ liệu nhỏ thường xuyên, bạn có thể đủ khả năng sử dụng mã hóa mạnh nhất có thể, hoặc thậm chí mã hóa nó hai lần với các loại mã hóa khác nhau. Nếu bạn cần tốc độ, bạn có thể muốn đi với AES.
Có cả hai phương pháp mã hóa chậm hơn và nhanh hơn, và chúng đều phù hợp cho các mục đích khác nhau. Nếu bạn chỉ đơn giản là cố gắng giải mã một đoạn dữ liệu nhỏ thường xuyên, bạn có thể đủ khả năng sử dụng mã hóa mạnh nhất có thể, hoặc thậm chí mã hóa nó hai lần với các loại mã hóa khác nhau. Nếu bạn cần tốc độ, bạn có thể muốn đi với AES.

Để biết thêm về cách đánh giá các loại mã hóa khác nhau, hãy kiểm tra một báo cáo từ Đại học St. Louis, nơi họ đã thực hiện rất nhiều thử nghiệm về các thói quen khác nhau và giải thích tất cả điều đó trong một bài viết rất háo hức.

Các loại mã hóa hiện đại

Tất cả các thuật toán mã hóa ưa thích mà chúng ta đã nói trước đó chủ yếu được sử dụng cho hai loại mã hóa khác nhau:

  • Thuật toán khóa đối xứng sử dụng các khóa mã hóa có liên quan hoặc giống hệt nhau cho cả mã hóa và giải mã.
  • Thuật toán khóa bất đối xứng sử dụng các khóa khác nhau để mã hóa và giải mã - điều này thường được gọi là Mật mã khóa công khai.

Mã hóa khóa đối xứng

Để giải thích khái niệm này, chúng tôi sẽ sử dụng phép ẩn dụ dịch vụ bưu chính được mô tả trong Wikipedia để hiểu các thuật toán khóa đối xứng hoạt động như thế nào.

Alice đặt thông điệp bí mật của cô vào một cái hộp, và khóa cái hộp bằng cách sử dụng một ổ khóa mà cô có chìa khóa. Sau đó, cô gửi hộp cho Bob qua thư thông thường. Khi Bob nhận được hộp, anh ta sử dụng một bản sao giống hệt của khóa của Alice (mà anh ta đã thu được bằng cách nào đó trước đó, có thể bởi một cuộc họp mặt đối mặt) để mở hộp và đọc tin nhắn. Bob sau đó có thể sử dụng cùng một ổ khóa để gửi trả lời bí mật của mình.

Các thuật toán khóa đối xứng có thể được chia thành các thuật toán mã hóa dòng và mật mã khối - mật mã dòng mã hóa các bit của thư mỗi lần và mật mã khối mất một số bit, thường trong các khối 64 bit cùng một lúc và mã hóa chúng một đơn vị duy nhất. Có rất nhiều thuật toán khác nhau mà bạn có thể chọn - các thuật toán đối xứng phổ biến và được tôn trọng hơn bao gồm Twofish, Serpent, AES (Rijndael), Blowfish, CAST5, RC4, TDES và IDEA.
Các thuật toán khóa đối xứng có thể được chia thành các thuật toán mã hóa dòng và mật mã khối - mật mã dòng mã hóa các bit của thư mỗi lần và mật mã khối mất một số bit, thường trong các khối 64 bit cùng một lúc và mã hóa chúng một đơn vị duy nhất. Có rất nhiều thuật toán khác nhau mà bạn có thể chọn - các thuật toán đối xứng phổ biến và được tôn trọng hơn bao gồm Twofish, Serpent, AES (Rijndael), Blowfish, CAST5, RC4, TDES và IDEA.

Mã hóa không đối xứng

Trong một hệ thống khóa bất đối xứng, Bob và Alice có khóa móc riêng biệt, thay vì ổ khóa đơn với nhiều khóa từ ví dụ đối xứng. Lưu ý: đây là, tất nhiên, một ví dụ rất đơn giản về cách nó thực sự hoạt động, phức tạp hơn nhiều, nhưng bạn sẽ có được ý tưởng chung.

Đầu tiên, Alice yêu cầu Bob gửi khóa móc mở của mình cho cô ấy thông qua thư thông thường, giữ chìa khóa của mình cho chính mình. Khi Alice nhận được nó, cô sử dụng nó để khóa một hộp chứa thông điệp của cô, và gửi hộp bị khóa cho Bob. Bob sau đó có thể mở khóa hộp bằng khóa của mình và đọc tin nhắn từ Alice. Để trả lời, Bob cũng phải lấy khóa móc mở của Alice để khóa hộp trước khi gửi lại cho cô ấy.

Image
Image

Lợi thế quan trọng trong một hệ thống khóa không đối xứng là Bob và Alice không bao giờ cần phải gửi một bản sao các khóa của họ cho nhau. Điều này ngăn cản một bên thứ ba (có thể, trong ví dụ, một nhân viên bưu chính bị hỏng) sao chép khóa khi đang chuyển tiếp, cho phép bên thứ ba gián điệp tất cả các thư trong tương lai được gửi giữa Alice và Bob. Ngoài ra, nếu Bob bất cẩn và cho phép người khác sao chép của anh ấy chìa khóa, tin nhắn của Alice cho Bob sẽ bị xâm phạm, nhưng tin nhắn của Alice cho người khác sẽ vẫn còn bí mật, vì những người khác sẽ cung cấp khóa móc khác nhau để Alice sử dụng.

Mã hóa bất đối xứng sử dụng các khóa khác nhau để mã hóa và giải mã. Người nhận tin nhắn tạo ra một khóa riêng và một khóa công khai. Khóa công khai được phân phối giữa những người gửi tin nhắn và họ sử dụng khóa công khai để mã hóa tin nhắn. Người nhận sử dụng khóa riêng của họ bất kỳ tin nhắn được mã hóa nào đã được mã hóa bằng khóa công khai của người nhận.

Có một lợi ích lớn khi thực hiện mã hóa theo cách này so sánh với mã hóa đối xứng. Chúng tôi không bao giờ cần phải gửi bất kỳ điều gì bí mật (như mã hóa hoặc mật khẩu của chúng tôi) qua một kênh không an toàn. Khóa công khai của bạn đi ra thế giới - nó không phải là bí mật và nó không cần thiết. Chìa khóa cá nhân của bạn có thể ở lại và ấm cúng trên máy tính cá nhân của bạn, nơi bạn tạo ra nó - nó không bao giờ phải được gửi qua thư điện tử ở bất cứ đâu, hoặc đọc bởi những kẻ tấn công.

Cách mã hóa bảo mật giao tiếp trên web

Trong nhiều năm, giao thức SSL (Lớp cổng bảo mật) đã bảo mật các giao dịch web sử dụng mã hóa giữa trình duyệt web của bạn và máy chủ web, bảo vệ bạn khỏi bất kỳ ai có thể đang rình mò trên mạng ở giữa.

Bản thân SSL là khái niệm khá đơn giản. Nó bắt đầu khi trình duyệt yêu cầu một trang bảo mật (thường là https://)

Máy chủ web gửi khóa công cộng của nó bằng chứng chỉ của nó
Máy chủ web gửi khóa công cộng của nó bằng chứng chỉ của nó
Image
Image

Trình duyệt kiểm tra rằng chứng chỉ được cấp bởi một bên đáng tin cậy (thường là một CA gốc đáng tin cậy), rằng chứng chỉ vẫn hợp lệ và chứng chỉ có liên quan đến trang web được liên hệ.

Image
Image

Trình duyệt sau đó sử dụng khóa công khai, để mã hóa khóa mã hóa đối xứng ngẫu nhiên và gửi nó đến máy chủ với URL được mã hóa bắt buộc cũng như dữ liệu http được mã hóa khác.

Image
Image

Máy chủ web giải mã khóa mã hóa đối xứng bằng khóa riêng của nó và sử dụng khóa đối xứng của trình duyệt để giải mã URL và dữ liệu http của nó.

Image
Image

Máy chủ web gửi lại tài liệu html được yêu cầu và dữ liệu http được mã hóa bằng khóa đối xứng của trình duyệt. Trình duyệt giải mã tài liệu http và dữ liệu html bằng cách sử dụng khóa đối xứng và hiển thị thông tin.

Và bây giờ bạn có thể mua một mặt hàng eBay mà bạn thực sự không cần.
Và bây giờ bạn có thể mua một mặt hàng eBay mà bạn thực sự không cần.

Bạn có học gì không?

Nếu bạn làm được điều này, chúng ta sẽ kết thúc hành trình dài để hiểu mã hóa và một chút về cách thức hoạt động của nó - bắt đầu từ những ngày đầu mã hóa với người Hy Lạp và La Mã, sự nổi lên của Lucifer, và cuối cùng là cách SSL sử dụng mã hóa không đối xứng và đối xứng để giúp bạn mua chú thỏ bông màu hồng trên eBay.

Chúng tôi là những người hâm mộ mã hóa lớn ở đây tại How-To Geek và chúng tôi đã đề cập đến rất nhiều cách khác nhau để thực hiện những việc như:

  • Bắt đầu với TrueCrypt (để bảo mật dữ liệu của bạn)
  • Thêm mã hóa trang web tự động vào Firefox
  • BitLocker To Go Mã hóa ổ đĩa flash di động trong Windows 7
  • Làm thế nào để bảo mật máy tính Linux của bạn bằng cách mã hóa ổ cứng của bạn
  • Thêm tùy chọn mã hóa / giải mã vào Windows 7 / Vista Nhấp chuột phải vào Menu
  • Bắt đầu với Mã hóa TrueCrypt Drive trên Mac OS X

Tất nhiên mã hóa là quá phức tạp một chủ đề để thực sự giải thích tất cả mọi thứ. Chúng ta đã bỏ lỡ điều gì đó quan trọng? Cảm thấy tự do để đặt một số kiến thức về độc giả đồng nghiệp của bạn trong các ý kiến.

Đề xuất: