21:21, 10/01/2026
Mã hóa đối xứng và bất đối xứng: Ứng dụng và Khác biệt (ZK Core - HW1) - Studocu
1. Mã hóa đối xứng và bất đối xứng: Sự khác biệt và ứng dụng thực tế
Mã hóa đối xứng (Symmetric Encryption) sử dụng cùng một khóa để mã hóa và
giải mã dữ liệu. Điều này có nghĩa là cả hai bên phải cùng biết trước một khóa bí
mật chung.
Ưu điểm: Nhanh, hiệu quả, thích hợp với dữ liệu lớn (ví dụ: tệp văn bản,
video,...).
Nhược điểm: Việc phân phối khóa an toàn rất khó khăn khi hai bên chưa từng gặp
nhau.
Trong slide chương 1, AES-GCM là ví dụ điển hình cho mã hóa đối xứng, dùng để
mã hóa nhanh và có tích hợp kiểm tra toàn vẹn qua thẻ tag. Tuy nhiên, việc chia sẻ
khóa giữa hai bên (key hand-off) là vấn đề lớn trên internet.
Mã hóa bất đối xứng (Asymmetric Encryption) sử dụng hai khóa: một khóa
công khai để mã hóa và một khóa riêng để giải mã. Ví dụ: ECIES (Elliptic Curve
Integrated Encryption Scheme).
Ưu điểm: Không cần chia sẻ khóa bí mật trước. Khóa công khai có thể được
truyền công khai qua mạng.
Nhược điểm: Chậm hơn mã hóa đối xứng, thường chỉ dùng để mã hóa
thông tin nhỏ hoặc chia sẻ khóa phiên.
Ứng dụng điển hình là ECIES – một người có thể gửi một đoạn dữ liệu nhỏ (như
biên lai) đến người khác chỉ cần biết khóa công khai, mà không cần trao đổi trước.
2. Giao thức trao đổi khóa: Diffie-Hellman tăng cường bảo mật trong ứng
dụng nhắn tin như thế nào?
Diffie–Hellman (DH) là giao thức giúp hai bên chưa từng gặp nhau tạo ra một
khóa bí mật chung chỉ bằng cách trao đổi thông tin công khai. DH không dùng để
mã hóa trực tiếp mà để tạo ra khóa dùng cho AES.
Cả hai bên tạo khóa riêng của mình (a, b), rồi công khai A = g^a, B = g^b.
Mỗi bên sau đó tính ra cùng một khóa chung: K = g^{ab}.
Kẻ nghe lén chỉ thấy A và B nhưng không thể tính ra K nếu không biết a
hoặc b.
21:21, 10/01/2026
Mã hóa đối xứng và bất đối xứng: Ứng dụng và Khác biệt (ZK Core - HW1) - Studocu
Trong ứng dụng nhắn tin, DH được dùng để sinh ra dùng với AES-khóa phiên
GCM cho mỗi cuộc hội thoại. Mỗi lần trao đổi, khóa mới được tạo, giúp chống lại
nghe lén và tấn công lặp lại
3. Hàm băm: Vì sao SHA-256 và Poseidon được xem là tốt cho việc đảm bảo
toàn vẹn dữ liệu?
SHA-256 là một hàm băm mạnh, chống va chạm tốt, tức là không dễ để hai dữ liệu
khác nhau cho cùng một giá trị băm. Ngoài ra, nó còn có tính "hiệu ứng lở tuyết"
(avalanche effect): chỉ thay đổi một ký tự nhỏ cũng khiến giá trị băm thay đổi hoàn
toàn.
Ví dụ trong chương 3: "gift123" và "Gift123" cho hai kết quả băm hoàn toàn khác
nhau.
Poseidon là hàm băm thân thiện với hệ thống bằng chứng không kiến thức (zero-
knowledge proofs), được thiết kế để tối ưu hóa tính toán trong môi trường số học
hữu hạn (finite field), đặc biệt trong zk-SNARKs hoặc zk-Rollups.
Trong các ứng dụng ZK, SHA-256 cần quá nhiều ràng buộc logic để tính
toán.
Poseidon giảm thiểu chi phí tính toán, giúp xây dựng hệ thống zk hiệu quả
hơn.
4. Cây Merkle: Làm sao xác minh dữ liệu trong cơ sở dữ liệu lớn một cách
hiệu quả?
Cây Merkle là cấu trúc dữ liệu giúp mã hóa nhiều bản ghi thành một "gốc Merkle"
duy nhất bằng cách băm đệ quy. Mỗi nút trong cây là kết quả băm của hai nút con.
Thay vì phải gửi toàn bộ 2000 bản ghi, ta chỉ cần gửi log (n) giá trị băm để
chứng minh một dòng dữ liệu cụ thể đã nằm trong tập dữ liệu.
Trong chương 3, với 2000 dòng, chỉ cần 11 giá trị băm (siblings) để chứng
minh một dòng bất kỳ.
Ứng dụng trong thực tế:
Blockchain (như Bitcoin) sử dụng Merkle Tree để mã hóa danh sách giao
dịch.
21:21, 10/01/2026
Mã hóa đối xứng và bất đối xứng: Ứng dụng và Khác biệt (ZK Core - HW1) - Studocu
Git sử dụng để xác minh file.
Certificate transparency dùng để xác minh chứng chỉ số.
Merkle tree giúp tiết kiệm băng thông và giảm độ phức tạp tính toán, đảm bảo khả
năng mở rộng.
5. Cam kết mật mã: Pedersen Commitments trong blockchain để giữ quyền
riêng tư giao dịch
Pedersen Commitment là một kỹ thuật giúp “cam kết” một giá trị mà không tiết
lộ giá trị đó, nhưng vẫn đảm bảo rằng cam kết không thể thay đổi sau khi đã tạo.
Công thức: C(m, r) = g^m * h^r
Trong đó:
m là giá trị cần cam kết (ví dụ: số tiền),
r là số ngẫu nhiên dùng để che giấu,
g và h là hai điểm sinh độc lập trong một nhóm sinh học số học.
Tính chất:
Hiding: Không thể đoán được m từ C.
Binding: Không thể thay đổi m sau khi cam kết.
Tổng hợp: Có thể cộng các cam kết lại để tạo cam kết tổng, mà không cần
biết từng giá trị riêng lẻ.
Ứng dụng trong chương 4:
Mỗi khoản tặng ẩn danh được cam kết lại bằng Pedersen Commitment.
Các cam kết này trở thành các lá trong cây Merkle.
Cây Merkle được băm (Poseidon), rồi ký số bằng Ed25519 để tạo ledger.
Có thể chứng minh tổng số tiền bằng cách mở một số cam kết mà không tiết
lộ từng phần tử.
Điều này giúp xây dựng hệ thống kế toán minh bạch, ẩn từng giao dịch riêng lẻ
nhưng vẫn chứng minh được tổng.
21:21, 10/01/2026
Mã hóa đối xứng và bất đối xứng: Ứng dụng và Khác biệt (ZK Core - HW1) - Studocu
6. Chữ ký số: Cách xác minh tính xác thực của một tài liệu được ký
Chữ ký số là một phương pháp xác thực bằng mật mã bất đối xứng:
Người ký dùng để ký vào giá trị băm của tài liệu.khóa riêng tư
Người kiểm tra dùng để xác minh rằng chữ ký đúng với tài khóa công khai
liệu.
Tính năng:
Đảm bảo tính : nếu dữ liệu bị sửa, chữ ký sẽ không còn hợp lệ.toàn vẹn
Đảm bảo tính : chỉ người có khóa riêng mới tạo được chữ ký.xác thực
Tính : người ký không thể phủ nhận việc đã ký.không chối bỏ
Trong chương 2, chữ ký ECDSA được dùng để ký vào Merkle root, giúp đảm bảo
toàn bộ dữ liệu phía sau là chính xác, không bị thay đổi kể từ lúc ký.
21:21, 10/01/2026
Mã hóa đối xứng và bất đối xứng: Ứng dụng và Khác biệt (ZK Core - HW1) - Studocu

