TOTP: Time-Based One-Time Password Algorithm
HMAC-SHA1 の代わりに HMAC-SHA-256, HMAC-SHA-512 を使用しても良い
Unix time を知っていなければならない
HOTP を使用する
同じ time-step を共有する
default 30 sec
それぞれにユニークな secret を提供する
TOTP = HOTP(K, T)
初期時間 T0 として T = (Current unix time - T0) / time-step
secret は無作為か、暗号的に強固な疑似乱数で乱数により seed されたものを使う
secret は HMAC の同じ長さにする