Created
February 19, 2018 18:31
-
-
Save rgov/bdf6dcd9c976d6fcbe7d81e190c6ac92 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def unrolled(key, nonce): | |
h = [0]*16 | |
h[0] = 25*key[10] + 10*key[11] + 8*key[12] + 13*key[13] + 19*key[14] + 16*key[15] + 13*key[1] + 13*key[2] + 10*key[3] + 13*key[4] + 10*key[5] + 20*key[6] + 16*key[7] + 16*key[8] + 4*key[9] + 10*nonce[10] + 13*nonce[11] + 13*nonce[12] + 12*nonce[13] + 8*nonce[14] + 0*nonce[15] + 5*nonce[1] + 5*nonce[2] + 0*nonce[3] + 5*nonce[4] + 18*nonce[5] + 10*nonce[6] + 12*nonce[7] + 7*nonce[8] + 12*nonce[9] + 23 | |
h[1] = 19*key[10] + 20*key[11] + 11*key[12] + 4*key[13] + 16*key[14] + 11*key[15] + 5*key[1] + 5*key[2] + 14*key[3] + 5*key[4] + 0*key[5] + 0*key[6] + 5*key[7] + 25*key[8] + 7*key[9] + 12*nonce[10] + 16*nonce[11] + 22*nonce[12] + 14*nonce[13] + 13*nonce[14] + 5*nonce[15] + 18*nonce[1] + 18*nonce[2] + 0*nonce[3] + 18*nonce[4] + 24*nonce[5] + 22*nonce[6] + 2*nonce[7] + 20*nonce[8] + 2*nonce[9] + 11 | |
h[2] = 11*key[10] + 21*key[11] + 12*key[12] + 18*key[13] + 11*key[14] + 20*key[15] + 25*key[1] + 25*key[2] + 10*key[3] + 25*key[4] + 24*key[5] + 22*key[6] + 4*key[7] + key[8] + 11*key[9] + nonce[10] + 9*nonce[11] + 15*nonce[12] + 10*nonce[13] + 23*nonce[14] + 24*nonce[15] + 9*nonce[1] + 9*nonce[2] + 18*nonce[3] + 9*nonce[4] + 20*nonce[5] + 14*nonce[6] + 14*nonce[7] + 3*nonce[8] + 0*nonce[9] + 3 | |
h[3] = 19*key[10] + 21*key[11] + 0*key[12] + 11*key[13] + 7*key[14] + 18*key[15] + 15*key[1] + 15*key[2] + 10*key[3] + 15*key[4] + 16*key[5] + 6*key[6] + 2*key[7] + 7*key[8] + 12*key[9] + 9*nonce[10] + 12*nonce[11] + nonce[12] + 24*nonce[13] + 4*nonce[14] + 21*nonce[15] + 16*nonce[1] + 16*nonce[2] + 4*nonce[3] + 16*nonce[4] + 2*nonce[5] + 4*nonce[6] + 22*nonce[7] + 6*nonce[8] + 7*nonce[9] + 11 | |
h[4] = 19*key[10] + 25*key[11] + 24*key[12] + 18*key[13] + 4*key[14] + 21*key[15] + key[1] + key[2] + 2*key[3] + key[4] + 0*key[5] + 0*key[6] + 25*key[7] + 24*key[8] + 8*key[9] + 0*nonce[10] + 17*nonce[11] + 16*nonce[12] + 25*nonce[13] + 0*nonce[14] + 8*nonce[15] + 6*nonce[1] + 6*nonce[2] + 4*nonce[3] + 6*nonce[4] + 4*nonce[5] + 8*nonce[6] + 0*nonce[7] + 13*nonce[8] + 9*nonce[9] + 11 | |
h[5] = 6*key[10] + key[11] + 15*key[12] + 9*key[13] + 23*key[14] + 23*key[15] + 8*key[1] + 8*key[2] + 10*key[3] + 8*key[4] + 20*key[5] + 14*key[6] + 6*key[7] + 13*key[8] + 6*key[9] + 23*nonce[10] + 21*nonce[11] + 3*nonce[12] + 12*nonce[13] + 14*nonce[14] + 11*nonce[15] + 24*nonce[1] + 24*nonce[2] + 8*nonce[3] + 24*nonce[4] + 12*nonce[5] + 24*nonce[6] + 13*nonce[7] + 22*nonce[8] + 8*nonce[9] + 4 | |
h[6] = 6*key[10] + 21*key[11] + 9*key[12] + 15*key[13] + 0*key[14] + 10*key[15] + 20*key[1] + 20*key[2] + 0*key[3] + 20*key[4] + 8*key[5] + 16*key[6] + 19*key[7] + 6*key[8] + 21*key[9] + 8*nonce[10] + 5*nonce[11] + 6*nonce[12] + 15*nonce[13] + 11*nonce[14] + 5*nonce[15] + 21*nonce[1] + 21*nonce[2] + 6*nonce[3] + 21*nonce[4] + 12*nonce[5] + 24*nonce[6] + 13*nonce[7] + 6*nonce[8] + 3*nonce[9] + 3 | |
h[7] = 6*key[10] + 20*key[11] + 20*key[12] + 8*key[13] + 9*key[14] + 3*key[15] + 10*key[1] + 10*key[2] + 4*key[3] + 10*key[4] + 18*key[5] + 10*key[6] + 22*key[7] + 24*key[8] + 16*key[9] + 11*nonce[10] + 9*nonce[11] + nonce[12] + 5*nonce[13] + 20*nonce[14] + 15*nonce[15] + 23*nonce[1] + 23*nonce[2] + 2*nonce[3] + 23*nonce[4] + 8*nonce[5] + 16*nonce[6] + 19*nonce[7] + 20*nonce[8] + 24*nonce[9] + 3 | |
h[8] = 19*key[10] + 25*key[11] + 24*key[12] + 18*key[13] + 4*key[14] + 21*key[15] + key[1] + key[2] + 2*key[3] + key[4] + 0*key[5] + 0*key[6] + 25*key[7] + 24*key[8] + 8*key[9] + 0*nonce[10] + 17*nonce[11] + 16*nonce[12] + 25*nonce[13] + 0*nonce[14] + 8*nonce[15] + 6*nonce[1] + 6*nonce[2] + 4*nonce[3] + 6*nonce[4] + 4*nonce[5] + 8*nonce[6] + 0*nonce[7] + 13*nonce[8] + 9*nonce[9] + 11 | |
h[9] = key[10] + 7*key[11] + 7*key[12] + 0*key[13] + 8*key[14] + 9*key[15] + 22*key[1] + 22*key[2] + 10*key[3] + 22*key[4] + 6*key[5] + 12*key[6] + 18*key[7] + 19*key[8] + 17*key[9] + 13*nonce[10] + 19*nonce[11] + 25*nonce[12] + 19*nonce[13] + 19*nonce[14] + 2*nonce[15] + 20*nonce[1] + 20*nonce[2] + 24*nonce[3] + 20*nonce[4] + 6*nonce[5] + 12*nonce[6] + 17*nonce[7] + 4*nonce[8] + 17*nonce[9] + 3 | |
h[10] = 0*key[10] + 23*key[11] + 23*key[12] + 9*key[13] + 18*key[14] + 22*key[15] + 19*key[1] + 19*key[2] + 6*key[3] + 19*key[4] + 20*key[5] + 14*key[6] + 9*key[7] + 12*key[8] + 18*key[9] + 24*nonce[10] + 16*nonce[11] + 21*nonce[12] + 2*nonce[13] + 20*nonce[14] + 12*nonce[15] + 18*nonce[1] + 18*nonce[2] + 6*nonce[3] + 18*nonce[4] + 22*nonce[5] + 18*nonce[6] + 9*nonce[7] + 3*nonce[8] + 18*nonce[9] | |
h[11] = 12*key[10] + 15*key[11] + 3*key[12] + 23*key[13] + 9*key[14] + 13*key[15] + 4*key[1] + 4*key[2] + 4*key[3] + 4*key[4] + 0*key[5] + 0*key[6] + 15*key[7] + 4*key[8] + 11*key[9] + 19*nonce[10] + 14*nonce[11] + 7*nonce[12] + 20*nonce[13] + 5*nonce[14] + 20*nonce[15] + 18*nonce[1] + 18*nonce[2] + 8*nonce[3] + 18*nonce[4] + 20*nonce[5] + 14*nonce[6] + 6*nonce[7] + 0*nonce[8] + nonce[9] + 6 | |
h[12] = 8*key[10] + 10*key[11] + 19*key[12] + 5*key[13] + 10*key[14] + 20*key[15] + 10*key[1] + 10*key[2] + 2*key[3] + 10*key[4] + 0*key[5] + 0*key[6] + 22*key[7] + 6*key[8] + 2*key[9] + 25*nonce[10] + 19*nonce[11] + 24*nonce[12] + 7*nonce[13] + 0*nonce[14] + 9*nonce[15] + 20*nonce[1] + 20*nonce[2] + 4*nonce[3] + 20*nonce[4] + 4*nonce[5] + 8*nonce[6] + 24*nonce[7] + 13*nonce[8] + 7*nonce[9] + 18 | |
h[13] = 18*key[10] + 5*key[11] + 8*key[12] + 24*key[13] + 0*key[14] + 8*key[15] + 2*key[1] + 2*key[2] + 20*key[3] + 2*key[4] + 0*key[5] + 0*key[6] + 18*key[7] + 23*key[8] + 16*key[9] + 19*nonce[10] + 25*nonce[11] + 14*nonce[12] + 10*nonce[13] + 12*nonce[14] + 21*nonce[15] + 21*nonce[1] + 21*nonce[2] + 4*nonce[3] + 21*nonce[4] + 20*nonce[5] + 14*nonce[6] + 8*nonce[7] + 13*nonce[8] + 19*nonce[9] + 8 | |
h[14] = 19*key[10] + 22*key[11] + 21*key[12] + key[13] + 22*key[14] + 17*key[15] + 20*key[1] + 20*key[2] + 8*key[3] + 20*key[4] + 20*key[5] + 14*key[6] + 8*key[7] + 10*key[8] + 0*key[9] + 24*nonce[10] + 7*nonce[11] + 11*nonce[12] + nonce[13] + 20*nonce[14] + 20*nonce[15] + 24*nonce[1] + 24*nonce[2] + 10*nonce[3] + 24*nonce[4] + 0*nonce[5] + 0*nonce[6] + 9*nonce[7] + 16*nonce[8] + nonce[9] + 11 | |
h[15] = 6*key[10] + 17*key[11] + 17*key[12] + 17*key[13] + key[14] + 25*key[15] + 3*key[1] + 3*key[2] + 10*key[3] + 3*key[4] + 12*key[5] + 24*key[6] + 5*key[7] + 10*key[8] + 8*key[9] + 9*nonce[10] + 25*nonce[11] + 22*nonce[12] + 7*nonce[13] + 14*nonce[14] + nonce[15] + 15*nonce[1] + 15*nonce[2] + 8*nonce[3] + 15*nonce[4] + 4*nonce[5] + 8*nonce[6] + 2*nonce[7] + 23*nonce[8] + 16*nonce[9] + 3 | |
h = [ hh % 26 for hh in h ] | |
return h |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment