Các thuật toán mã hóa

Giới thiệu

Trong cuộc sống thường ngày ngày nay, mạng internet bao gồm lẻ đã trở thành một thứ quan trọng thiếu so với chúng ta. Mạng mạng internet giúp họ tra cứu giúp thông tin, làm cho việc, học tập tập, kết nối với mọi người. Ví như thiếu nó thì có lẻ thế giới này vẫn trở lên lạc hậu hơn không ít so cùng với bây giờ.

Bạn đang xem: Các thuật toán mã hóa

Vậy có lúc nào bạn nghĩ về đến thực chất internet là gì, mà tại sao nó lại đặc biệt quan trọng đến vậy? Về cơ bản, ta rất có thể coi internet như thể một môi trường xung quanh trung gian để hiệp thương THÔNG TIN, mọi chuyển động trên internet đa số HẦU NHƯ CHỈ luân phiên quanh việc tiếp nhận, hội đàm và truyền nhận THÔNG TIN. Qua đó ta rất có thể thấy được thông tin quan trọng đặc biệt như nắm nào.

Thật sự thông tin còn đặc trưng hơn phần đông gì bạn tưởng. Một trong những thông tin có thể quan trọng hơn bất cứ thứ gì hữu hình trên quả đât này, nó hoàn toàn có thể đáng giá hàng trăm ngàn tỷ, sản phẩm tỷ tỷ đô la, hoặc rất có thể là vô giá.

Vì thông tin là quan tiền trọng, nên bọn họ sẽ cần phải có những phương thức để bảo đảm nó.

Lưu ý: bài viết dành cho những người mới bắt đầu, không biết hoặc chỉ mới biết sơ về mã hóa thông tin.

Mã hóa là gì?

Hiểu nôm mãng cầu Mã hóa là cách thức ngụy trang hoặc che giấu một tin nhắn bằng phương pháp áp dụng một số bước lập trình máy tính xách tay thành những chuỗi ký kết tữ đặc biệt quan trọng để ngăn những người dân không phận sự tiếp cận vào tin tức đó. Ví dụ: tin nhắn tất cả nội dung như “tôi sẽ gặp anh vào trong ngày mai tại Hà Nội” được gửi thành lời nhắn mã hóa như “p98hUls#yeb!”. Làm ráng nào để mã hóa được vì thế thì họ cần có thuật toán mã hóa.

Thuật toán mã hóa

Thuật toán mã hóa là một trong những thuật toán nhằm mục đích mã hóa tin tức của chúng ta, biến hóa thông tin từ bỏ dạng rõ quý phái dạng mờ, để hạn chế việc hiểu trộm nội dung của thông tin (Dù hacker đã có được thông tin đó cũng thiếu hiểu biết nhiều nội dung đựng trong nó là gì).

Thông thường các thuật toán sử dụng một hoặc những key (Một chuỗi khóa xe để mã hóa và giải mã thông tin) để mã hóa và giải mã (Ngoại trừ những thuật toán cổ điển). Bạn có thể coi key này như một chiếc password để rất có thể đọc được câu chữ mã hóa. Fan gửi sẽ dùng key mã hóa để mã hóa tin tức sang dạng mờ, và người nhận sẽ sử dụng key giải thuật để giải mã thông tin lịch sự dạng rõ. Chỉ những người nào gồm key lời giải mới có thể đọc được nội dung.

Nhưng đôi lúc "kẻ trang bị ba" (hacker) không có key giải mã vẫn hoàn toàn có thể đọc được thông tin, bằng phương pháp phá vỡ vạc thuật toán. Và gồm một chính sách là bất kỳ thuật toán mã hóa nào cũng đều hoàn toàn có thể bị phá vỡ. Bởi vì đó không tồn tại bất kì thuật toán mã hóa nào được xem là an ninh mãi mãi. Độ an toàn của thuật toán được phụ thuộc nguyên tắc:

Nếu chi tiêu để lời giải một cân nặng thông tin lớn hơn giá trị của cân nặng thông tin đó thì thuật toán đó được tạm xem như là an toàn. (Không ai lại đi bỏ ra 50 năm để lời giải một thông tin mà chỉ đem về cho anh ta 1000 đô).

