Re: My nonereversible keyrescheduler with full entropy 2^256
- From: jt64@xxxxxxxx
- Date: 16 Jul 2006 21:34:18 -0700
The PRNG below, you would have to adjust it to swap indexed bits from
the password instead of just the actual permutation values as below.
/*PRNG*/
int streambuddy()
{
int savestate[256];
int slot_1,slot_2,slot_3,slot_4;
int i;
for(i=0;i<256;i++)
{
PRNGBLOCK[i] = savestate[i]^reversed[i]^ordered[i];
}
for(i=0;i<256;i++)
{
savestate[i] = savestate[i] ^ ordered[i];
}
/*THE PERMUTATION ARRAY FILLED WITH INTEGER/VALUES FROM 0-255*/
for(i=0;i<256;i++)
{
if(i==256){
/*PERMUTATION WRAPAROUND CASE*/
slot_1 = ordered[0];
slot_2 = ordered[slot_1];
ordered[slot_1] = ordered[i];
ordered[i] = slot_2;
slot_3 = reversed[0];
slot_4 = reversed[slot_3];
reversed[slot_3] = reversed[i];
reversed[i] = slot_4;
} else {
/*OTHERWISE*/
slot_1 = ordered[i+1];
slot_2 = ordered[slot_1];
ordered[slot_1] = ordered[i];
ordered[i] = slot_2;
slot_3 = reversed[i+1];
slot_4 = reversed[slot_3];
reversed[slot_3] = reversed[i];
reversed[i] = slot_4;
}
}
return 0;
}
John E. Hadstate skrev:
<jt64@xxxxxxxx> wrote in message
news:1153014838.634366.66970@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
This password rescheduler makes a password morph into the
full 2^256
states, it is none reversible and to find output
rescheduled key z you
must know t, y and x.
t and y is dependent upon bitpermutations.
x is the savestat created by XOR t and y
so to figure out z you must know all three, or "THE
ORIGINAL PASSWORD"
to create t,y,x and roll ->forward in keyscheduling
scheme.
You can not recreate t,y,x by knowing/solving one
rescheduled key.
The algorithm that creates z is nonereversible you can not
find t,y,x
even if you know z.
[init]->
password^invpassword=savestatepw
permutate password at bitlevel
permutate invpassword at bitlevel
So:
X = T^Y
T = AES_Encrypt(K, T)
Y = AES_Encrypt(K, Y)
[while more passes/byteblocks to reshedule]->
password^invpassword^savestatepw=keysheduled password
password^invpassword=savestatepw
permutate password at bitlevel
permutate invpassword at bitlevel
While more blocks:
R = T^Y^X
X = T^Y
T = AES_Encrypt(K, T)
Y = AES_Encrypt(K, Y)
Questions:
(1) Initial values for T, Y, and K? Where are they?
(2) How does the plaintext get converted to ciphertext?
(3) What's the point of this?
.
- References:
- My nonereversible keyrescheduler with full entropy 2^256
- From: jt64
- Re: My nonereversible keyrescheduler with full entropy 2^256
- From: John E. Hadstate
- My nonereversible keyrescheduler with full entropy 2^256
- Prev by Date: Re: Wikipedia "Cryptography" reaches Featured Article status
- Next by Date: My little something...
- Previous by thread: Re: My nonereversible keyrescheduler with full entropy 2^256
- Next by thread: My nonereversible keyrescheduler with full entropy 2^256
- Index(es):
Relevant Pages
|
|