このページの本文へ

前へ 1 2 3 4 5 6 7 8 9 10 11 次へ

噂のWindows XP最新情報 ~ Microsoft社のWindows Product Activationの内容(下)

2001年07月20日 09時53分更新

文● フーリー・ライセンスト社/著、吉川邦夫/訳

  • この記事をはてなブックマークに追加
  • 本文印刷

任意のインストレーションIDを、いくつかデコードしてみると、他のバイトはランダムなようだが、最上位のバイトだけは、どうやら常に0x00か0x01であることがわかる。その理由は、インストレーションIDの下位16バイトが暗号化されるのに対して、最上位バイトだけは平文(プレインテキスト)のままであるからだ。

インストレーションIDを暗号化するのに用いられている暗号化アルゴリズムは、独自の4ラウンドFeistel暗号である。Feistel暗号に渡される入力バイトのブロックは、サイズが等しい2つのブロックに分割されるので、この方式の暗号は、偶数バイトで構成される入力ブロックに使われるのが典型的である。この場合のそれは、入力の17バイトのうち、下位の16バイトである。この暗号化のラウンド関数は、4バイトのシーケンスを鍵とするSHA-1メッセージダイジェストアルゴリズムである。

ここで、+記号は2つのバイトシーケンスの連結を、^記号はXOR演算を、LとRは1ラウンドにおける入力の左と右の半分(それぞれ8バイト)、L'とR'はそのラウンドの出力の左と右、First-8()はSHA-1メッセージダイジェストの最初の8バイトを返す関数を示すものとすれば、暗号化の1ラウンドは、次のように表される。

L' = R ^ First-8(SHA-1(L + Key))
R' = L

暗号化の結果として、16バイトの平文が得られるが、これは(17バイトめの、暗号化されなかったバイトと合わせて)、以後、次に示すように、リトルエンディアン並びの4個のダブルワードと、それに続く1バイトとして解釈される。

名前 サイズ オフセット
H1 doubleword 0
H2 doubleword 4
P1 doubleword 8
P2 doubleword 12
P3 byte 16

H1とH2は、そのインストレーションIDにリンクされているハードウェア構成(hardware configuration)を指定する。P1とP2、そして残りのP3には、そのインストレーションIDに対応するプロダクトID(Product ID)が入っている。

前へ 1 2 3 4 5 6 7 8 9 10 11 次へ

カテゴリートップへ

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン