Re: My nonereversible keyrescheduler with full entropy 2^256



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?

.



Relevant Pages