Nếu thời gian để phá vỡ một thuật toán là quá to (giả sử to hơn 100 năm, 1000 năm) thì thuật toán được tạm coi là an toàn.

Phân các loại các phương pháp mã hóa

Có không ít loại cách thức mã hóa không giống nhau đã ra đời. Từng loại bao hàm ưu cùng nhược điểm riêng. Ta hoàn toàn có thể phân phân tách các phương pháp mã biến thành 4 nhiều loại chính:

Mã hóa cổ điểnMã hóa một chiềuMã hóa đối xứngMã hóa bất đối xứng1. Mã hóa cổ điển

Đây là phương thức mã hóa đầu tiên, và nuốm xưa nhất, và bây giờ rất ít được sử dụng đến so với các phương pháp khác. Ý tưởng của phương pháp này rất đối chọi giản, bên A mã hóa thông tin bằng thuật toán mã hóa cổ điển, và bên B giải mã thông tin, dựa vào thuật toán của mặt A, mà không cần sử dụng đến bất kể key nào. Vì chưng đó, độ an toàn của thuật toán sẽ chỉ phụ thuộc vào độ bí mật của thuật toán, vì chỉ việc ta biết được thuật toán mã hóa, ta sẽ hoàn toàn có thể giải mã được thông tin.


*

2. Mã hóa một chiều

Đôi khi ta chỉ việc mã hóa tin tức chứ ko cần giải thuật thông tin, khi đó ta sẽ cần sử dụng đến phương pháp mã hóa một chiều (Chỉ rất có thể mã hóa chứ không thể giải mã). Thông thường phương pháp mã hóa một chiều sử dụng một hàm băm (hash function) để thay đổi một chuỗi tin tức thành một chuỗi hash có độ lâu năm nhất định. Ta không có bất kì phương pháp nào để phục sinh (hay giải mã) chuỗi hash về lại chuỗi thông tin ban đầu.

Xem thêm:

Hàm băm (Hash function) là 1 hàm mà lại nó nhận vào một chuỗi tất cả độ dài bất kì, và xuất hiện một chuỗi tác dụng có độ dài cố định và thắt chặt (Gọi là chuỗi hash), cho dù hai chuỗi tài liệu đầu vào, được mang đến qua hàm băm thì cũng hình thành hai chuỗi hash công dụng khác nhau cực kỳ nhiều. Lấy ví dụ như so với kiểu dữ liệu Hash-table, ta hoàn toàn có thể coi đây là một dạng kiểu tài liệu mảng đặc biệt quan trọng mà index nó nhận vào là một chuỗi, nó được định nghĩa bằng cách bên vào nó chứa một mảng thông thường, mọi khi truyền vào index là 1 trong những chuỗi, thì chuỗi này sẽ trải qua hàm băm với ra một giá trị hash, giá trị này sẽ tương xứng với index thật của thành phần đó vào mảng mặt dưới.

Đặc điểm của hash function là lúc thực hiên băm nhị chuỗi dữ liệu như nhau, cho dù trong thực trạng nào thì nó cũng cùng tạo ra một chuỗi hash duy nhất bao gồm độ dài nhất quyết và thường nhỏ dại hơn không ít so với chuỗi gốc, với hai chuỗi thông tin bất kỳ dù khác biệt rất ít cũng biến thành cho ra chuỗi hash không giống nhau rất nhiều. Vì vậy hash function thường xuyên được thực hiện để chất vấn tính toàn diện của dữ liệu.

Ngoài ra tất cả một vận dụng mà rất có thể bạn thường thấy, sẽ là để bảo quản mật khẩu. Vì chưng mật khẩu là 1 trong những thứ cực kỳ quan trọng, cho nên vì thế ta tránh việc lưu mật khẩu của người tiêu dùng dưới dạng rõ, vì bởi vậy nếu bị tin tặc tấn công, lấy được cơ sở dữ liệu thì hacker có thể biết được mật khẩu của fan dùng. Vì đó, mật khẩu đăng nhập của người dùng nên được lưu bên dưới dạng chuỗi hash, và so với server thì chuỗi hash kia chỉnh là “mật khẩu” đăng nhập (lúc đăng nhập thì password mà người tiêu dùng nhập cũng được mã trở thành chuỗi hash và đối chiếu với chuỗi hash trong database của server). Dù tin tặc có mang được database thì cũng ko tài nào rất có thể giải mã được chuỗi hash để tìm ra mật khẩu của người dùng.