Preview text:

21:21, 10/01/2026
Mã hóa đối xứng và bất đối xứng: Ứng dụng và Khác biệt (ZK Core - HW1) - Studocu
1. Mã hóa đối xứng và bất đối xứng: Sự khác biệt và ứng dụng thực tế
Mã hóa đối xứng (Symmetric Encryption) sử dụng cùng một khóa để mã hóa và
giải mã dữ liệu. Điều này có nghĩa là cả hai bên phải cùng biết trước một khóa bí mật chung.
Ưu điểm: Nhanh, hiệu quả, thích hợp với dữ liệu lớn (ví dụ: tệp văn bản, video,...).
Nhược điểm: Việc phân phối khóa an toàn rất khó khăn khi hai bên chưa từng gặp nhau.
Trong slide chương 1, AES-GCM là ví dụ điển hình cho mã hóa đối xứng, dùng để
mã hóa nhanh và có tích hợp kiểm tra toàn vẹn qua thẻ tag. Tuy nhiên, việc chia sẻ
khóa giữa hai bên (key hand-off) là vấn đề lớn trên internet.
Mã hóa bất đối xứng (Asymmetric Encryption) sử dụng hai khóa: một khóa
công khai để mã hóa và một khóa riêng để giải mã. Ví dụ: ECIES (Elliptic Curve Integrated Encryption Scheme).
Ưu điểm: Không cần chia sẻ khóa bí mật trước. Khóa công khai có thể được
truyền công khai qua mạng.
Nhược điểm: Chậm hơn mã hóa đối xứng, thường chỉ dùng để mã hóa
thông tin nhỏ hoặc chia sẻ khóa phiên.
Ứng dụng điển hình là ECIES – một người có thể gửi một đoạn dữ liệu nhỏ (như
biên lai) đến người khác chỉ cần biết khóa công khai, mà không cần trao đổi trước.
2. Giao thức trao đổi khóa: Diffie-Hellman tăng cường bảo mật trong ứng
dụng nhắn tin như thế nào?

