Home » Công Nghệ Thông Tin » Mã hóa là gì ? Kiến thức tổng quan về mã hóa

Mã hóa là gì ? Kiến thức tổng quan về mã hóa

Mã hóa là gì ? Kiến thức tổng quan về mã hóa
5 (100%) 2 votes

1. Mã hóa là gì

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

2. Các loại mã hóa dữ liệu thông dụng

Hiện có 4 biện pháp mã hoá dữ liệu thông dụng:

Mã hóa cổ điển

Mã hoá cổ điển là cách đơn giản nhất, tồn lại lâu nhất trên thế giới và không cần khóa bảo mật, chỉ cần người gửi và người nhận cùng biết về thuật toán này là được.

Ví dụ: nếu chúng ta dùng thuật toán đổi kí tự trong câu văn thành kí tự liền kề trong bảng chữ cái thì chữ “Tinh tế” sẽ biến thành “Ujoi uf”. Người nhận khi nhận được chữ “Ujoi uf” thì chỉ việc dịch ngược lại là xong.

                                           

Tuy nhiên, giải pháp mã hóa này được xem là không an toàn, vì nếu một người thứ ba biết được thuật toán thì xem như thông tin không còn bảo mật nữa. Việc giữ bí mật thuật toán trở nên rất quan trọng, và không phải ai cũng có thể giữ bí mật đó một cách trọn vẹn. Có khả năng người đó sẽ rò rỉ ra, hoặc có ai đó ngồi giải ra thuật toán thì xem như chúng ta thua cuộc.

Mã hóa một chiều (hash)

Phương pháp này dùng để mã hóa những thứ không cần dịch lại nguyên bản gốc. Ví dụ, khi bạn đăng nhập vào Tinh tế, mật khẩu mà bạn nhập sẽ được chuyển thành một chuỗi dài các kí tự bằng một thứ gọi là hash function (tạm dịch: hàm băm).

Chuỗi này sẽ được lưu vào cơ sở dữ liệu, chứ không lưu mật khẩu thô của bạn nhằm tăng tính bảo mật. Lỡ hacker có trộm dữ liệu thì cũng chỉ thấy những thứ như FIiyXYB547bhvyuuUIbZ chứ không biết password thật của bạn là gì.

Mỗi lần bạn đăng nhập, hash function sẽ “băm” password thật của bạn thành chuỗi kí tự rồi so sánh nó với cái trong cơ sở dữ liệu, nếu khớp thì đăng nhập tiếp, không thì báo lỗi. Chúng ta không có nhu cầu dịch ngược chuỗi nói trên ra lại thành password thật để làm gì cả.

                                               

Nói thêm về hash function, nhiệm vụ của nó là chuyển một chuỗi có độ dài bất kì thành chuỗi kí tự có độ dài cố định. Ví dụ, nếu bạn quy định chuỗi kí tự sau khi “băm” sẽ dài 10 kí tự thì dù đầu vào của bạn có bao nhiêu chữ đi nữa thì kết quả nhận được sẽ luôn là 10 và chỉ 10 kí tự mà thôi.

Đặc điểm của hash function là trong cùng 1 điều kiện, dữ liệu đầu vào như nhau thì kết quả sau khi băm cũng sẽ y hệt như nhau. Nếu chỉ đổi một chút xíu thôi, có khi chỉ là 1 kí tự nhỏ thì chuỗi kết quả sẽ khác hoàn toàn.

Cũng vì vậy mà người ta dùng hash function để kiểm tra tính toàn vẹn của dữ liệu. Ví dụ, trước khi gửi một tập tin Word cho người bạn thì mình dùng mã hóa một chiều và tạo ra được chuỗi sau băm là DFYUBUfyeufuefu. Khi người bạn đó tải tập tin về máy, nếu nó băm và cũng nhận được chuỗi DFYUBUfyeufuefu thì có nghĩa là tập tin của mình không bị can thiệp bởi hacker, còn nếu kết quả khác thì có nghĩa là quá trình truyền tải có thể đã bị lỗi làm mất một phần dữ liệu, hoặc tệ hơn là có ai đó đã xén bớt hay thêm vào thứ gì đó rồi.

Hiện nay, hai thuật toán hash function thường được dùng nhất là MD5 và SHA. Nếu bạn tải tập tin trên mạng thì đôi khi sẽ thấy dòng chữ MD5 do tác giả cung cấp, mục đích là để bạn so sánh file đã tải về với file gốc xem có bị lỗi gì không.

Mã hóa đối xứng (symmetric key encryption)

Chúng ta bắt đầu đi tìm hiểu về việc bảo mật có dùng khóa. Khóa ở đây được gọi là “key”, nó là mấu chốt để thuật toán có thể nhìn vào mà biết đường mã hóa và giải mã dữ liệu.

Cũng giống như cánh cửa nhà của bạn, nếu bạn có khóa thì bạn có thể nhanh chóng đi vào trong, còn không có khóa thì bạn vẫn có thể đục cửa hay kêu thợ sửa khóa, nhưng sẽ tốn thời gian và công sức hơn. Mỗi chìa khóa cho mỗi ổ khóa trên thế giới là duy nhất với các đường rãnh không chìa nào giống chìa nào – key mã hóa cũng tương tự như vậy.

Ở phương pháp mã hóa đối xứng, chìa khóa để mã hóa và giải mã là như nhau nên người ta mới gọi là đối xứng, tiếng Anh là symmetric. Theo một số tài liệu thì mã hóa đối xứng là giải pháp được sử dụng nhất phổ biến hiện nay.

