Xích băm Lamport (Lamport hash chain) là kỹ thuật dùng để sinh ra chuỗi các giá trị OTP dùng-một-lần: xuất phát từ một giá trị hạt giống (seed) x0 (một chuỗi ký tự ASCII), người ta tính liên tiếp
xi=SHA-256(xi−1),i=1,2,…,n
trong đó phép băm được áp dụng lên chuỗi byte (không phải chuỗi hex) của xi−1: cụ thể x0 là chuỗi seed mã hoá UTF-8, còn x1,x2,… là các chuỗi 32 byte (kết quả thô của SHA-256, không qua bước chuyển sang hex ở giữa các bước). Giá trị cuối cùng xn thường được máy chủ lưu lại làm "chốt xác thực" (anchor) công khai cho việc xác thực OTP về sau.
Cho seed và số nguyên n≥1, hãy tính xn và in ra dưới dạng chuỗi hex (chữ thường).
Ví dụ: với seed = hello, n=1, ta có x1=SHA-256("hello")= 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824.
Gồm 2 dòng:
Một dòng duy nhất: chuỗi hex chữ thường gồm đúng 64 ký tự, biểu diễn xn.
Ví dụ:
Đầu vào:
a
1
Đầu ra:
ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb
Đầu vào:
Hello
10
Đầu ra:
44f6720b3d9f0c25411bce1914f838fa5aa6535fbb215eea92a2d897e6e727d6
Đang tải editor...