Research, development and trades concerning the powerful Proxmark3 device.
Remember; sharing is caring. Bring something back to the community.
"Learn the tools of the trade the hard way." +Fravia
You are not logged in.
Time changes and with it the technology
Proxmark3 @ discord
Users of this forum, please be aware that information stored on this site is not private.
Pages: 1
Hi guys, continue the good work
I would have a question , has anybody a clue about getting ks4 ,ks5, ... equal to 0
is there a "simple" relation between these authentication values and may be ks2 ks3
in order to get ks4 = 0 (I mean without going as far as searching the key)
uid = 0xa245e4f2
authentication:
7d 57 da ea
dc 6a b5 b1 d0 dd 5c 80
b9 72 3b 58
this gives for ks2 , ks3, and ks4 respectively: b6665447 aaa2aee8 00000000
thank you
Offline
The crypto1 cipher produces contiguously zeros if the complete internal state (LFSR) is zero. To make the LFSR zero just before ks4 is generated you can just set the LFSR to 0 and roll back the linear relation (or start from origin and calculate linear difference while running the cipher forward). There are approximately 2^16 different possibilities for each nt and nr per key to get the LFSR to zero. If you want to be compliant to the original (tag)prng, it could get tricky, since you have less flexibility to choose your values.
Can you explain your problem a bit more in detail? I may can put some code together that actually performs what you need.
Offline
Thanks a lot for your answer
Most of all I would like to program the recovery of the real key in cases like that (ks4=0)
From the example above , lfsr_recovery64(ks2, ks3) .... crypto1_get_lfsr(revstate, &lfsr)
give me the key [7c d2 3a 00 79 f8]
which is wrong because going forward :
state = crypto1_create(my_key) ....
ks2 = crypto1_word(state, 0,0) ---> ks2=0 which is wrong
You said it has to do with nonce_distance() but I don't figure how to program
Thank you
Offline
Pages: 1