Các Thuật Toán Mã Hóa Đối Xứng

      61
Giới thiệu

Trong cuộc sống đời thường ngày nay, mạng internet gồm lẻ đang trở thành một thứ bắt buộc thiếu đối với chúng ta. Mạng internet giúp họ tra cứu vớt thông tin, có tác dụng việc, học tập, kết nối với tất cả người. Nếu như thiếu nó thì bao gồm lẻ quả đât này vẫn trở lên lạc hậu hơn tương đối nhiều so cùng với bây giờ.

Bạn đang xem: Các thuật toán mã hóa đối xứng

Vậy có bao giờ bạn nghĩ đến thực ra internet là gì, mà vì sao nó lại đặc biệt quan trọng đến vậy? Về cơ bản, ta hoàn toàn có thể coi internet như thể một môi trường xung quanh trung gian để đàm phán THÔNG TIN, mọi chuyển động trên internet đều HẦU NHƯ CHỈ luân chuyển quanh việc tiếp nhận, dàn xếp và truyền dấn THÔNG TIN. Thông qua đó ta rất có thể thấy được thông tin đặc trưng như nắm nào.

Thật sự tin tức còn đặc biệt hơn đều gì các bạn tưởng. Một số thông tin rất có thể quan trọng hơn bất kể thứ gì hữu hình trên thế giới này, nó hoàn toàn có thể đáng giá hàng nghìn tỷ, sản phẩm tỷ tỷ đô la, hoặc hoàn toàn có thể là vô giá.

Vì tin tức là quan lại trọng, nên chúng ta sẽ rất cần được có những phương pháp để đảm bảo nó.

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

Mã hóa là gì?

Hiểu nôm na Mã hóa là cách thức ngụy trang hoặc đậy 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 laptop 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 gồm nội dung như “tôi sẽ chạm mặt anh vào trong ngày mai tại Hà Nội” được gửi thành tin nhắn mã hóa như “p98hUls#yeb!”. Làm nắm nào nhằm mã hóa được bởi thế thì chúng ta cần gồm thuật toán mã hóa.

Thuật toán mã hóa

Thuật toán mã hóa là 1 thuật toán nhằm mục đích mã hóa thông tin của bọn chúng ta, biến đổi thông tin trường đoản cú dạng rõ lịch sự dạng mờ, để ngăn cản việc đọc trộm câu chữ của thông tin (Dù hacker đã đạt được thông tin đó cũng không hiểu nội dung cất trong nó là gì).

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

Nhưng nhiều khi "kẻ vật dụng ba" (hacker) không tồn tại key lời giải vẫn hoàn toàn có thể đọc được thông tin, bằng cách phá vỡ thuật toán. Và tất cả một nguyên lý là bất cứ thuật toán mã hóa nào cũng đều hoàn toàn có thể bị phá vỡ. Vì chưng đó không tồn tại bất kì thuật toán mã hóa nào được nhìn nhận là an ninh mãi mãi. Độ an ninh của thuật toán được nhờ vào nguyên tắc:

Nếu giá thành để giải mã một trọng lượng thông tin to hơn giá trị của cân nặng thông tin kia thì thuật toán này được tạm coi là an toàn. (Không ai lại đi ném ra 50 năm để giải mã một tin tức mà chỉ đưa về cho anh ta 1000 đô).

Nếu thời hạn để phá vỡ vạc 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 loại các phương thức mã hóa

Có không ít loại phương pháp mã hóa khác nhau đã ra đời. Từng loại bao hàm ưu và nhược điểm riêng. Ta có thể phân phân tách các phương thức mã hóa thành 4 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à nạm xưa nhất, và hiện nay rất ít được dùng đến so với các phương thức khác. Ý tưởng của phương thức này rất 1-1 giản, mặt A mã hóa tin tức bằng thuật toán mã hóa cổ điển, và bên B giải mã thông tin, nhờ vào thuật toán của mặt A, nhưng không dùng đến bất kỳ key nào. Do đó, độ an ninh của thuật toán sẽ chỉ phụ thuộc độ bí mật của thuật toán, vì chỉ cần ta biết được thuật toán mã hóa, ta sẽ có thể giải mã được thông tin.

*

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

Đôi lúc ta chỉ cần mã hóa thông tin chứ ko cần giải mã thông tin, lúc ấy ta sẽ cần sử dụng đến cách thức mã hóa một chiều (Chỉ có thể mã hóa chứ thiết yếu giải mã). Thông thường phương thức mã hóa một chiều áp dụng một hàm băm (hash function) để phát triển thành một chuỗi thông tin thành một chuỗi hash bao gồm độ nhiều năm nhất định. Ta không tồn tại bất kì phương pháp nào để phục hồi (hay giải mã) chuỗi hash về lại chuỗi tin tức ban đầu.

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

Xem thêm: Hướng Dẫn Thay Đổi Thư Mục Onedrive Trong Windows 10, Thay Đổi Vị Trí Thư Mục Onedrive Trong Windows 10

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

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

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

*

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

Mã hóa đối xứng (Hay nói một cách khác là mã hóa khóa túng bấn mật) là cách thức mã hóa mà key mã hóa và key lời giải là tương đồng (Sử dụng và một secret key nhằm mã hóa với giải mã). Đây là phương pháp thông dụng nhất hiện giờ dùng nhằm mã hóa tài liệu truyền nhấn giữa nhì bên. Do chỉ cần phải có secret key là hoàn toàn có thể giải mã được, đề nghị bên giữ hộ và bên nhận phải làm một biện pháp nào đó để cùng thống độc nhất vô nhị về secret key.

Để triển khai mã hóa thông tin giữa 2 bên thì:

Đầu tiên bên 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 mật) được dùng làm mã hóa và giải mã. Bởi vì chỉ cần phải biết được secret key này thì mặt thứ ba có thể giải mã được thông tin, nên thông tin này yêu cầu được kín truyền đi (bảo vệ theo một phương pháp nào đó).

Sau đó bên gửi sẽ sử dụng một thuật toán mã hóa với secret key tương ứng để mã hóa dữ liệu sắp được truyền đi. Khi mặt nhận nhận được sẽ dùng bao gồm secret key đó để lời giải dữ liệu.Vấn đề lớn nhất của phương pháp 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 nếu truyền secret key từ bên gửi sang mặt nhận nhưng không dùng một phương pháp đảm bảo nào thì bên thứ tía cũng 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 còn gọi là mã hóa khóa công khai) là phương thức mã hóa nhưng mà key mã hóa (lúc này hotline là public key – khóa công khai) với key giải thuật (lúc này gọi là private key – khóa túng thiếu mật) khác nhau. Nghĩa là key ta sử dụng để mã hóa dữ liệu sẽ khác với key ta dùng để làm giải mã dữ liệu. Toàn bộ mọi người đề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 nhằm mã hóa thông tin. Nhưng lại chỉ có tín đồ nhận mới nắm giữ private key, nên chỉ có thể 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 ra một gặp khóa (public key và private key). Mặt nhận vẫn dữ lại private key với truyền cho bên gửi public key. Vị public key này là công khai nên hoàn toàn có thể truyền tự do thoải mái mà không nên 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 cùng với key là public key từ bên nhận.Bên dìm sẽ giải mã dữ liệu dìm được bởi thuật toán được áp dụng ở mặt gửi, cùng với key giải mã là private key.

Điểm yếu lớn nhất của mã hóa bất đối xứng là vận tốc mã hóa và giải thuật rất chậm so với mã hóa đối xứng, nếu cần sử dụng mã hóa bất đối xứng nhằm mã hóa tài liệu truyền – dấn giữa phía 2 bên thì sẽ 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 đang dùng phương 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ẽ cần sử dụng secret key này để trao đổi thông tin bằng cách thức mã hóa đối xứng.

Thuật toán mã hóa bất đối xứng hay thấy: RSA.

*

Lời kết

Tôi hy vọng bài viết cung cấp cho cho chúng ta những thông tin hữu ích cùng tổng quan liêu về các hệ mật mã - một ngành khoa học cực kì lý thú.