mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-20 05:13:46 -07:00
chg: cleaning out timing.
chg: makefile (piwi)
This commit is contained in:
parent
33936c2155
commit
14d6c4fc34
6 changed files with 15 additions and 35 deletions
|
@ -6,14 +6,16 @@ LDFLAGS =
|
||||||
OBJS = crapto1.o crypto1.o
|
OBJS = crapto1.o crypto1.o
|
||||||
HEADERS = crapto1.h
|
HEADERS = crapto1.h
|
||||||
EXES = mfkey64 mfkey32 mfkey32v2
|
EXES = mfkey64 mfkey32 mfkey32v2
|
||||||
WINEXE = mfkey64.exe mfkey32.exe mfkey32v2.exe
|
WINEXE = $(patsubst %, %.exe, $(EXES))
|
||||||
LIBS =
|
|
||||||
|
|
||||||
all: $(OBJS) $(EXES) $(LIBS)
|
all: $(OBJS) $(EXES)
|
||||||
|
|
||||||
% : %.c $(OBJS)
|
%.o : %.c
|
||||||
$(LD) $(CFLAGS) -o $@ $< $(OBJS) $(LDFLAGS)
|
$(CC) $(CFLAGS) -c -o $@ $<
|
||||||
|
|
||||||
|
% : %.c
|
||||||
|
$(LD) $(CFLAGS) -o $@ $(OBJS) $<
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(OBJS) $(EXES) $(LIBS) $(WINEXE)
|
rm -f $(OBJS) $(EXES) $(WINEXE)
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
#include "crapto1.h"
|
#include "crapto1.h"
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <time.h>
|
|
||||||
|
|
||||||
int main (int argc, char *argv[]) {
|
int main (int argc, char *argv[]) {
|
||||||
struct Crypto1State *s,*t;
|
struct Crypto1State *s,*t;
|
||||||
|
@ -44,9 +43,7 @@ int main (int argc, char *argv[]) {
|
||||||
uint32_t p64 = prng_successor(nt, 64);
|
uint32_t p64 = prng_successor(nt, 64);
|
||||||
printf(" nt': %08x\n", p64);
|
printf(" nt': %08x\n", p64);
|
||||||
printf(" nt'': %08x\n", prng_successor(p64, 32));
|
printf(" nt'': %08x\n", prng_successor(p64, 32));
|
||||||
|
|
||||||
clock_t t1 = clock();
|
|
||||||
|
|
||||||
// Extract the keystream from the messages
|
// Extract the keystream from the messages
|
||||||
printf("\nKeystream used to generate {ar} and {at}:\n");
|
printf("\nKeystream used to generate {ar} and {at}:\n");
|
||||||
ks2 = ar0_enc ^ p64;
|
ks2 = ar0_enc ^ p64;
|
||||||
|
@ -66,7 +63,5 @@ int main (int argc, char *argv[]) {
|
||||||
break;}
|
break;}
|
||||||
}
|
}
|
||||||
free(s);
|
free(s);
|
||||||
t1 = clock() - t1;
|
|
||||||
if ( t1 > 0 ) printf("Time : %.0f ticks \n", (float)t1);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
#include "crapto1.h"
|
#include "crapto1.h"
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <time.h>
|
|
||||||
|
|
||||||
int main (int argc, char *argv[]) {
|
int main (int argc, char *argv[]) {
|
||||||
struct Crypto1State *s,*t;
|
struct Crypto1State *s,*t;
|
||||||
|
@ -50,7 +49,6 @@ int main (int argc, char *argv[]) {
|
||||||
|
|
||||||
printf(" nt': %08x\n", p64);
|
printf(" nt': %08x\n", p64);
|
||||||
printf(" nt'': %08x\n", prng_successor(p64, 32));
|
printf(" nt'': %08x\n", prng_successor(p64, 32));
|
||||||
clock_t t1 = clock();
|
|
||||||
|
|
||||||
// Extract the keystream from the messages
|
// Extract the keystream from the messages
|
||||||
printf("\nKeystream used to generate {ar} and {at}:\n");
|
printf("\nKeystream used to generate {ar} and {at}:\n");
|
||||||
|
@ -58,7 +56,6 @@ int main (int argc, char *argv[]) {
|
||||||
printf(" ks2: %08x\n",ks2);
|
printf(" ks2: %08x\n",ks2);
|
||||||
|
|
||||||
s = lfsr_recovery32(ar0_enc ^ p64, 0);
|
s = lfsr_recovery32(ar0_enc ^ p64, 0);
|
||||||
|
|
||||||
|
|
||||||
for(t = s; t->odd | t->even; ++t) {
|
for(t = s; t->odd | t->even; ++t) {
|
||||||
lfsr_rollback_word(t, 0, 0);
|
lfsr_rollback_word(t, 0, 0);
|
||||||
|
@ -73,7 +70,5 @@ int main (int argc, char *argv[]) {
|
||||||
break;}
|
break;}
|
||||||
}
|
}
|
||||||
free(s);
|
free(s);
|
||||||
t1 = clock() - t1;
|
|
||||||
if ( t1 > 0 ) printf("Time : %.0f ticks \n", (float)t1 );
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,8 +61,6 @@ int main (int argc, char *argv[]) {
|
||||||
printf(" nt': %08x\n",prng_successor(nt, 64));
|
printf(" nt': %08x\n",prng_successor(nt, 64));
|
||||||
printf(" nt'': %08x\n",prng_successor(nt, 96));
|
printf(" nt'': %08x\n",prng_successor(nt, 96));
|
||||||
|
|
||||||
clock_t t1 = clock();
|
|
||||||
|
|
||||||
// Extract the keystream from the messages
|
// Extract the keystream from the messages
|
||||||
printf("\nKeystream used to generate {ar} and {at}:\n");
|
printf("\nKeystream used to generate {ar} and {at}:\n");
|
||||||
ks2 = ar_enc ^ prng_successor(nt, 64);
|
ks2 = ar_enc ^ prng_successor(nt, 64);
|
||||||
|
@ -97,8 +95,5 @@ int main (int argc, char *argv[]) {
|
||||||
crypto1_get_lfsr(revstate, &key);
|
crypto1_get_lfsr(revstate, &key);
|
||||||
printf("\nFound Key: [%012" PRIx64 "]\n\n", key);
|
printf("\nFound Key: [%012" PRIx64 "]\n\n", key);
|
||||||
crypto1_destroy(revstate);
|
crypto1_destroy(revstate);
|
||||||
|
|
||||||
t1 = clock() - t1;
|
|
||||||
if ( t1 > 0 ) printf("Time : %.0f ticks \n", (float)t1);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,12 +6,12 @@ LDFLAGS =
|
||||||
OBJS = crypto1.o crapto1.o
|
OBJS = crypto1.o crapto1.o
|
||||||
HEADERS = crapto1.h
|
HEADERS = crapto1.h
|
||||||
EXES = nonce2key
|
EXES = nonce2key
|
||||||
WINEXES = nonce2key.exe
|
WINEXES = $(patsubst %, %.exe, $(EXES))
|
||||||
|
|
||||||
all: $(OBJS) $(EXES)
|
all: $(OBJS) $(EXES)
|
||||||
|
|
||||||
%.o : %.c
|
%.o : %.c
|
||||||
$(CC) $(CFLAGS) -o $@ $<
|
$(CC) $(CFLAGS) -c -o $@ $<
|
||||||
|
|
||||||
% : %.c
|
% : %.c
|
||||||
$(LD) $(LDFLAGS) -o $@ $(OBJS) $<
|
$(LD) $(LDFLAGS) -o $@ $(OBJS) $<
|
||||||
|
|
|
@ -2,14 +2,12 @@
|
||||||
#define __STDC_FORMAT_MACROS
|
#define __STDC_FORMAT_MACROS
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <time.h>
|
|
||||||
typedef unsigned char byte_t;
|
|
||||||
|
|
||||||
int main(const int argc, const char* argv[]) {
|
int main(const int argc, const char* argv[]) {
|
||||||
struct Crypto1State *state;
|
struct Crypto1State *state;
|
||||||
uint32_t pos, uid, nt, nr, rr, nr_diff, ks1, ks2;
|
uint32_t pos, uid, nt, nr, rr, nr_diff;
|
||||||
byte_t bt, i, ks3x[8], par[8][8];
|
uint8_t bt, i, ks3x[8], par[8][8];
|
||||||
uint64_t key, key_recovered;
|
uint64_t key_recovered;
|
||||||
uint64_t par_info;
|
uint64_t par_info;
|
||||||
uint64_t ks_info;
|
uint64_t ks_info;
|
||||||
nr = rr = 0;
|
nr = rr = 0;
|
||||||
|
@ -49,16 +47,11 @@ int main(const int argc, const char* argv[]) {
|
||||||
printf("%01x|\n", par[i][7]);
|
printf("%01x|\n", par[i][7]);
|
||||||
}
|
}
|
||||||
printf("+----+--------+---+-----+---------------+\n");
|
printf("+----+--------+---+-----+---------------+\n");
|
||||||
|
|
||||||
clock_t t1 = clock();
|
|
||||||
|
|
||||||
state = lfsr_common_prefix(nr,rr,ks3x,par);
|
state = lfsr_common_prefix(nr,rr,ks3x,par);
|
||||||
lfsr_rollback_word(state,uid^nt,0);
|
lfsr_rollback_word(state,uid^nt,0);
|
||||||
crypto1_get_lfsr(state,&key_recovered);
|
crypto1_get_lfsr(state,&key_recovered);
|
||||||
printf("\nkey recovered: %012" PRIx64 "\n\n", key_recovered);
|
printf("\nkey recovered: %012" PRIx64 "\n\n", key_recovered);
|
||||||
crypto1_destroy(state);
|
crypto1_destroy(state);
|
||||||
|
|
||||||
t1 = clock() - t1;
|
|
||||||
if ( t1 > 0 ) printf("Time in nonce2key: %.0f ticks \n", (float)t1);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue