OBJS = crapto1.o crypto1.o
HEADERS = crapto1.h
EXES = mfkey64 mfkey32 mfkey32v2
-WINEXE = mfkey64.exe mfkey32.exe mfkey32v2.exe
-LIBS =
+WINEXE = $(patsubst %, %.exe, $(EXES))
-all: $(OBJS) $(EXES) $(LIBS)
+all: $(OBJS) $(EXES)
-% : %.c $(OBJS)
- $(LD) $(CFLAGS) -o $@ $< $(OBJS) $(LDFLAGS)
+%.o : %.c
+ $(CC) $(CFLAGS) -c -o $@ $<
+
+% : %.c
+ $(LD) $(CFLAGS) -o $@ $(OBJS) $<
clean:
- rm -f $(OBJS) $(EXES) $(LIBS) $(WINEXE)
+ rm -f $(OBJS) $(EXES) $(WINEXE)
#include "crapto1.h"
#include <stdio.h>
#include <stdlib.h>
-#include <time.h>
int main (int argc, char *argv[]) {
struct Crypto1State *s,*t;
uint32_t p64 = prng_successor(nt, 64);
printf(" nt': %08x\n", p64);
printf(" nt'': %08x\n", prng_successor(p64, 32));
-
- clock_t t1 = clock();
-
+
// Extract the keystream from the messages
printf("\nKeystream used to generate {ar} and {at}:\n");
ks2 = ar0_enc ^ p64;
break;}
}
free(s);
- t1 = clock() - t1;
- if ( t1 > 0 ) printf("Time : %.0f ticks \n", (float)t1);
return 0;
}
#include "crapto1.h"
#include <stdio.h>
#include <stdlib.h>
-#include <time.h>
int main (int argc, char *argv[]) {
struct Crypto1State *s,*t;
printf(" nt': %08x\n", p64);
printf(" nt'': %08x\n", prng_successor(p64, 32));
- clock_t t1 = clock();
// Extract the keystream from the messages
printf("\nKeystream used to generate {ar} and {at}:\n");
printf(" ks2: %08x\n",ks2);
s = lfsr_recovery32(ar0_enc ^ p64, 0);
-
for(t = s; t->odd | t->even; ++t) {
lfsr_rollback_word(t, 0, 0);
break;}
}
free(s);
- t1 = clock() - t1;
- if ( t1 > 0 ) printf("Time : %.0f ticks \n", (float)t1 );
return 0;
}
printf(" nt': %08x\n",prng_successor(nt, 64));
printf(" nt'': %08x\n",prng_successor(nt, 96));
- clock_t t1 = clock();
-
// Extract the keystream from the messages
printf("\nKeystream used to generate {ar} and {at}:\n");
ks2 = ar_enc ^ prng_successor(nt, 64);
crypto1_get_lfsr(revstate, &key);
printf("\nFound Key: [%012" PRIx64 "]\n\n", key);
crypto1_destroy(revstate);
-
- t1 = clock() - t1;
- if ( t1 > 0 ) printf("Time : %.0f ticks \n", (float)t1);
return 0;
}
OBJS = crypto1.o crapto1.o
HEADERS = crapto1.h
EXES = nonce2key
-WINEXES = nonce2key.exe
+WINEXES = $(patsubst %, %.exe, $(EXES))
all: $(OBJS) $(EXES)
%.o : %.c
- $(CC) $(CFLAGS) -o $@ $<
+ $(CC) $(CFLAGS) -c -o $@ $<
% : %.c
$(LD) $(LDFLAGS) -o $@ $(OBJS) $<
#define __STDC_FORMAT_MACROS
#include <inttypes.h>
#include <stdio.h>
-#include <time.h>
-typedef unsigned char byte_t;
int main(const int argc, const char* argv[]) {
struct Crypto1State *state;
- uint32_t pos, uid, nt, nr, rr, nr_diff, ks1, ks2;
- byte_t bt, i, ks3x[8], par[8][8];
- uint64_t key, key_recovered;
+ uint32_t pos, uid, nt, nr, rr, nr_diff;
+ uint8_t bt, i, ks3x[8], par[8][8];
+ uint64_t key_recovered;
uint64_t par_info;
uint64_t ks_info;
nr = rr = 0;
printf("%01x|\n", par[i][7]);
}
printf("+----+--------+---+-----+---------------+\n");
-
- clock_t t1 = clock();
-
+
state = lfsr_common_prefix(nr,rr,ks3x,par);
lfsr_rollback_word(state,uid^nt,0);
crypto1_get_lfsr(state,&key_recovered);
printf("\nkey recovered: %012" PRIx64 "\n\n", key_recovered);
crypto1_destroy(state);
-
- t1 = clock() - t1;
- if ( t1 > 0 ) printf("Time in nonce2key: %.0f ticks \n", (float)t1);
return 0;
}