Giả sử mình cần mã hóa một tập tin để gửi cho bạn, thì quy trình sẽ như sau:

  1. Mình sử dụng một thuật toán mã hóa, cộng với khóa của mình để mã hóa file (cách tạo khóa tạm thời không bàn đến, chủ yếu là dùng các giải thuật ngẫu nhiên).
  2. Bằng cách nào đó, mình giao cho bạn một khóa giống với mình, có thể là giao trước hoặc sau khi mã hóa tập tin đều được.
  3. Khi bạn nhận tập tin, bạn sẽ dùng khóa này để giải mã ra tập tin gốc có thể đọc được.

                                    

Vấn đề ở đây, đó là mình phải làm sao để chuyển khóa cho bạn một cách an toàn. Nếu khóa này bị lộ ra thì bất kì ai cũng có thể xài thuật toán nói trên để giải mã tập tin, như vậy thì tính bảo mật sẽ không còn nữa.

Ngày nay người ta thường sử dụng password như là khóa mã hóa, và bằng cách này bạn có thể nhanh chóng nhắn cho người nhận cùng đoạn password đó để xài làm khóa giải mã.

Các thuật toán mã hóa thường thấy bây giờ là DES và AES. Trong đó, AES phổ biến trong thế giới hiện đại hơn và nó dùng để thay thế cho DES vốn đã xuất hiện từ năm 1977. Hiện nay nhiều cơ quan chính phủ trên thế giới quy định tài liệu khi được gửi qua mạng phải mã hóa AES.

Thuật toán AES có thể dùng nhiều dạng ô nhớ khác nhau để mã hóa dữ liệu, thường thấy là 128-bit và 256-bit, có một số lên tới 512-bit và 1024-bit. Kích thước ô nhớ càng lớn thì càng khó giải mã mã hơn, bù lại việc giải mã và mã hóa cũng cần nhiều kỹ năng xử lý hơn.

Mã hóa bất đối xứng (public key encryption)

Nếu như ở trên, khóa mã hóa và khóa giải mã đều giống nhau thì với phương pháp bất đối xứng, hai khóa này hoàn toàn khác nhau. Để phân biệt giữa hai khóa thì người ta gọi khóa mã hóa là public key, còn khóa giải mã là private key.

Public, như cái tên đã gợi ý, mang tính chất “công cộng” và có thể được sử dụng để mã hóa dữ liệu bởi bất kì ai. Tuy nhiên, chỉ người nào nằm trong tay private key mới có khả năng giải mã dữ liệu để xem.

Quy trình mã hóa bất đối xứng như sau:

  1. Bên nhận sẽ tạo ra một cặp public + private key. Người này giữ lại private key cho riêng mình và cất cẩn thận, còn public key thì chuyển cho bên gửi (dưới hình thức email, copy qua USB, v.v) hoặc post đâu đó lên mạng.
  2. Bên gửi sử dụng public key để mã hóa dữ liệu, sau đó gửi file đã mã hóa lại cho bên nhận.
  3. Bên nhận lúc này sẽ xài private key đã lưu khi nãy để giải mã dữ liệu và sử dụng.

                                       

Một nhược điểm của mã hóa bất đối xứng đó là tốc độ giải mã chậm hơn so với mã hóa đối xứng, tức là chúng ta phải tốn nhiều năng lực xử lý của CPU hơn, phải chờ lâu hơn, dẫn đến “chi phí” cao hơn. Khoảng thời gian lâu hơn là bao nhiêu thì còn tùy vào thuật toán mã hóa, cách thức mã hóa và key.

Chính vì thế mà hiện tại ít ai mã hóa cả một file bằng phương pháp bất đối xứng. Thay vào đó, họ xài phương pháp bất đối xứng để mã hóa chính cái key dùng trong mã hóa đối xứng (hoặc tạo ra key đó bằng cách tổng hợp public và private key của bên gửi và nhận).

Như đã nói ở trên, mã hóa đối xứng có nhược điểm là key bị lộ là coi như xong đời, vậy thì giờ chúng ta mã hóa luôn cái key đó cho an toàn và có thể gửi key thoải mái hơn. Một khi đã giải mã bất đối xứng để ra key gốc rồi thì tiến hành giải mã thêm lần nữa bằng phương pháp đối xứng để ra file ban đầu.

Một thuật toán mã hóa thường được xài là RSA.

3. Ứng dụng của mã hóa – HTTPS

HTTPS dùng thuật toán mã hóa TLS (lai giữa đối xứng và bất đối xứng) để mã hóa dữ liệu của bạn khi gửi thông tin giữa trình duyệt và máy chủ.

Bằng cách này, những kẻ xấu với hi vọng đánh cắp dữ liệu trong lúc dữ liệu đang được gửi đi sẽ không biết chính xác thông tin là gì (do chúng không nắm được key trong tay).

                                                      

HTTPS là dạng mã hóa thông tin đang di chuyển, và người ta còn có thể dùng mã hóa để đảm bảo an toàn cho rất nhiều thứ khác, từ email, thông tin di động, Bluetooth cho đến ứng dụng vào các máy ATM. Ngoài ra, người ta còn mã hóa dữ liệu đang nằm yên, ví dụ như mấy tấm hình trong máy, các tập tin đã lưu vô ổ cứng hoặc cơ sở dữ liệu của các công ty.

Các bài có thể xem:  Khái niệm và đặc điểm thẻ thanh toán ngân hàng , Quy trình cho vay khách hàng cá nhânCác hình thức cho vay khách hàng cá nhânTìm hiểu chiêu thi – promotion trong marketingTìm hiểu sensory marketing các nhân tố ảnh hướng đến văn hóa doanh nghiệp.

Hiện tại chúng tôi cung cấp các dịch vụ:

Làm luận văn thạc sĩ thuê

Nhận làm assignment

Làm thuê luận án tiến sĩ

Nếu bạn không có thời gian hoàn thành bài luận, hãy liên hệ ngay nhé!

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

*
*