Ngày tải lên :
09/10/2012, 15:14
... Các thuật toán mã hoá
Trong bài viết này tôi giới thiệu với các bạn sự khác nhau giữa các thuật toán mã hoá. Phần đầu
tiên giới thiệu ba phương thức mã hoá: hashing, symmetric, asymmetric. Trong các bài viết tiếp
theo tôi sẽ lần lượt trình bày về nhiều vấn đề và cách sử dụng các phương thức mã hoá đó.
Thông tin quan trọng
Các thuật toán mã hoá được chia làm ba dạng cơ bản đó là: Hashing (hàm băm), mật mã symmetric (đối xứng), và mật
mã asymmetric (bất đối xứng). Hashing được giới thiệu như một dạng ID số. Hai phương thức tiếp theo là symmetric và
asymmetric là quá trình mã hoá và giải mã. Bạn muốn hiểu về chúng trước tiên hãy xem các khái niệm và ví dụ dưới đây.
1. Hashing – Hàm Băm
Hashing là một phương thức mật mã nhưng nó không phải là một thuật toán mã hoá. Đúng như vậy, hashing chỉ sử dụng
một chứng chỉ số duy nhất được biết đến với tên như "hash value – giá trị hash", "hash – băm", Message Authentication
Code (MAC), fingerprint – vân tay, hay một đoạn message. Dữ liệu đầu vào của bạn có thể là một file, một ổ đĩa một quá
trình truyền thong tin trên mạng, hay một bức thư điện tử. Thông số hash value được sử dụng để phát hiện khi có sự thay
đổi của tài nguyên. Nói cách khác, hashing sử dụng nó để phát hiện ra dữ liệu có toàn vẹn trong quá trình lưu trữ hay
trong khi truyền hay không.
Ví dụ, thông số hash value được tính toán để so sánh với thông số hash value được tạo ra trước đó một tuần. Nếu hai
thông số giống nhau thì dữ liệu chưa có sự thay đổi. Nếu hai thông số có sự khác nhau, thì dữ liệu đã bị thay đổi. Trong
hình dưới đây thể hiện cơ bản về hash hay thong số MAC.
Thông số MAC value được tính toán bởi người gửi (sender) và người nhận (receive) với cùng một thuật toán.
Không như các phương thức mật mã khác, chúng sẽ làm thay đổi dữ liệu thành một dạng mật mã, quá trình hashing sử
dụng một thông số hash value và không thay đổi dữ liệu ban đầu. Bởi vì các tính năng đặc biệt, hashing có thể sử dụng
để bảo vệ và kiểm tra tính toàn vẹn của dữ liệu. Nó cũng có khả năng sử dụng để kiểm tra khi có một tiến trình copy được
... thực hiện và đảm bảo tính chính xác của dữ liệu khi chúng được copy.
Ví dụ, khi một ổ cứng được tạo ra một bản copy, một quá trình hash được thực hiện trên ổ đĩa trước khi quá trình nhân đôi
được thực hiện. Nếu hai thong số hash của ổ cứng mới được tạo ra và thong số hash của ổ đĩa ban đầu thì quá trình nhân
đôi dữ liệu được thực hiện chính xác và đảm bảo dữ liệu không có sự thay đổi mất mát trong quá trình nhân bản. Việc
hashing sử dụng để đảm bảo dữ liệu được nguyên bản giúp dữ liệu lưu ở dạng kỹ thuật số sẽ luôn dữ được nguyên bản
sau vô số lần copy – và điều này không thể thực hiện khi lưu dữ liệu các dạng khác – ví như bạn lưu thong tin âm thanh
bằng băng từ sẽ bị biến dạng sau nhiều lần copy.
Ví dụ, Message Digest 5 (MD5) là một thuật toán hash với 128bit hash. Điều này có nghĩa không có vấn đề với dữ liệu
đầu vào và dữ liệu đầu ra sau quá trình hash bởi nó luôn luôn thêm vào 128 bits. Sức mạnh của quá trình hashing là nó
được thực hiện một chiều và không thể có phương thức nào có thể thực hiện ngược lại được để converts thông số hash
thành dữ liệu ban đầu. Nếu một vài người có được các thông số hash của bạn, họ không thể lấy được dữ liệu ban đầu. Tuy
nhiên đó không phải là phương thức mật mã không thể tấn công. Hashing có thể bị tấn cong bởi các phương thức đảo
ngược hay birthday attack. Phương thức tấn công bình thường sử dụng đó là sử dụng các công cụ passwordcracking. Hầu
hết các hệ thống lưu trữ passwords trong dữ liệu accounts và được hashed (băm). Hashs không thể thực hiện ngược lại,
bởi đó là một giải pháp bảo mật, có nghĩa không có công cụ nào có thể chuyển ngược lại một password được hash thành
một password nguyên bản chưa được hash. Tuy nhiên một thuật toán nào cũng có những bất cập riêng, bằng việc sử
dụng các phần mềm, password crackers chúng có thể phát hiện ra đoạn mã them vào dữ liệu ban đầu và chỉ cần xoá
đoạn hash value đi là có thể truy cập bình thường. Dữ liệu Account thường không được mã hoá, và dữ liệu password
thường được hash do đó hầu hết các công cụ crack password chỉ có thể xoá password đã được đặt cho user đó mà không
thể view password đó.
Thuật toán hashing thường được sử dụng:
Secure Hash Algorithm (SHA1) với 160bit hash value
Message Digest 5 (MD5) với —128bit hash value
Message Digest 4 (MD4) với —128bit hash value
Message Digest 2 (MD2) với —128bit hash value
2. Symmetric – Mã hoá đối xứng
Mật mã đối xứng cũng được gọi là mật mã private key hay mật mã secret key. Nó sử dụng một chìa khoá duy nhất để mã
hoá và giải mã dữ liệu (được thể hiện dưới hình dưới). Khi một mật mã đối sứng được sử dụng cho files trên một ổ cứng,
user thực hiện mã hoá với một secret key. Khi một giao tiếp được sử dụng mã hoá đối xứng, hai giao tiếp sẽ chia sẻ nhau
cùng một mật mã để mã hoá và giải mã gói tin.
Ví dụ chúng ta thấy trong một file như bạn đặt password cho một file *.rar ai muốn mở phải có password (secret key). Khi
giao tiếp giữa máy chủ RADIUS Server và RADIUS Client sẽ có chung một secret key mà bạn phải thiết lập.
Ví dụ trong Internet đó là giao thức SSL sử dụng mật mã đối xứng. Trong thực tế mật mã đối xứng được dung để đảm bảo
tính tối mật của dữ liệu. confidentiality
Một hệ thống mã hoá đối xứng
... thực hiện và đảm bảo tính chính xác của dữ liệu khi chúng được copy.
Ví dụ, khi một ổ cứng được tạo ra một bản copy, một quá trình hash được thực hiện trên ổ đĩa trước khi quá trình nhân đôi
được thực hiện. Nếu hai thong số hash của ổ cứng mới được tạo ra và thong số hash của ổ đĩa ban đầu thì quá trình nhân
đôi dữ liệu được thực hiện chính xác và đảm bảo dữ liệu không có sự thay đổi mất mát trong quá trình nhân bản. Việc
hashing sử dụng để đảm bảo dữ liệu được nguyên bản giúp dữ liệu lưu ở dạng kỹ thuật số sẽ luôn dữ được nguyên bản
sau vô số lần copy – và điều này không thể thực hiện khi lưu dữ liệu các dạng khác – ví như bạn lưu thong tin âm thanh
bằng băng từ sẽ bị biến dạng sau nhiều lần copy.
Ví dụ, Message Digest 5 (MD5) là một thuật toán hash với 128bit hash. Điều này có nghĩa không có vấn đề với dữ liệu
đầu vào và dữ liệu đầu ra sau quá trình hash bởi nó luôn luôn thêm vào 128 bits. Sức mạnh của quá trình hashing là nó
được thực hiện một chiều và không thể có phương thức nào có thể thực hiện ngược lại được để converts thông số hash
thành dữ liệu ban đầu. Nếu một vài người có được các thông số hash của bạn, họ không thể lấy được dữ liệu ban đầu. Tuy
nhiên đó không phải là phương thức mật mã không thể tấn công. Hashing có thể bị tấn cong bởi các phương thức đảo
ngược hay birthday attack. Phương thức tấn công bình thường sử dụng đó là sử dụng các công cụ passwordcracking. Hầu
hết các hệ thống lưu trữ passwords trong dữ liệu accounts và được hashed (băm). Hashs không thể thực hiện ngược lại,
bởi đó là một giải pháp bảo mật, có nghĩa không có công cụ nào có thể chuyển ngược lại một password được hash thành
một password nguyên bản chưa được hash. Tuy nhiên một thuật toán nào cũng có những bất cập riêng, bằng việc sử
dụng các phần mềm, password crackers chúng có thể phát hiện ra đoạn mã them vào dữ liệu ban đầu và chỉ cần xoá
đoạn hash value đi là có thể truy cập bình thường. Dữ liệu Account thường không được mã hoá, và dữ liệu password
thường được hash do đó hầu hết các công cụ crack password chỉ có thể xoá password đã được đặt cho user đó mà không
thể view password đó.
Thuật toán hashing thường được sử dụng:
Secure Hash Algorithm (SHA1) với 160bit hash value
Message Digest 5 (MD5) với —128bit hash value
Message Digest 4 (MD4) với —128bit hash value
Message Digest 2 (MD2) với —128bit hash value
2. Symmetric – Mã hoá đối xứng
Mật mã đối xứng cũng được gọi là mật mã private key hay mật mã secret key. Nó sử dụng một chìa khoá duy nhất để mã
hoá và giải mã dữ liệu (được thể hiện dưới hình dưới). Khi một mật mã đối sứng được sử dụng cho files trên một ổ cứng,
user thực hiện mã hoá với một secret key. Khi một giao tiếp được sử dụng mã hoá đối xứng, hai giao tiếp sẽ chia sẻ nhau
cùng một mật mã để mã hoá và giải mã gói tin.
Ví dụ chúng ta thấy trong một file như bạn đặt password cho một file *.rar ai muốn mở phải có password (secret key). Khi
giao tiếp giữa máy chủ RADIUS Server và RADIUS Client sẽ có chung một secret key mà bạn phải thiết lập.
Ví dụ trong Internet đó là giao thức SSL sử dụng mật mã đối xứng. Trong thực tế mật mã đối xứng được dung để đảm bảo
tính tối mật của dữ liệu. confidentiality
Một hệ thống mã hoá đối xứng
...