トップページ > DTV > 2014年09月13日 > GNy8O3MF

書き込み順位&時間帯一覧

4 位/213 ID中時間01234567891011121314151617181920212223Total
書き込み数0000001000001021100000006



使用した名前一覧書き込んだスレッド一覧
名無しさん@編集中
カスカ 懐石・研究 38枚目

書き込みレス一覧

カスカ 懐石・研究 38枚目
586 :名無しさん@編集中[sage]:2014/09/13(土) 06:42:08.39 ID:GNy8O3MF
>>562
カードIDだけじゃなくて、少なくともEMMサイズとプロトコル番号(当然0x0X)くらいはまともな値を入れないとダメだと思う
それらの値は復号のために必要な情報なんだから

あと、SCardTransmit()がエラーになったらリトライしてるけど、カードの処理時間測定してるんだから、
エラーでのリトライなんてノイズにしかならないんじゃないか?
カスカ 懐石・研究 38枚目
592 :名無しさん@編集中[sage]:2014/09/13(土) 12:19:59.44 ID:GNy8O3MF
T422CA23にカードリーダはSCR3310-NTTComに対して、
1.>>562を手直ししてプライオリティREALTIMEで実行(EMMの全体長はとりあえず17、ボディ長は必然的に10、プロトコルは当然0)
2.Kmはわかってるので、上のプログラムで投げたのと同じそれぞれのデータに対して、ヤキソバソースでTransform()+GenerateMAC()の
 IsOddParity()が真になる回数カウント
3.比較
てのをやってみた(OSはwin8.1pro x64)
結果の最初の方だけ貼るとこんな感じ
----------------------------------------
// 実機
00 00 00 00 00 00 00 01 00 : 41878
00 00 00 00 00 00 00 02 00 : 41872
00 00 00 00 00 00 00 04 00 : 41841
00 00 00 00 00 00 00 08 00 : 41873
00 00 00 00 00 00 00 10 00 : 41872
00 00 00 00 00 00 00 20 00 : 41876
00 00 00 00 00 00 00 40 00 : 41869
00 00 00 00 00 00 00 80 00 : 41866
// エミュ
00 00 00 00 00 00 00 01 00 : 24
00 00 00 00 00 00 00 02 00 : 19
00 00 00 00 00 00 00 04 00 : 22
00 00 00 00 00 00 00 08 00 : 20
00 00 00 00 00 00 00 10 00 : 27
00 00 00 00 00 00 00 20 00 : 23
00 00 00 00 00 00 00 40 00 : 20
00 00 00 00 00 00 00 80 00 : 15
----------------------------------------
こりゃダメだね
カスカ 懐石・研究 38枚目
593 :名無しさん@編集中[sage]:2014/09/13(土) 14:13:59.87 ID:GNy8O3MF
と思ったけど、どっか間違ってたらしい
長さ設定とかのミスを排除できるようにコード変更してもう一回実行したらこうなった
----------------------------------------
// 実機
00 00 00 00 00 00 00 01 / 31 : 144949
00 00 00 00 00 00 00 02 / 31 : 144767
00 00 00 00 00 00 00 04 / 31 : 144759
00 00 00 00 00 00 00 08 / 31 : 144673
00 00 00 00 00 00 00 10 / 31 : 144951
00 00 00 00 00 00 00 20 / 31 : 144768
00 00 00 00 00 00 00 40 / 31 : 144717
00 00 00 00 00 00 00 80 / 31 : 144548
// エミュ
00 00 00 00 00 00 00 01 / 31 : 47
00 00 00 00 00 00 00 02 / 31 : 44
00 00 00 00 00 00 00 04 / 31 : 44
00 00 00 00 00 00 00 08 / 31 : 42
00 00 00 00 00 00 00 10 / 31 : 47
00 00 00 00 00 00 00 20 / 31 : 44
00 00 00 00 00 00 00 40 / 31 : 43
00 00 00 00 00 00 00 80 / 31 : 40
----------------------------------------
31は暗号部の長さで、表示している頭の8バイト以外は全部0で埋めてる
傾向はそろってるね
行けるかも・・・
カスカ 懐石・研究 38枚目
594 :名無しさん@編集中[sage]:2014/09/13(土) 14:16:59.03 ID:GNy8O3MF
ついでに、EMMの最低長チェックはTにも入ってるのかなと思って調べてみたのがこっち
----------------------------------------
00 00 00 00 00 00 00 00 / 7 : 53947
00 00 00 00 00 00 00 01 / 8 : 55122
00 00 00 00 00 00 00 01 / 9 : 92307
00 00 00 00 00 00 00 01 / 10 : 93513
00 00 00 00 00 00 00 01 / 16 : 101559
00 00 00 00 00 00 00 01 / 17 : 114581
00 00 00 00 00 00 00 01 / 18 : 115620
----------------------------------------
暗号部の長さ9がEMM全体長17のやつで、カードIDからMACまでを含めようとするとこれが最低長になるはず
ちょうど8 -> 9で仮に復号処理に入ってた場合ProcessBlockCipher()の実行回数が増える長さなので
判断付きづらいんだけど、16 -> 17の時はこんなに増加してないので、やっぱり全体長16以下は
復号処理には入らずに弾かれてる感じ
カスカ 懐石・研究 38枚目
596 :名無しさん@編集中[sage]:2014/09/13(土) 15:15:49.69 ID:GNy8O3MF

ttp://pastebin.com/vPVFwDU7
エミュの方は全部貼るのは微妙なのでmain()だけ
カスカ 懐石・研究 38枚目
599 :名無しさん@編集中[sage]:2014/09/13(土) 16:38:44.25 ID:GNy8O3MF
ああそうか、8バイト周期で同じ事やってるんだから、同じ8バイトのブロックを並べとけば
毎回同じ引数でBlockCipher()が呼ばれる事になるんだね
後は「どのラウンドが速かったのか」か・・・


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。