ヴァーヘフアルゴリズム
ヴァーヘフアルゴリズムは3つの表を使って実装できる: 積表d・逆元表inv・そして置換表pである。
最初の表dは、二面体群D5の積に基づくものであり、単にその群のケイリー表(英語版)である。この群は可換ではない、つまりある値jとkに対して、d(j,k) ≠ d(k, j)であることに注意せよ。
逆元表invは数字に対して積における逆元、つまりd(j, inv(j)) = 0を満す数を表す。
置換表pは各数字に対して、数値の中における位置を元に、置換を適用する。これは実際には単一置換(1 5 8 9 4 2 7 0)(3 6)を繰り返し適用したものである。つまり、p(i+j,n) = p(i, p(j,n))である(参考:
ヴァーヘフチェックサムの計算は次のように実行される:
数値の各桁から配列nを作成する。桁は右から左へ取る(最も右の桁がn0,となる)。
チェックサムcを0に初期化する。
配列nの各添字i(0から始まる)に対して、cをd(c, p(i mod 8, ni))で置き換える。
元の数値はc = 0となるとき、かつそのときのみ妥当である。
チェックデジットを生成するには、0を末尾に追加して上記の計算をする。すると正しいチェックデジットはinv(c)となる。