From 8eea1dc2645de1d9067a3c17b4c2144832a95f4d Mon Sep 17 00:00:00 2001 From: Pavel Zhovner Date: Wed, 9 Mar 2016 03:32:39 +0300 Subject: [PATCH] Optional decryption of communication using keystream --- tools/mfkey/example_trace.txt | 64 ++++++++++++++++++++++++++++++++++ tools/mfkey/mfkey32 | Bin 0 -> 22044 bytes tools/mfkey/mfkey64 | Bin 0 -> 22132 bytes tools/mfkey/mfkey64.c | 4 +-- 4 files changed, 66 insertions(+), 2 deletions(-) create mode 100755 tools/mfkey/mfkey32 create mode 100755 tools/mfkey/mfkey64 diff --git a/tools/mfkey/example_trace.txt b/tools/mfkey/example_trace.txt index f2587fcd..73eb75ad 100644 --- a/tools/mfkey/example_trace.txt +++ b/tools/mfkey/example_trace.txt @@ -13,3 +13,67 @@ ./mfkey64 9c599b32 82a4166c a1e458ce 6eea41e0 5cadf439 + + +### Communication decryption + + +RDR 26 +TAG 04 00 +RDR 93 20 +TAG 14 57 9f 69 b5 +RDR 93 70 14 57 9f 69 b5 2e 51 +TAG 08 b6 dd +RDR 60 14 50 2d +TAG ce 84 42 61 +RDR f8 04 9c cb 05 25 c8 4f +TAG 94 31 cc 40 +RDR 70 93 df 99 +TAG 99 72 42 8c e2 e8 52 3f 45 6b 99 c8 31 e7 69 dc ed 09 +RDR 8c a6 82 7b +TAG ab 79 7f d3 69 e8 b9 3a 86 77 6b 40 da e3 ef 68 6e fd +RDR c3 c3 81 ba +TAG 49 e2 c9 de f4 86 8d 17 77 67 0e 58 4c 27 23 02 86 f4 +RDR fb dc d7 c1 +TAG 4a bd 96 4b 07 d3 56 3a a0 66 ed 0a 2e ac 7f 63 12 bf +RDR 9f 91 49 ea + + +./mfkey64 14579f69 ce844261 f8049ccb 0525c84f 9431cc40 7093df99 9972428ce2e8523f456b99c831e769dced09 8ca6827b ab797fd369e8b93a86776b40dae3ef686efd c3c381ba 49e2c9def4868d1777670e584c27230286f4 fbdcd7c1 4abd964b07d3563aa066ed0a2eac7f6312bf 9f9149ea + +Recovering key for: + uid: 14579f69 + nt: ce844261 + {nr}: f8049ccb + {ar}: 0525c84f + {at}: 9431cc40 +{enc0}: 7093df99 +{enc1}: 9972428ce2e8523f456b99c831e769dced09 +{enc2}: 8ca6827b +{enc3}: ab797fd369e8b93a86776b40dae3ef686efd +{enc4}: c3c381ba +{enc5}: 49e2c9def4868d1777670e584c27230286f4 +{enc6}: fbdcd7c1 +{enc7}: 4abd964b07d3563aa066ed0a2eac7f6312bf +{enc8}: 9f9149ea + +LFSR succesors of the tag challenge: + nt': 76d4468d + nt'': d5f3c476 + +Keystream used to generate {ar} and {at}: + ks2: 73f18ec2 + ks3: 41c20836 + +Decrypted communication: +{dec0}: 3014a7fe +{dec1}: c26935cfdb95c4b4a27a84b8217ae9e48217 +{dec2}: 30152eef +{dec3}: 493167c536c30f8e220b09675687067d4b31 +{dec4}: 3016b5dd +{dec5}: 493167c536c30f8e220b09675687067d4b31 +{dec6}: 30173ccc +{dec7}: 0000000000007e178869000000000000c4f2 +{dec8}: 61148834 + +Found Key: [091e639cb715] \ No newline at end of file diff --git a/tools/mfkey/mfkey32 b/tools/mfkey/mfkey32 new file mode 100755 index 0000000000000000000000000000000000000000..0f44ffab87e6f8848f540068ab7e9ae6da6488ba GIT binary patch literal 22044 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 literal 0 HcmV?d00001 diff --git a/tools/mfkey/mfkey64 b/tools/mfkey/mfkey64 new file mode 100755 index 0000000000000000000000000000000000000000..abe0b4aec22f4ee05776797c947040cd3dc8063c GIT binary patch literal 22132 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 <{nr}> <{ar}> <{at}> <[enc]> [enc...]\n\n", argv[0]); + printf(" syntax: %s <{nr}> <{ar}> <{at}> [enc] [enc...]\n\n", argv[0]); return 1; } @@ -107,4 +107,4 @@ int main (int argc, char *argv[]) { crypto1_destroy(revstate); return 0; -} \ No newline at end of file +} -- 2.39.5