カード行ループスクリプトがどのように生成されるか
転載は出典を明記してください
http://blog.csdn.net/pony_maggie/article/details/39780825
作者:ポニー
前提条件:
まずput dataコマンドであることを明確にし、
このようなMACを持たないスクリプトは、以下のように形成されるべきである.
04DA9F790A000000100000XXXXXXXX
MACはどのように計算しますか?
最初のステップは、MACカードのサブキーを得る.
4F343BCB34859BD58FFED96EE0D09BA4
カード発行行マスター鍵MDK−MACが得られる場合、カード番号およびカードシーケンス番号を組み合わせてカードシート鍵に分散する必要があり、具体的なステップは、セキュリティ仕様11.1.4を参照する.ここでは詳しくは述べない.
ステップ2、プロシージャ・キーの計算
ATC値が必要で、左補0は左半分の入力データを得る:
ZL = 0000000000000005
FFFFとリードまたは左に0を補い、右半分の入力データを得る.
ZR = 000000000000FFFA
ツールを分散してプロシージャ・キーを取得するには、次の手順に従います.
2E4D818E14CAE2348FA5E820A8A5E65E
上の図に注意してください.私は仕様に従って左右の8バイトをそれぞれ計算していません.16バイトを合成して一緒に計算することもできますが、ECBモードを選択しなければならないことに注意してください.
ステップ3では、スクリプトコマンドの入力データを整理し、以下のデータを順番に並べて1つのデータブロックDを得る.
——CLA、INS、P 1、P 2、Lc(Lcの長さはMACの長さを含む);ATC(カード発行行スクリプト処理の場合、このATCは要求中のメッセージに送信される);秘密文書を適用する(カード発行行スクリプト処理の場合、この秘密文書は通常ARQC、またはAACであり、要求メッセージに送信される).コマンドデータフィールドの明文または密文データ(存在する場合).
最終的なデータが8の整数倍でなければ、80 00を補う....、入力データを取得するには、次の手順に従います.
04DA9F790A000536C32B02876030D1000000100000800000
ツールでMACを計算する
最終的に発行されたスクリプトコマンドを取得します.
04DA9F790A0000001000009C612F54
http://blog.csdn.net/pony_maggie/article/details/39780825
作者:ポニー
前提条件:
1 1000
2 9F79
3 :4F343BCB34859BD58FFED96EE0D09BA4
4 (tag 9F26):36C32B02876030D1
5 (tag 9F36):0005
まずput dataコマンドであることを明確にし、
このようなMACを持たないスクリプトは、以下のように形成されるべきである.
04DA9F790A000000100000XXXXXXXX
MACはどのように計算しますか?
最初のステップは、MACカードのサブキーを得る.
4F343BCB34859BD58FFED96EE0D09BA4
カード発行行マスター鍵MDK−MACが得られる場合、カード番号およびカードシーケンス番号を組み合わせてカードシート鍵に分散する必要があり、具体的なステップは、セキュリティ仕様11.1.4を参照する.ここでは詳しくは述べない.
ステップ2、プロシージャ・キーの計算
ATC値が必要で、左補0は左半分の入力データを得る:
ZL = 0000000000000005
FFFFとリードまたは左に0を補い、右半分の入力データを得る.
ZR = 000000000000FFFA
ツールを分散してプロシージャ・キーを取得するには、次の手順に従います.
2E4D818E14CAE2348FA5E820A8A5E65E
上の図に注意してください.私は仕様に従って左右の8バイトをそれぞれ計算していません.16バイトを合成して一緒に計算することもできますが、ECBモードを選択しなければならないことに注意してください.
ステップ3では、スクリプトコマンドの入力データを整理し、以下のデータを順番に並べて1つのデータブロックDを得る.
——CLA、INS、P 1、P 2、Lc(Lcの長さはMACの長さを含む);ATC(カード発行行スクリプト処理の場合、このATCは要求中のメッセージに送信される);秘密文書を適用する(カード発行行スクリプト処理の場合、この秘密文書は通常ARQC、またはAACであり、要求メッセージに送信される).コマンドデータフィールドの明文または密文データ(存在する場合).
最終的なデータが8の整数倍でなければ、80 00を補う....、入力データを取得するには、次の手順に従います.
04DA9F790A000536C32B02876030D1000000100000800000
ツールでMACを計算する
最終的に発行されたスクリプトコマンドを取得します.
04DA9F790A0000001000009C612F54