Hôm nay mình vào lại diễn đàn của Liveclub thì hình như các bạn bận quá không ai post bài cả. Mình xin góp vui 1 chủ đề nho nhỏ đó là mã hóa dữ liệu trên đường truyền.
Dữ liệu lưu thông trên mạng luôn phải đảm bảo được 3 yêu cầu chính:
1.Confident : Bí mật
2. Authenticity: Xác thực nguồn gốc.
3. Integrity: toàn vẹn dữ liệu.
Để đảm bảo được 3 điều kiện đó, thì yêu cầu thông điệp truyền trên mạng phải được chứng thực nguồn gốc và bảo đảm bí mật. Do đó người ta mới mã hóa dữ liệu trước khi gởi.
Nền tảng của PKI (Public Key Infrastructure)
Public key infrastructure, viết tắt (PKI)
là một cơ chế để cho một bên thứ 3 (thường là nhà cung cấp chứng thực
số) cung cấp và xác thực định danh các bên tham gia vào quá trình trao
đổi thông tin.
Khái niệm hạ tầng khóa công khai (PKI) thường được dùng để chỉ toàn bộ hệ thống nhà cung cấp chứng thực số (CA) cùng các cơ chế liên quan đồng thời với toàn bộ việc sử dụng các thuật toán mã khóa công khai trong trai đổi thông tin.
Quá trình mã hóa: M + K1-->C
C + K2 -->M
M: Message
K1, K2 là tập hợp của 2 khái niệm: Cryptography algorythm và Key.
C: Cipher
* Mã đối xứng:
Một trong những phương pháp mã hóa thông thường là Mã đối xứng, tức là:
M + K = C
C - K = M
Vậy, nghĩa là mã đối xứng là phương pháp mã và giải mã là nghịch nhau. Mã để khóa và mã để giải giống y hệt nhau.
Để thực hiện công việc này, mỗi lần gởi thông điệp người gởi phải phát sinh 1 key để mã hóa, do đó lượng khóa rất nhiều và khả năng sẽ không ai nhớ hết.
* Mã bất đối xứng: hay còn gọi là mã 1 chiều.
M + K = C
C - K = X.??
Bằng các công thức toán học (??!!) Người ta chứng minh được rằng có cô số cặp (P, Q) là số nguyên tố vô cùng lớn thỏa mãn điều kiện:
M + P = C Mã hóa bằng P
C + Q = M Giải mã bằng Q
P: Public key
Q: Private key
Như vậy, cặp số (P,Q) lớn cở nào: - Địa chỉ IP 32 bit, ta có được hơn 4 tỉ địa chỉ.
- Với IPv6 128bit, ta có 2 lũy thừa 128 địa chỉ.
- Đối với phương pháp mã hóa này, key ngắn nhất người ta thường dùng trong mã hóa có 512 bit
Tính bất đối xứng trong mã hoá thể hiện ở chỗ khoá cá nhân có thể giải
mã dữ liệu được mã hoá bằng khoá công khai (trong cùng một cặp khoá duy
nhất mà một cá nhân sở hữu), nhưng khoá công khai không có khả năng
giải mã lại thông tin, kể cả những thông tin do chính khoá công khai đó
đã mã hoá
Ví dụ: A có cặp khóa (Qa, Pa).
B có cặp khóa (Qb, Pb)
C có cặp khóa (Qc, Pc).
Giả sử A gởi thông điệp cho B: M + Pb -->C
Để giải mã được M thì người có Qb mới giải mã được. Chỉ có B mới có Qb, như vậy, văn bản M đã được mã hóa bí mật mặc dù Pa, Pb, Pc đều đã công khai.
Mình đã cố gắng tóm tắt những vấn đề mình biết về nền tảng của PKI. Phần sau nếu được mình sẽ trình bày tiếp về Chữ ký số