Thuật toán mã hóa một chiều (hàm băm) mà lại ta thường chạm chán nhất là MD5 và SHA.


*

3. Mã hóa đối xứng

Mã hóa đối xứng (Hay có cách gọi khác là mã hóa khóa túng thiếu mật) là cách thức mã hóa mà key mã hóa với key lời giải là tương đồng (Sử dụng và một secret key để mã hóa với giải mã). Đây là cách thức thông dụng nhất bây chừ dùng để mã hóa dữ liệu truyền thừa nhận giữa hai bên. Vày chỉ cần phải có secret key là rất có thể giải mã được, đề xuất bên gởi và bên nhận nên làm một giải pháp nào kia để cùng thống độc nhất vô nhị về secret key.

Để triển khai mã hóa tin tức giữa 2 bên thì:

Đầu tiên mặt gửi và mặt nhận bằng cách nào đó sẽ phải thóa thuận secret key (khóa túng bấn mật) được dùng để mã hóa cùng giải mã. Bởi vì chỉ cần biết được secret key này thì mặt thứ ba rất có thể giải mã được thông tin, nên tin tức này cần được bí mật truyền đi (bảo vệ theo một giải pháp nào đó).

Sau đó mặt gửi sẽ dùng một thuật toán mã hóa với secret key khớp ứng để mã hóa tài liệu sắp được truyền đi. Khi bên nhận nhận ra sẽ dùng chính secret key đó để giải mã dữ liệu.Vấn đề lớn nhất của phương thức mã hóa đối xứng là làm sao để “thỏa thuận” secret key giữa bên gửi và bên nhận, bởi vì nếu truyền secret key từ mặt gửi sang bên nhận mà lại không dùng một phương pháp bảo vệ nào thì bên thứ cha cũng hoàn toàn có thể dễ dàng mang được secret key này.

Các thuật toán mã hóa đối xứng thường xuyên gặp: DES, AES…


*

4. Mã hóa bất đối xứng

Mã hóa bất đối xứng (Hay nói một cách khác là mã hóa khóa công khai) là phương thức mã hóa mà lại key mã hóa (lúc này gọi là public key – khóa công khai) với key giải thuật (lúc này điện thoại tư vấn là private key – khóa túng thiếu mật) không giống nhau. Nghĩa là key ta sử dụng để mã hóa tài liệu sẽ khác với key ta dùng để giải mã dữ liệu. Tất cả mọi tín đồ đều hoàn toàn có thể biết được public key (kể cả hacker), và hoàn toàn có thể dùng public key này để mã hóa thông tin. Tuy thế chỉ có bạn nhận mới nắm giữ private key, nên chỉ có người nhận mới có thể giải mã được thông tin.

Để thực hiện mã hóa bất đối xứng thì:

Bên nhận sẽ tạo nên ra một chạm chán khóa (public key cùng private key). Bên nhận đã dữ lại private key với truyền cho bên gửi public key. Vày public key này là công khai minh bạch nên hoàn toàn có thể truyền thoải mái mà không phải bảo mật.Bên gửi trước khi gửi dữ liệu sẽ mã hóa dữ liệu bằng thuật toán mã hóa bất đối xứng với key là public key từ mặt nhận.Bên thừa nhận sẽ lời giải dữ liệu thừa nhận được bởi thuật toán được sử dụng ở mặt gửi, cùng với key giải thuật là private key.

Điểm yếu lớn nhất của mã hóa bất đối xứng là tốc độ mã hóa và giải mã rất chậm chạp so cùng với mã hóa đối xứng, nếu cần sử dụng mã hóa bất đối xứng để mã hóa tài liệu truyền – dìm giữa 2 bên thì đang tốn rất nhiều chi phí.

Do đó, vận dụng chỉnh của mã hóa bất đối xứng là dùng để làm bảo mật secret key mang đến mã hóa đối xứng: Ta đã dùng cách thức mã hóa bất đối xứng nhằm truyền secret key của bên gửi cho bên nhận. Và phía hai bên sẽ sử dụng secret key này để trao đổi thông tin bằng phương thức mã hóa đối xứng.