Trang chủ » làm thế nào để » 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?

    Mã hóa có một lịch sử lâu đời kể từ khi người Hy Lạp và La Mã cổ đại 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 một khóa bí mật. Tham gia với chúng tôi để có một bài học lịch sử nhanh chóng và tìm hiểu thêm về cách mã hóa hoạt động.

    Trong phiên bản hôm nay của Giải thích HTG, 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 thức 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 người đam mê ghét Internet nhà thám hiểm.

    Hình ảnh bởi xkcd, chắc chắn.

    Những ngày đầu của tiền mã hó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 tin nhắn của họ nhanh hơn bằng cách sử dụng mật mã chuyển vị - họ chỉ đơn giản là quấn dải giấy da quanh hình trụ, viết ra thông điệp và sau đó khi không có ý nghĩa sẽ không có ý nghĩa.

    Tất nhiên, phương pháp mã hóa này có thể dễ dàng bị phá vỡ, nhưng đây 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. Chẳng hạn, bằng cách sử dụng mật mã ví dụ bên dưới, bạn sẽ viết cuốn sách GEEK trực tiếp là.

    Đồng bằng: ABCDEFGHIJKLMNOPQRSTUVWXYZ
    Mật mã: DEFGHIJKLMNOPQRSTUVWXYZABC

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

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

    Sử dụng một bảng như bảng ở trên, bạn sẽ viết thư Chữ Giết như là 23 23, hoặc là GEEKiến như là 23 23 31 43 43.

    Máy Enigma

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

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

    Hãy đố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 nói, chúng tôi đã tập hợp một chuỗi 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 gậy của Jeff Moser cho AES.  Lưu ý: rõ ràng chúng ta không thể truyền đạt mọi thứ về lịch sử mã hóa trong một truyện tranh.

    Quay 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ật 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ự sớm nhất, được phát triển bởi Horst Feistel và các đồng nghiệp của ông tại IBM.

    Tiêu 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 chung) được Cục Tiêu chuẩn quốc gia chọn là Tiêu chuẩn xử lý thông tin liên bang chính thức cho Hoa Kỳ vào năm 1976 và sau đó đã được phổ biến rộng rãi sử dụng quốc tế.

    Những lo ngại về bảo mật 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ật 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: các ví dụ bao gồm RC5, Blowfish, IDEA, NewDES, SAFER, CAST5 và CẢM NHẬN

    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 Tiêu 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à US PUB 197 (Trin 197) của Hoa Kỳ vào ngày 26 tháng 11 năm 2001 sau quá trình tiêu 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à nhất 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à tất cả chúng đều 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 một thuật toán khác là khả năng bảo mật dữ liệu được bảo vệ chống lại các cuộc tấn công và tốc độ và hiệu quả của nó khi làm như vậy.

    Là một ví dụ điển hình 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 đo điểm chuẩn được tích hợp trong trình hướng dẫn tạo khối của TrueCrypt - như bạn có thể thấy, AES là loại mã hóa mạnh nhất nhanh nhất.

    Có cả phương pháp mã hóa chậm hơn và nhanh hơn, và tất cả 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 mẩu 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 yêu cầu tốc độ, có lẽ bạn muốn đi với AES.

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

    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 đây hầu hết được sử dụng cho hai loại mã hóa khác nhau:

    • Các thuật toán khóa đối xứng sử dụng các khóa mã hóa liên quan hoặc giống hệt nhau cho cả mã hóa và giải mã.
    • Các 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ách các thuật toán khóa đối xứng hoạt động.

    Alice đặt tin nhắn bí mật của mình vào một cái hộp và khóa hộp bằng ổ khóa mà cô ấy có chìa khóa. Sau đó, cô gửi hộp cho Bob thông qua thư thông thường. Khi Bob nhận được chiếc hộp, anh ta sử dụng một bản sao giống hệt chìa khóa của Alice (mà anh ta đã lấy được bằng cách nào đó trước đây, có thể bằng một cuộc gặp mặt trực tiếp) để mở hộp và đọc tin nhắn. Sau đó, Bob 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 - thuật toán mã hóa dòng mã hóa từng bit của thông điệp một lần và các thuật toán mã khối lấy một số bit, thường là các khối 64 bit mỗi lần và mã hóa chúng thành một đơn vị. 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 bất đố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 có nhiều khóa từ ví dụ đối xứng. Lưu ý: tất nhiên, đây là 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ủa mình cho cô ấy thông qua thư thường xuyên, giữ chìa khóa của anh ấy cho chính mình. Khi Alice nhận được nó, cô dùng nó để khóa một hộp chứa thông điệp của mình và gửi hộp bị khóa cho Bob. Sau đó, Bob có thể mở khóa hộp bằng chìa khóa của mình và đọc tin nhắn từ Alice. Để trả lời, Bob phải lấy khóa mở của Alice để khóa hộp trước khi gửi lại cho cô ấy.

    Ưu điểm quan trọng trong hệ thống khóa bất đối xứng là Bob và Alice không bao giờ cần gửi một bản sao các khóa của họ cho nhau. Điều này ngăn một bên thứ ba (có lẽ, trong ví dụ, một nhân viên bưu điện bị hỏng) sao chép chìa khóa trong khi đang chuyển, cho phép bên thứ ba nói gián điệp về tất cả các tin nhắn 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 gửi cho Bob sẽ bị xâm phạm, nhưng tin nhắn của Alice cho người khác sẽ vẫn là 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 một khóa riêng và một khóa chung. Khóa chung được phân phối giữa những người gửi tin nhắn và họ sử dụng khóa chung để 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 chung 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 với mã hóa đối xứng. Chúng tôi không bao giờ cần gửi bất cứ điều gì bí mật (như khóa mã hóa hoặc mật khẩu) qua kênh không an toàn. Khóa công khai của bạn đi ra thế giới - nó không bí mật và không cần phải như vậy. Khóa riêng của bạn có thể nằm gọn gàng và ấm cúng trên máy tính cá nhân của bạn, nơi bạn đã tạo nó - nó không bao giờ phải được gửi qua email ở bất cứ đâu hoặc bị kẻ tấn công đọc.

    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 bằng cách sử dụng mã hóa giữa trình duyệt web và máy chủ web, bảo vệ bạn khỏi bất kỳ ai có thể 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 khai cùng với chứng chỉ của nó.

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

    Trình duyệt sau đó sử dụng khóa chung, để 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 cần thiết cũng như dữ liệu http được mã hóa khác.

    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ó.

    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ã dữ liệu http và tài liệu html bằng khóa đối xứng và hiển thị thông tin.

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

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

    Nếu bạn đi xa đến thế, chúng ta sẽ ở cuối hành trình dài để hiểu về tiền 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ự trỗi dậy của Lucifer, và cuối cùng là cách SSL sử dụng mã hóa bất đối xứng và đối xứng để giúp bạn mua chú thỏ hồng mịn đó trên eBay.


    Chúng tôi là những người hâm mộ mã hóa lớn tại How-To Geek và chúng tôi đã đề cập đến rất nhiều cách khác nhau để làm 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 Encrypts Ổ đĩa flash di động trong Windows 7
    • Cách 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 Menu chuột phải
    • Bắt đầu với Mã hóa ổ đĩa TrueCrypt trên Mac OS X

    Tất nhiên mã hóa là một chủ đề quá phức tạp để thực sự giải thích mọi thứ. Chúng tôi đã bỏ lỡ một cái gì đó quan trọng? Hãy thoải mái đặt một số kiến ​​thức về các độc giả của bạn trong các bình luận.