Câu hỏi: CRY303c - Phần 5: Hàm băm mật mã và bảo vệ toàn vẹn
27 câu trắc nghiệm kèm lời giải của môn CRY303c - Mật mã ứng dụng, xếp theo thứ tự nhập vào ngân hàng. Trang 2/2 — câu 21–27.
Danh sách câu hỏi
27/27 câuHết danh sách
21A hash chain is a successive application of a cryptographic hash function h to a string x.2 lựa chọn
ATrue
BFalse
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "True". Chuỗi băm (hash chain) là việc áp dụng một hàm băm mật mã h nhiều lần liên tiếp lên một chuỗi x ban đầu: h(x), h(h(x)), h(h(h(x))), tổng quát h^n(x) là băm x đúng n lần. Vì hàm băm một chiều, biết h^n(x) thì tính tiến lên h^(n+1)(x) rất dễ, nhưng không lùi được về h^(n−1)(x). Tính chất này được dùng trong sơ đồ mật khẩu dùng một lần của Lamport: máy chủ lưu h^n(x), người dùng lần lượt gửi h^(n−1)(x), h^(n−2)(x)…, máy chủ chỉ cần băm thêm một lần để kiểm, và kẻ nghe lén một mật khẩu cũ không suy ra được mật khẩu kế tiếp. Phát biểu mô tả đúng định nghĩa, nên "False" bị loại.
22Hash Functions take an input whose size can vary and generate size output based on input size.2 lựa chọn
ATrue
BFalse
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "False". Hàm băm (hash function) nhận đầu vào có độ dài tuỳ ý nhưng luôn sinh đầu ra có độ dài cố định, không phụ thuộc kích thước đầu vào: SHA-256 cho 256 bit dù băm một chữ cái hay một tệp vài gigabyte, MD5 luôn cho 128 bit, SHA-1 luôn cho 160 bit. Chính độ dài cố định này làm giá trị băm dùng được như dấu vân tay ngắn gọn của dữ liệu để kiểm toàn vẹn, ký số hay xây chuỗi băm, và cũng là lý do va chạm chắc chắn tồn tại (vô số đầu vào dồn vào 2^n giá trị), nên mới cần kháng va chạm. Phát biểu nói đầu ra thay đổi theo kích thước đầu vào nên sai; chọn "True" là nhầm hàm băm với phép nén hay mã hoá, vốn cho đầu ra dài theo đầu vào.
A1
B2
C3
D4
E5
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "3". Một hệ mã xác thực thông điệp (MAC) gồm ba thuật toán: sinh khoá (key generation) chọn khoá bí mật K; sinh thẻ (tag generation hay MAC) tính t = MAC(K, M) từ khoá và thông điệp; và kiểm tra (verification) nhận K, M, t rồi trả về chấp nhận hoặc từ chối, thường bằng cách tính lại thẻ và so sánh. "1" chỉ tính hàm tạo thẻ, bỏ qua sinh khoá và kiểm tra. "2" quên thuật toán sinh khoá, vốn quyết định khoá phải ngẫu nhiên và đủ dài. "4" và "5" thêm các thuật toán không có trong định nghĩa, ví dụ mã hoá hay giải mã, vốn không thuộc MAC vì MAC không giữ bí mật nội dung.
ATrue
BFalse
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "False". Chuỗi khối (blockchain) là một cấu trúc dữ liệu và cơ chế sổ cái phân tán: các khối giao dịch được nối với nhau bằng giá trị băm của khối trước, nên sửa một khối cũ sẽ làm đứt cả chuỗi phía sau, và các nút trong mạng đồng thuận về trạng thái sổ cái. Tiền mã hoá (cryptocurrency) như Bitcoin là một ứng dụng xây trên chuỗi khối, dùng chữ ký số để chứng minh quyền sở hữu và chuỗi khối để ghi lại giao dịch, chống chi tiêu hai lần. Chuỗi khối còn dùng cho việc khác như truy xuất nguồn gốc hàng hoá, hợp đồng thông minh hay lưu chứng thực, không cần có đồng tiền nào. Một bên là công nghệ nền, một bên là ứng dụng của nó, nên hai thứ không giống nhau và "True" bị loại.
AEasy to produce
BDepends on the message being signed
CDifficult to forge
DUses information unique to the sender
EVerifiable by a trusted third party
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Verifiable by a trusted third party". Các yêu cầu của chữ ký số là: chữ ký phụ thuộc vào thông điệp được ký, dùng thông tin riêng của người gửi để chống giả mạo và chối bỏ, dễ tạo, dễ nhận ra và kiểm tra, và không thể giả mạo trong thời gian khả thi. Việc kiểm tra được thực hiện bởi bất kỳ ai có khoá công khai của người ký, không cần một bên thứ ba tin cậy đứng giữa; sơ đồ cần bên trọng tài là dạng chữ ký có trọng tài, không phải yêu cầu chung. "Easy to produce" là yêu cầu để người ký dùng được trong thực tế. "Depends on the message being signed" giúp chữ ký không bị bóc ra gắn sang thông điệp khác. "Difficult to forge" là yêu cầu an toàn cốt lõi. "Uses information unique to the sender" là khoá riêng, đảm bảo chỉ người gửi tạo được chữ ký và không chối bỏ được.
ATrue
BFalse
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "True". Một sơ đồ chữ ký số (digital signature scheme) thường gồm ba thuật toán. Thứ nhất là sinh khoá (key generation), tạo cặp khoá riêng để ký và khoá công khai để kiểm. Thứ hai là ký (signing), nhận thông điệp, thường là giá trị băm của nó, cùng khoá riêng và cho ra chữ ký. Thứ ba là kiểm tra (verification), nhận thông điệp, chữ ký và khoá công khai rồi trả về chấp nhận hay từ chối. Ví dụ với RSA, chữ ký là S = H(M)^d mod n và người kiểm tính S^e mod n rồi so với H(M). Yêu cầu an toàn là không ai thiếu khoá riêng tạo được chữ ký hợp lệ cho thông điệp mới. Câu hỏi bỏ lửng sau dấu hai chấm nhưng mệnh đề ba thuật toán là đúng, nên "False" bị loại.
AWeak collision resistance
BOne-way property
CPre-image resistance
DStrong collision resistance
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Pre-image resistance". Định nghĩa trong câu là: cho một phần tử h trong miền giá trị của hàm băm, không thể tìm được, bằng tính toán khả thi, đầu vào x nào có H(x) = h; nghĩa là hàm khó đảo ngược. Tên chuẩn của tính chất này là kháng tiền ảnh (pre-image resistance), vì x là tiền ảnh của h. Cần nói thẳng: "One-way property" (tính một chiều) là tên gọi khác của cùng tính chất đó, nên xét về nội dung nó không sai; nhưng câu chỉ cho chọn một, và định nghĩa nêu theo ngôn ngữ miền giá trị và tiền ảnh nên tên chuẩn được chọn là kháng tiền ảnh. "Weak collision resistance" là kháng tiền ảnh thứ hai: cho trước một đầu vào x, không tìm được y ≠ x cùng giá trị băm; điểm xuất phát là một đầu vào chứ không phải một giá trị băm. "Strong collision resistance" đòi không tìm được bất kỳ cặp đầu vào nào trùng băm, không gắn với giá trị cho trước nào.