Diffie–Hellman (DH) là giao thức giúp hai bên chưa từng gặp nhau tạo ra một
khóa bí mật chung chỉ bằng cách trao đổi thông tin công khai. DH không dùng để
mã hóa trực tiếp mà để tạo ra khóa dùng cho AES.
Cả hai bên tạo khóa riêng của mình (a, b), rồi công khai A = g^a, B = g^b.
Mỗi bên sau đó tính ra cùng một khóa chung: K = g^{ab}.
Kẻ nghe lén chỉ thấy A và B nhưng không thể tính ra K nếu không biết a hoặc b. 21:21, 10/01/2026
Mã hóa đối xứng và bất đối xứng: Ứng dụng và Khác biệt (ZK Core - HW1) - Studocu
Trong ứng dụng nhắn tin, DH được dùng để sinh ra khóa phiên dùng với AES-
GCM cho mỗi cuộc hội thoại. Mỗi lần trao đổi, khóa mới được tạo, giúp chống lại
nghe lén và tấn công lặp lại
3. Hàm băm: Vì sao SHA-256 và Poseidon được xem là tốt cho việc đảm bảo toàn vẹn dữ liệu?
SHA-256 là một hàm băm mạnh, chống va chạm tốt, tức là không dễ để hai dữ liệu
khác nhau cho cùng một giá trị băm. Ngoài ra, nó còn có tính "hiệu ứng lở tuyết"
(avalanche effect): chỉ thay đổi một ký tự nhỏ cũng khiến giá trị băm thay đổi hoàn toàn.
Ví dụ trong chương 3: "gift123" và "Gift123" cho hai kết quả băm hoàn toàn khác nhau.
Poseidon là hàm băm thân thiện với hệ thống bằng chứng không kiến thức (zero-
knowledge proofs), được thiết kế để tối ưu hóa tính toán trong môi trường số học
hữu hạn (finite field), đặc biệt trong zk-SNARKs hoặc zk-Rollups.
Trong các ứng dụng ZK, SHA-256 cần quá nhiều ràng buộc logic để tính toán.
Poseidon giảm thiểu chi phí tính toán, giúp xây dựng hệ thống zk hiệu quả hơn.
4. Cây Merkle: Làm sao xác minh dữ liệu trong cơ sở dữ liệu lớn một cách hiệu quả?
Cây Merkle là cấu trúc dữ liệu giúp mã hóa nhiều bản ghi thành một "gốc Merkle"
duy nhất bằng cách băm đệ quy. Mỗi nút trong cây là kết quả băm của hai nút con.
Thay vì phải gửi toàn bộ 2000 bản ghi, ta chỉ cần gửi log (n)
giá trị băm để
chứng minh một dòng dữ liệu cụ thể đã nằm trong tập dữ liệu.
Trong chương 3, với 2000 dòng, chỉ cần 11 giá trị băm (siblings) để chứng minh một dòng bất kỳ.
Ứng dụng trong thực tế:
Blockchain (như Bitcoin) sử dụng Merkle Tree để mã hóa danh sách giao dịch. 21:21, 10/01/2026
Mã hóa đối xứng và bất đối xứng: Ứng dụng và Khác biệt (ZK Core - HW1) - Studocu
Git sử dụng để xác minh file.
Certificate transparency dùng để xác minh chứng chỉ số.
Merkle tree giúp tiết kiệm băng thông và giảm độ phức tạp tính toán, đảm bảo khả năng mở rộng.
5. Cam kết mật mã: Pedersen Commitments trong blockchain để giữ quyền riêng tư giao dịch
Pedersen Commitment là một kỹ thuật giúp “cam kết” một giá trị mà không tiết
lộ giá trị đó, nhưng vẫn đảm bảo rằng cam kết không thể thay đổi sau khi đã tạo.
Công thức: C(m, r) = g^m * h^r Trong đó:
m là giá trị cần cam kết (ví dụ: số tiền),
r là số ngẫu nhiên dùng để che giấu,
g và h là hai điểm sinh độc lập trong một nhóm sinh học số học. Tính chất:
Hiding: Không thể đoán được m từ C.
Binding: Không thể thay đổi m sau khi cam kết.
Tổng hợp: Có thể cộng các cam kết lại để tạo cam kết tổng, mà không cần
biết từng giá trị riêng lẻ. Ứng dụng trong chương 4:
Mỗi khoản tặng ẩn danh được cam kết lại bằng Pedersen Commitment.
Các cam kết này trở thành các lá trong cây Merkle.
Cây Merkle được băm (Poseidon), rồi ký số bằng Ed25519 để tạo ledger.
Có thể chứng minh tổng số tiền bằng cách mở một số cam kết mà không tiết lộ từng phần tử.
Điều này giúp xây dựng hệ thống kế toán minh bạch, ẩn từng giao dịch riêng lẻ
nhưng vẫn chứng minh được tổng
. 21:21, 10/01/2026
Mã hóa đối xứng và bất đối xứng: Ứng dụng và Khác biệt (ZK Core - HW1) - Studocu
6. Chữ ký số: Cách xác minh tính xác thực của một tài liệu được ký
Chữ ký số là một phương pháp xác thực bằng mật mã bất đối xứng:
Người ký dùng khóa riêng tư để ký vào giá trị băm của tài liệu.
Người kiểm tra dùng khóa công khai để xác minh rằng chữ ký đúng với tài liệu. Tính năng:
Đảm bảo tính toàn vẹn: nếu dữ liệu bị sửa, chữ ký sẽ không còn hợp lệ.
Đảm bảo tính xác thực: chỉ người có khóa riêng mới tạo được chữ ký.
Tính không chối bỏ: người ký không thể phủ nhận việc đã ký.
Trong chương 2, chữ ký ECDSA được dùng để ký vào Merkle root, giúp đảm bảo
toàn bộ dữ liệu phía sau là chính xác, không bị thay đổi kể từ lúc ký. 21:21, 10/01/2026
Mã hóa đối xứng và bất đối xứng: Ứng dụng và Khác biệt (ZK Core - HW1) - Studocu