手上有一個未激活的農行金e順k令
開機后要求輸入12位的激活碼,隨機輸入多次,均告失敗
花了點時間猜想k令的工作模式:
已知:
k令無法聯網,出廠后除了輸入激活碼的機會外,無法獲取任何信息
k令內部有時鍾
k令功率極小,無法完成復雜運算
對工作原理的猜測:
每個k令均有唯一編號M
銀行使用函數f(M,u)得到12位激活碼N(u是一個隨機數)
k令會檢測M與N是否匹配,如果不匹配,則拒絕開機
激活后,k令會基於M和N生成隨機數種子R
每次支付的時候,k令會調用內部時鍾,得到當前時間T,支付金額為P
然后基於函數f(R,T,P),得到一個六位偽隨機數Z
銀行知道M,N,可以用同樣的手段計算出R,然后得到Z,從而完成鑒權
推論:
激活碼無法在另外一台k令上使用
k令的內部時鍾需要保持准確,起碼在出廠三年內誤差不能超過一分鍾
也許銀行會計算出±1分鍾內的所有Z值,用來減少用戶輸入錯誤的可能性
