Recent Posts

Tổng quan về mật mã và cách mã hóa dữ liệu cơ bản

-

1. Giới thiệu chung

Mật mã đã được con người sử dụng từ lâu đời. Các hình thức mật mã sơ khai đã được tìm thấy từ khoảng bốn nghìn năm trước trong nền văn minh Ai Cập cổ đại. Trải qua hàng nghìn năm lịch sử, mật mã đã được sử dụng rộng rãi ở khắp nơi trên thế giới từ Đông sang Tây để giữ bí mật cho việc giao lưu thông tin trong nhiều lĩnh vực hoạt động giữa con người và các quốc gia, đặc biệt trong các lĩnh vực quân sự, chính trị, ngoại giao. Mật mã trước hết là một loại hoạt động thực tiễn, nội dung chính của nó là để giữ bí mật thông tin.







Quá trình mã hóa và giải mã thông tin

2. Hàm băm (hash functions)

Hàm băm (H) là hàm chuyển đổi một thông điệp có độ dài bất kỳ thành một dãy bit có độ dài cố định. Các hàm băm nhận một chuỗi bit có chiều dài tùy ý (hữu hạn) làm dữ liệu đầu vào và tạo ra một chuỗi bit mới có chiều dài cố định n bit (n > 0), được gọi là giá trị băm hay mã băm.



Các đặc điểm:
  • H có thể được áp dụng trên khối dữ liệu có độ dài bất kỳ
  • H tạo đầu ra có độ dài cố định
  • H(x) tính toán mọi x tương đối dễ dàng, tạo điều kiện cho việc cài 
  • đặt trên phần cứng lẫn phần mềm được thiết thực
  • Với bất kỳ giá trị băm h, không thể tính được x saocho H(x)=h. Hay 
  • H được gọi là hàm một chiều
  • Tính bền xung đột yếu (weak collision resistance): với bất kỳ 
  • giá trị x, không thể tính được y ≠ x sao cho H(y) =H(x).
  • Tính bền xung đột mạnh (strong collision resistance): Không 
  • thể tính được một cặp (x, y) sao cho H(x) = H(y)


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

Là những hệ mật dùng chung một khoá cả trong quá trình mã hoá dữ liệu và giải mã dữ liệu. Do đó khoá phải được giữ bí mật tuyệt đối. Một số thuật toán nổi tiếng trong mã hoá đối xứng là: DES, Triple DES(3DES), RC4, AES…
Symmetric-key cyrptography

Quá trình mã hóa đối xứng

Các khoá giống nhau được sử dụng cho việc mã hoá và giải mã
Thuật toán mã hoá sử dụng khoá đối xứng thường được biết đến là DES (Data Encryption Standard)
Các thuật toán mã hoá đối xứng khác được biết đến như:
-Triple DES, DESX, GDES, RDES - 168 bit key
-RC2, RC4, RC5 - variable length up to 2048 bits
-IDEA - basis of PGP - 128 bit key.


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

Các hệ mật này dùng một khoá để mã hoá sau đó dùng một khoá khác để giải mã, nghĩa là khoá để mã hoá  và giải mã là khác nhau. Các khoá này tạo nên từng cặp chuyển đổi ngược nhau và không có khoá nào có thể suy được từ khoá kia. Khoá dùng để mã hoá có thể công khai nhưng khoá dùng để giải mã phải giữ bí mật. Do đó trong thuật toán này có 2 loại khoá: Khoá để mã hoá được gọi là khóa công khai-Public Key, khoá để giải mã được gọi là khóa bí mật - Private Key. Một số thuật toán mã hoá công khai nổi tiếng: Diffle-Hellman, RSA,… 


Public Key Cryptography

Quá trình mã hóa bất đối xứng

- Các khoá dùng cho mã hoá và giải mã khác nhau nhưng cùng một mẫu và là cặp đôi duy nhất(khoá private/public)
- Khoá private chỉ được biết đến bởi người gửi
- Khoá public được biết đến bởi nhiều người hơn nó được sử dụng bởi những nhóm người đáng tin cậy đã được xác thực
- Thuật toán mã hoá sử dụng khoá bất đối xứng thường được biết đến là RSA (Rivest,Shamir and Adleman 1978)

Related Post:

  • Big Data, Data Mining và Machine Learning: Bên trong những điều ẩn giấuTrong vài năm nay “Big Data” (dữ liệu lớn) và “Data Mining” (Khai thác dữ liệu) đã trở thành những từ ngữ thường được dùng trong nền công nghiệp kĩ thuật. Nó giải thích được tại sao Facebook biết được nên quảng cáo điều gì với bạn, iPhones biết điều chỉnh cách đánh chữ của bạn và rõ ràng hơn nữa là NSA (National Security Agency) biết được bạn có phải một kẻ khủng bố h… Read More
  • AngulaJS End-to-End Testing with Protractor1. End-to-endCác ứng dụng web hiện đại phải tích hợp một loạt các dịch vụ bên ngoài, hệ thống cơ sở dữ liệu và các API. Và làm sao cho phù hợp với sự thay đổi liên tục của các thiết bị và trinh duyệt web.Đây là một lĩnh vực rất khó hoặc thậm chí hoàn toàn không thể test bằng phương pháp truyền thống như Unit test và simple mocks. Một cơ sở dữ liệu có thể fail, một dịc… Read More
  • AngularJS là gì?JavaScript là một trong những ngôn ngữ quan trọng và thông dụng nhất đang sử dụng trên thế giới. Xuất hiện gần 20 năm trước, JavaScript đã không ngừng phát triển. Từ một ngôn ngữ với rất nhiều lỗi, gây phiền phức cho người sử dụng như các popup JavaScript không mong muốn trên các trình duyệt, thì ngày nay ngôn ngữ JavaScript là sự chọn lựa cho lập trình web clien… Read More
  • Unit Test Với AngulaJSThiết lập môi trường Unit TestingKarma - môi trường để chạy Unit Testing(Vai trò của Karma đối với việc Kiểm thử trong AngularJS cũng giống như nền móng và mặt bằng xung quanh của một ngôi nhà)Cài đặt Node.jsCác bạn có thể tham khảo hướng dẫn cài đặt Node.js tại trang hướng dẫn này.Cài đặt KarmaDưới đây tôi chỉ ghi chép lại các bước cài đặt mà tôi đã thực hiện tr… Read More
  • HBase là gì?IntroductionHBase là 1 hệ cơ sở dữ liệu mã nguồn mở được xây dựng dựa trên BigTable được mô tả trong nghiên cứu: “BigTable: A Distributed Storage Systemystem for Structure Data”. HBase cung cấp khả năng lưu trữ dữ liệu lớn lên tới hàng tỷ dòng, hàng triệu cột khác nhau cũng như hàng petabytes dung lượng. HBase là 1 NoSQL điển hình bởi vậy các tables của HBase khô… Read More
  • Hive là gì?1. Tổng quan về HiveApache Hive là 1 kho dữ liệu (data warehouse) hỗ trợ người sử dụng có thể dễ dàng hơn trong việc quản lý và truy vấn đối với các tập dữ liệu lớn được lưu trữ trên các hệ thống lưu trữ phân tán (distributed storage). Hive được xây dựng dựa trên cơ sở của Apache Hadoop, nó cung cấp các tính năng chinh sau:Công cụ cho phép dễ dàng thực hiện tác v… Read More




Klik untuk melihat kode: :) =( :s :D :-D ^:D ^o^ 7:( :Q :p T_T @@, :-a :W *fck* x@