จากบทความที่แล้ว เรื่อง HOTP ในภาพ จะเห็นว่า มี Truncate Function นั้นคือ Function ย่อ output ที่มีขนาดใหญ่ ให้มีขยาดเล็กลง...ในที่นี้คือ 160 bit จาก SHA-1 Function ให้เหลือเพียง (6,7,8) ตัวอักษร ตาม HOTP
และต่อจากนี้ผมจะพูดถึง กระบวนการทำงานใน Truncate Function ใน HTOP
ซึ่งอ้างอิงจากเอกสาร RFC 4226
จากภาพ แสดงการทำงานเริ่มจาก
1.จาก output ของ SHA-1 Algorithm มีขนาด 20 byte array (ช่องละ 8 bit)
2.หา Offset เพื่อหาตำแหน่งในการคัดข้อมูล
3.หา offset จากดูที่ Array[19] ค่าข้อมูลคือ 0xAD
4.จากนั้นเลือก 4 bit หลัง จาก 0xAD จะได้ค่า 0xD
5.แปลง 0xD เป็นเลขฐาน 10 ดังนั้น 0xD=13
6.จะได้ offset=13 นั้นคือตำแหน่งเริ่มต้นในการเลือกข้อมูล
7.เลือกข้อมูล จาก array ช่องที่ 13 ถึง 16 (เลือกมา 4 ช่อง) จะได้ 0xD3FA10FE
8.นำ 0xD3FA10FE แปลงเป็นเลขฐาน 10 จะได้ 1,039,798,526
9.หา HOTP ได้จากนำ 1,039,798,526 modulo 10 ^ digit (digit คือ จำนวน Output)
10.HOTP ที่ได้ คือ 1,039,798,526 modulo 10 ^ 8 =39798526 **ในที่นี้คือต้องการ output 8 ตัว
เสร็จสินกระบวนการ Truncate Function คับ