Mạng máy tính là một môi trường mở và những thông tin được đưa lên Internet hoặc nhận về Internet đều có thể bị lộ bởi các đối tượng xấu. Một trong những phương thức để bảo mật dữ liệu an toàn và được sử dụng phổ biến hiện nay chính là mã hóa thông tin. Tuy nhiên, không phải ai cũng hiểu rõ mã hóa thông tin là gì? Nó có chức năng ra sao và tại sao chúng ta phải mã hóa thông tin? Hãy tìm kiếm câu trả lời trong bài viết sau đây cùng với muahangdambao.com nhé!
Mã hóa thông tin là gì?
Mã hoá là gì?
Trước khi tìm hiểu mã hoá thông tin là quá trình như thế nào thì chúng ta hãy xem mã hoá là gì nhé? Trong ngành mật mã học thì mã hóa chính là quá trình dùng để biến thông tin từ một dạng này sang dạng khác để ngăn chặn những người không có phận sự tiếp cận vào nguồn thông tin đó.
Bản thân việc mã hóa không thể ngăn chặn việc thông tin bị đánh cắp, có điều thông tin đó khi được lấy về cũng không thể dùng được, không đọc được hay hiểu được vì đã được làm biến dạng khó hiểu đi rồi.
Vậy mã hoá thông tin có nghĩa là gì?
Thông qua giải thích phía trên, ta có thể hiểu đơn giản mã hóa là một phương pháp nhằm bảo vệ thông tin cá nhân bằng cách chuyển đổi thông tin từ dạng có thể đọc và hiểu được 1 cách thông thường sang dạng thông tin không thể hiểu được theo cách thông thường. Và dĩ nhiên chỉ có người có quyền truy cập vào khóa giải mã hoặc có mật khẩu thì mới có thể đọc được nó.
Việc làm này giúp ta có thể bảo vệ nguồn thông tin được tốt hơn, đảm bảo an toàn trong việc truyền dữ liệu trên mạng Internet. Dữ liệu khi được mã hóa thành công thường gọi là ciphertext còn dữ liệu thông thường không được mã hóa thì gọi là plaintext.
Vì sao việc mã hóa thông tin lại đặc biệt quan trọng?
Việc mã hóa các thông tin, dữ liệu là để đảm bảo tính an toàn cho thông tin, đặc biệt là trong thời đại công nghệ số càng ngày càng phát triển như hiện nay. Với những giao dịch điện tử thì mã hoá có vai trò cực kỳ quan trọng, nó đảm bảo bí mật và toàn vẹn thông tin của người dùng khi thông tin được truyền trên mạng Internet. Mã hóa cũng chính là nền tảng cơ bản của kĩ thuật chữ ký điện tử và hệ thống PKI.
Chức năng của quá trình mã hoá thông tin là gì?
Như đã nói thì mục đích chính của việc mã hóa dữ liệu là để bảo vệ dữ liệu số khi nó được lưu trữ trên các hệ thống của máy tính và lan truyền qua Internet hay bất cứ các mạng máy tính khác.
Các thuật toán mã hóa thường sẽ cung cấp những yếu tố bảo mật then chốt như là xác thực, tính toàn vẹn và không thể thu hồi. Bước xác thực sẽ cho phép xác minh được nguồn gốc của dữ liệu, tính toàn vẹn và chứng minh rằng nội dung của dữ liệu sẽ không thể bị thay đổi kể từ khi nó vừa được gửi đi. Không thu hồi được nhằm đảm bảo rằng người đó không thể hủy việc gửi dữ liệu.
Quá trình mã hóa sẽ biến các nội dung này sang một dạng mới, vì thế sẽ làm tăng thêm một lớp bảo mật nữa cho dữ liệu. Như vậy cho dù dữ liệu của bạn có bị đánh cắp thì việc giải mã dữ liệu này cũng là điều vô cùng khó khăn và gần như là không thể, không chỉ tốn nhiều nguồn lực để tính toán mà còn cần rất nhiều thời gian.
Với những công ty, tổ chức có quy mô lớn thì việc sử dụng mã hóa dữ liệu là điều vô cùng cần thiết. Điều này có thể sẽ giúp tránh được những thiệt hại lớn khi những thông tin bảo mật nếu vô tình bị lộ ra ngoài thì cũng khó lòng mà giải mã ngay lập tức được.
Hiện nay đang có rất nhiều ứng dụng tin nhắn đều sử dụng quy trình mã hóa nhằm bảo mật tin nhắn tới cho người dùng. Chúng ta có thể kể đến như là Facebook, WhatApps với loại mã hóa sử dụng có tên gọi là End-to-End.
Xem thêm: Khái niệm thông tin là gì tin học 10? Có những dạng nào? Cho ví dụ
Có những loại mã hoá thông tin nào?
Hiện nay có 4 biện pháp mã hoá dữ liệu thông dụng nhất, cụ thể là:
Mã hóa dạng cổ điển
Mã hóa cổ điển là cách mã hoá đơn giản nhất, tồn tại lâu nhất trên thế giới và không cần tới khóa bảo mật để mở. Chỉ cần người gửi và người nhận cùng hiểu và biết về thuật toán này là có thể giải được.
Ví dụ: Nếu như chúng ta dùng thuật toán đổi ký tự trong câu văn thành các ký tự liền kề trong bảng chữ cái thì chữ “tinh tế” sẽ được biến thành cụm “ujoi uf”. Người nhận khi nhận được dòng chữ “ujoi uf” này thì chỉ việc dịch ngược lại là có thể giải được.
Tuy nhiên, giải pháp này lại được xem là không quá an toàn, vì nếu có một người thứ ba biết được thuật toán này 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 vô cùng quan trọng và không phải ai cũng có thể đủ trọng trách để giữ bí mật đó một cách trọn vẹn nhất. Có khả năng cao người đó sẽ rò rỉ ra hoặc có ai đó rảnh rỗi ngồi giải ra thuật toán và nếu may mắn họ giải ra được thì xem như chúng ta đã thua cuộc.
Mã hóa dạng một chiều (hash)
Phương pháp này được dùng để mã hóa những thứ không cần phải dịch lại ra nguyên bản gốc. Ví dụ, khi đang bạn đăng nhập vào muahangdambao.com thì mật khẩu mà bạn nhập vào sẽ được chuyển hoá thành một chuỗi dài các kí tự bằng một thứ được gọi là hash function, tạm dịch là hàm băm.
Chuỗi này sẽ được lưu ở trong cơ sở dữ liệu chứ không lưu mật khẩu thô của bạn nhằm tăng cao tính bảo mật. Lỡ như các hacker có trộm được dữ liệu thì cũng sẽ chỉ thấy những đoạn ký tự lộn xộn không theo 1 trật tự nào như là FIifsygXhYgBh5j47bhvyuuUIbZ chứ sẽ không thể phát hiện ra được password thật của bạn là gì.
Mỗi khi bạn đăng nhập thì hash function sẽ “băm” password thật của bạn thành 1 chuỗi ký tự rồi so sánh nó với những thứ đã có trong cơ sở dữ liệu, nếu khớp thì mới có thể tiến hành đăng nhập tiếp còn không thì sẽ báo lỗi. Chúng ta không cần phải dịch ngược chuỗi ký tự vô nghĩa nói trên ra lại thành password thật để làm gì cả vì đã có hash.
Nói thêm về phần hash function thì nhiệm vụ chính của nó sẽ là chuyển một chuỗi có độ dài bất kỳ thành các chuỗi ký tự có độ dài cố định. Ví dụ như nếu bạn quy định chuỗi ký tự sau khi được “băm” sẽ dài 10 ký tự thì dù đầu vào của bạn có là bao nhiêu chữ đi nữa thì kết quả mã hoá khi nhận được sẽ chỉ luôn là 10 và chỉ 10 ký tự mà thôi.
Đặc điểm nổi bật 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 được băm cũng sẽ là y hệt như nhau. Nếu chỉ thay đổi một chút xíu thôi, có khi chỉ là 1 kí tự nhỏ thì chuỗi kết quả trả về cũng sẽ khác nhau hoàn toàn.
Cũng chính vì thế mà người ta thường dùng hash function để kiểm tra tính toàn vẹn của các dữ liệu. Ví dụ, trước khi bạn gửi một tập tin Word cho người khác thì có thể dùng mã hóa một chiều và tạo ra được các chuỗi sau băm là DFFGRYUBUfyehaudfuefu. Khi người đó tải tập tin này về máy, nếu nó băm và cũng nhận được chuỗi là DFFGRYUBUfyehaudfuefu thì có nghĩa là tập tin của bạn đã không hề bị can thiệp bởi các hacker còn nếu kết quả ra khác thì có nghĩa là trong quá trình truyền tải có thể đã xuất hiện lỗi và làm mất một phần dữ liệu hoặc tệ hơn nữa là có ai đó đã xén bớt hay thêm vào thứ gì đó vào nội dung rồi.
Hiện nay, hai thuật toán hash function được dùng nhiều nhất đó chính là MD5 và SHA. Nếu bạn tải 1 tập tin ở trên mạng về máy thì đôi khi sẽ thấy có dòng chữ MD5 do chính tác giả cung cấp, mục đích là để bạn có thể so sánh file đã tải về với file gốc xem có xuất hiện lỗi gì không.
Mã hóa dạng đối xứng (symmetric key encryption)
Chúng ta hãy cùng bắt đầu đi tìm hiểu về việc bảo mật có sử dụng khóa. Khóa ở đây sẽ được gọi là “key”, nó chính là mấu chốt vô cùng quan trọng để thuật toán có thể nhìn vào và biết đường mã hóa để giải mã các dữ liệu.
Nó cũng giống như cánh cửa nhà của bạn vậy, nếu bạn có chìa khóa thì bạn mới có thể nhanh chóng đi vào trong còn nếu không có khóa thì bạn vẫn có thể phá cửa hay kêu thợ sửa khóa tới giúp nhưng chắc chắn là sẽ tốn rất nhiều thời gian và công sức hơn rồi. Mỗi chìa khóa cho mỗi chiếc ổ khóa trên thế giới này là duy nhất với các đường rãnh không chìa nào giống với chìa nào và key được mã hóa cũng tương tự như vậy.
Ở phương pháp mã hóa đối xứng này thì chìa khóa để mã hóa và giải mã là giống như nhau nên người ta mới gọi nó là đối xứng và trong tiếng Anh có tên là symmetric. Theo một số tài liệu nghiên cứu khác thì mã hóa đối xứng là giải pháp đang được sử dụng phổ biến nhất hiện nay.
Giả sử bạn đang cần mã hóa một tập tin để gửi cho người khác thì quy trình sẽ được diễn ra như sau:
Bạn cần sử dụng một thuật toán mã hóa và khóa của mình để mã hóa file (cách tạo khóa tạm thời chúng ta không cần bàn đến, chủ yếu là dùng các giải thuật có tính ngẫu nhiên).
Bằng 1 cách nào đó, chúng ta sẽ giao cho người cần nhận file một khóa giống với mình, có thể là giao trước hoặc ngay sau khi mã xong hóa tập tin đều được.
Khi người đó nhận được tập tin, bạn hãy dùng khóa này để giải mã ra tập tin gốc và có thể đọc được nó 1 cách bình thường.
Vấn đề chính ở đây đó là bạn phải làm sao để chuyển khóa cho người nhận một cách an toàn nhất. Nếu khóa này bị lộ ra thì bất kỳ ai nắm nó trong tay cũng có thể xài thuật toán nói trên để giải ra mã của tập tin 1 cách dễ dàng, như vậy thì tính bảo mật sẽ không còn phát huy tác dụng nữa.
Ngày nay người ta thường xài password như là 1 dạng chìa khóa và bằng cách này bạn có thể nhanh chóng nhắn cho người nhận cùng 1 đoạn password đó để dùng làm khóa giải mã.
Các thuật toán mã hóa thường thấy hiện nay là DES và AES. Trong đó, AES là phổ biến nhất trên thế giới và nó được dùng để thay thế cho DES vốn đã xuất hiện từ những năm 1977. Hiện nay có rất nhiều cơ quan chính phủ trên thế giới quy định các tài liệu khi được gửi qua mạng phải sử dụng thuật toán AES để đảm bảo tính an toàn.
Thuật toán AES có thể dùng trong nhiều kích thước ô nhớ khác nhau để mã hóa thông tin và dữ liệu, thường thấy nhất sẽ là 128-bit và 256-bit, có một số có thể lên tới 512-bit và 1024-bit. Kích thước của ô nhớ càng lớn thì sẽ càng khó phá mã hơn bù lại việc giải mã và mã hóa cũng cần sử dụng nhiều năng lực xử lý hơn.
Hiện chế độ mã hóa mặc định của hệ điều hành Android 5.0 đang xài là AES 128-bit. Điều này có nghĩa là mỗi khi bạn chuẩn bị ghi các dữ liệu xuống bộ nhớ máy thì hệ điều hành sẽ mã hóa nó hoàn thiện rồi mới tiến hành ghi lại.
Tương tự như vậy, mỗi khi OS chuẩn bị đọc các dữ liệu thì Android sẽ phải giải mã trước rồi mới chuyển nó ra ngoài, khi đó thì hình ảnh mới có thể hiện ra được, các tập tin nhạc mới mở được và tài liệu mới có thể đọc được. Bằng cách này, nếu bạn có lỡ làm mất máy thì kẻ cắp cũng không thể xem trộm các dữ liệu của bạn (giả sử khi đó bạn đã khoá màn hình).
Nếu người lấy cắp có gỡ chip nhớ của bạn ra để đọc thì dữ liệu cũng đã bị mã hóa hết. Tất nhiên, hệ điều hành Android cũng xài key dạng symmetric (được tạo ra dựa vào password của bạn) và key đó còn được băm thêm một lần nữa bằng SHA 256-bit để làm tăng tính an toàn.
Cơ chế mã hóa của cả hai hệ điều hành Windows 10 và OS X có phần tương tự nhau, tức là xài AES và xài key tạo ra bằng password để dùng kết hợp thêm với SHA.
Xem thêm: IT là gì? Nhân viên IT làm gì? Bí quyết giúp nhân viên IT làm việc hiệu quả
Mã hóa dạng bất đối xứng (public key encryption)
Nếu như ở trên thì 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 này, hai khóa lại hoàn toàn khác nhau. Để có thể phân biệt được giữa hai khóa thì người ta sẽ gọi khóa mã hóa là public key còn khóa giải mã sẽ là private key.
Public key đúng như cái tên của nó – mang tính chất “công cộng” và có thể được sử dụng để mã hóa các dữ liệu bởi bất kỳ ai. Tuy nhiên, chỉ những người nào nắm trong tay private key thì mới có khả năng giải mã dữ liệu này để xem mà thôi. Quy trình diễn ra mã hóa bất đối xứng như sau:
Bên nhận tin sẽ tạo ra một cặp public và private key. Người này sẽ giữ lại private key cho riêng mình và cất thật cẩn thận để không ai có thể phát hiện. Trong khi đó, public key thì sẽ được chuyển cho bên gửi (dưới hình thức email, copy vào USB, thẻ nhớ… v.v…) hoặc đăng tải đâu đó lên 1 mạng lưu trữ.
Bên gửi sẽ sử dụng public key để mã hóa các thông tin dữ liệu, sau đó gửi file đã được mã hóa lại cho bên nhận.
Bên nhận lúc này sẽ dùng tới private key đã lưu khi nãy để có thể giải mã dữ liệu và bắt đầu sử dụng. Rất là đơn giản đúng không nào?
Tuy nhiên, có 1 nhược điểm của mã hóa bất đối xứng cần được làm rõ đó là tốc độ giải mã sẽ chậm hơn khá nhiều so với phương thức đối xứng. Tức là chúng ta sẽ phải tốn nhiều năng lực xử lý của CPU hơn cũng như phải chờ lâu hơn, dẫn đến “chi phí” bỏ ra cao hơn. Khoảng thời gian lâu hơn là bao nhiêu thì lại còn tùy vào thuật toán, cách thức mã hóa và key mà bên gửi sử dụng.
Chính vì thế mà hiện tại có rất ít người mã hóa cả một file bằng phương pháp bất đối xứng. Thay vào đó họ sẽ dùng phương pháp bất đối xứng để mã hóa chính key được dùng trong mã hóa đối xứng (hoặc tạo ra key đó bằng cách tổng hợp lại public và private key của bên gửi và bên nhận).
Như đã nói ở trên thì mã hóa đối xứng có nhược điểm là key rất dễ bị lộ và khi bị là coi như xong, vậy thì giờ chúng ta cần mã hóa luôn cái key đó để đảm bảo an toàn và có thể gửi key được thoải mái hơn. Một khi đã giải được mã bất đối xứng để ra key gốc rồi thì bạn có thể tiến hành giải mã thêm lần nữa bằng phương pháp đối xứng để ra được file ban đầu. Một thuật toán mã hóa bất đối xứng thường được dùng hiện nay là RSA.
Hy vọng bài viết này của chúng tôi đã giúp bạn đọc hiểu được mã hóa thông tin trong máy tính là gì cũng như tầm quan trọng của quy trình này. Từ đó tránh được những nguy hiểm do hacker muốn tìm kiếm thông tin cá nhân với ý đồ xấu.