# 0.75 confidence in bit prediction through $\chi^{-1}$

When checking the S-Box implementation of $\chi$ in Keccak I wanted to see if there were any fixed bits in the forward direction of $\chi$ that could be leverage to reveal truncated state bits.

I tested this on an arbitrary Keccak-512 output.

state=[
'0101110000001001110111011110010100011100011011101000001001001010',
'0001110111000010111000010101101011110001100011000110010110100111',
'0101101111100110101101101011010111010010101010010001001001010011',
'0101101100000111011101000000110010001100011100101111001100010101',
'1000010011010010000001011000100110001100010101000011001101100011',

'1110110111111010010010100001111100110100101010000101001001100011',
'0000100111000011110001101000100000111001100011000011110010101111',
'1011111001100101111110110110010010000011010110000100011010011000',
'****************************************************************',<---Tried to recover
'****************************************************************',<---Tried to recover

'****************************************************************',
'****************************************************************',
'****************************************************************',
'****************************************************************',
'****************************************************************',

'****************************************************************',
'****************************************************************',
'****************************************************************',
'****************************************************************',
'****************************************************************',

'****************************************************************',
'****************************************************************',
'****************************************************************',
'****************************************************************',
'****************************************************************']


Below, I used the mapping between set_0 and set_1 as it's functionally equivalent to the $\chi$ effect.

set_1=['00000','00101','01011','01010',
'10110','10111','10001','10100',
'01101','01000','01110','01111',
'00011','00010','01100','01001',
'11010','11101','10011','10000',
'11100','11111','11001','11110',
'00110','00001','00111','00100',
'11000','11011','10101','10010']

set_0=['00000','00001','00011','00010',
'00110','00111','00101','00100',
'01100','01101','01111','01110',
'01010','01011','01001','01000',
'11000','11001','11011','11010',
'11110','11111','11101','11100',
'10100','10101','10111','10110',
'10010','10011','10001','10000']


And then used the below set as the search area to retrieve index values.

set_3=['000**','001**','010**','010**',
'101**','101**','100**','101**',
'011**','010**','011**','011**',
'000**','000**','011**','010**',
'110**','111**','100**','100**',
'111**','111**','110**','111**',
'001**','000**','001**','001**',
'110**','110**','101**','100**']


As I should have expected I wasn't able to predict any truncated state bit value with a probability greater than 50%. At this point I was curious enough to check if there were any fixed bits through $\chi^{-1}$, which there are, although you can only recover up to the number of exposed bits in the 5-bit column of the output.

Interestingly enough for the bits that can't be recover through $\chi^{-1}$ they can be predicted with a 50% or 75% confidence. After I inserted these fixed bits, I ran the original test again trying to expose truncated state bits, and was again unsuccessful. Keep in mind I'm aware that this exercise is equivalent to discussing the best way to swim through a castle moat filled with alligators despite the fact that you will most certainly swim into the castle wall (read $\theta$).

To the question...

After comparing these two different $\chi$ representations I'm at a complete loss as to how the authors found a Boolean function with this property in the forward direction of $\chi$...is there a method better than guess and check? And finally is there a method for creating a S-Box so that in both directions you have a probability of guessing correct bits with at best a 50% probability? If it's possible to create a S-Box with this propriety, would it provide better security?

• What do you mean with "SHA-3 is broken" in the title? Can you prove or at least show serious evidence for that? Biased S-Boxes are not necessarily a break for hash functions. – Nova Apr 21 '18 at 10:39
• I have rolled back the edits to the title of this question, because "SHA3 is broken" doesn't add any value to the question and is just click-bait. – SEJPM Apr 21 '18 at 14:13
• @Nova The statement, and yes. – Q-Club Apr 21 '18 at 15:18
• Hi Q-Club, it looks like you accidentally created a second account Edward R. Murrow. You can contact the stackexchange team if you want to merge them. – CodesInChaos Apr 21 '18 at 16:46

# tl;dr Keccak-256 is more secure than both Keccak-384 and Keccak-512.

To start it was necessary to confirm the accuracy of your statements. The task was more difficult than anticipated as maintaining code generality was needed to test on all flavors of Keccak. Further more the tests that were developed only included the truncated set selections, meaning the results are currently only valid for the last round of Keccak. A 5-bit set filter will be required for completely general testing.

# Forward_Build

set_0=['00000','00101','01011','01010',
'10110','10111','10001','10100',
'01101','01000','01110','01111',
'00011','00010','01100','01001',
'11010','11101','10011','10000',
'11100','11111','11001','11110',
'00110','00001','00111','00100',
'11000','11011','10101','10010']


# Forward_Search

set_1=['00000','00001','00011','00010',
'00110','00111','00101','00100',
'01100','01101','01111','01110',
'01010','01011','01001','01000',
'11000','11001','11011','11010',
'11110','11111','11101','11100',
'10100','10101','10111','10110',
'10010','10011','10001','10000']


# Reverse_Search <---Forward_Build

def bin_n_bit(dec,n):
return(str(format(dec,'0'+n+'b')))

def rc_con(sub_set):
to_return=[]
for i in range(len(sub_set[0])):
insert=''
for x in range(len(sub_set)):
insert+=sub_set[x][i]
to_return.append(insert)
return(to_return)

def sub_string_star(a_input,to_pop):
#Where to_pop is the number of end lanes to be trimmed, and a_input is
#generated sbox set mapping. Will be used in furture for sbox proof.
to_return=[]
for i in range(len(a_input)):
to_return.append(a_input[i][0:5-to_pop]+'*'*(to_pop))
return(to_return)

def reverse_set_test_return(forward_build_canidate,forward_search_canidate):
#forward_build_canidate=set_0
#forward_search_canidate=set_1
main=[]
for i in range(1,5):
search_set=sub_string_star(forward_build_canidate,i)
insert_0=[]
for x in range(32):
to_hold=bin_n_bit(x,'5')[0:5-i]+'*'*i
insert_1=[]
for z in range(len(search_set)):
if search_set[z]==to_hold:
insert_1.append(forward_search_canidate[z])
insert_0.append(insert_1)
main.append(insert_0)
#to_print(main)
return(main)

def forward_set_test_return(forward_build_canidate):
main=[]
for i in range(1,5):
search_set=sub_string_star(forward_build_canidate,i)
insert_0=[]
for x in range(32):
to_hold=bin_n_bit(x,'5')[0:5-i]+'*'*i
insert_1=[]
for z in range(len(search_set)):
if search_set[z]==to_hold:
insert_1.append(to_hold)
insert_0.append(insert_1)
main.append(insert_0)
return(main)

def probability_return(possible_value_set):
a_index_set=rc_con(possible_value_set)
dem=len(a_index_set[0])
to_return=[]
for i in range(len(a_index_set)):
x=a_index_set[i].count('1')#Position zero '1' probability
y=a_index_set[i].count('0')#Position one '0' probability
x_0=float(x)/float(dem)
y_0=float(y)/float(dem)
to_return.append([x_0,y_0,i])
return(to_return)

'''
test_0
'''
def test_0():
to_return=[]
var_0=forward_set_test_return(set_0)
for i in range(len(var_0)):
insert=[]
for x in range(len(var_0[i])):
insert.append(probability_return(var_0[i][x]))
to_return.append(insert)
for i in range(len(to_return)):
for x in range(len(to_return[i])):
print(to_return[i][x])
print('b')

'''
test_1
'''
def test_1():
#Note that based on printed sets,
#the Order should be
to_return=[]
var_0=reverse_set_test_return(set_0,set_1)
for i in range(len(var_0)):
insert=[]
for x in range(len(var_0[i])):
insert.append(probability_return(var_0[i][x]))
to_return.append(insert)
for i in range(len(to_return)):
for x in range(len(to_return[i])):
print(to_return[i][x])
print('b')


Now compiled results are below:

# Test_0

[[0.0, 1.0, 0], [0.0, 1.0, 1], [0.0, 1.0, 2], [0.0, 1.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [0.0, 1.0, 1], [0.0, 1.0, 2], [0.0, 1.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [0.0, 1.0, 1], [0.0, 1.0, 2], [1.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [0.0, 1.0, 1], [0.0, 1.0, 2], [1.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [0.0, 1.0, 1], [1.0, 0.0, 2], [0.0, 1.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [0.0, 1.0, 1], [1.0, 0.0, 2], [0.0, 1.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [0.0, 1.0, 1], [1.0, 0.0, 2], [1.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [0.0, 1.0, 1], [1.0, 0.0, 2], [1.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [1.0, 0.0, 1], [0.0, 1.0, 2], [0.0, 1.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [1.0, 0.0, 1], [0.0, 1.0, 2], [0.0, 1.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [1.0, 0.0, 1], [0.0, 1.0, 2], [1.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [1.0, 0.0, 1], [0.0, 1.0, 2], [1.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [1.0, 0.0, 1], [1.0, 0.0, 2], [0.0, 1.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [1.0, 0.0, 1], [1.0, 0.0, 2], [0.0, 1.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [1.0, 0.0, 1], [1.0, 0.0, 2], [1.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [1.0, 0.0, 1], [1.0, 0.0, 2], [1.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 1.0, 1], [0.0, 1.0, 2], [0.0, 1.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 1.0, 1], [0.0, 1.0, 2], [0.0, 1.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 1.0, 1], [0.0, 1.0, 2], [1.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 1.0, 1], [0.0, 1.0, 2], [1.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 1.0, 1], [1.0, 0.0, 2], [0.0, 1.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 1.0, 1], [1.0, 0.0, 2], [0.0, 1.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 1.0, 1], [1.0, 0.0, 2], [1.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 1.0, 1], [1.0, 0.0, 2], [1.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [1.0, 0.0, 1], [0.0, 1.0, 2], [0.0, 1.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [1.0, 0.0, 1], [0.0, 1.0, 2], [0.0, 1.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [1.0, 0.0, 1], [0.0, 1.0, 2], [1.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [1.0, 0.0, 1], [0.0, 1.0, 2], [1.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [1.0, 0.0, 1], [1.0, 0.0, 2], [0.0, 1.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [1.0, 0.0, 1], [1.0, 0.0, 2], [0.0, 1.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [1.0, 0.0, 1], [1.0, 0.0, 2], [1.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [1.0, 0.0, 1], [1.0, 0.0, 2], [1.0, 0.0, 3], [0.0, 0.0, 4]]
b
[[0.0, 1.0, 0], [0.0, 1.0, 1], [0.0, 1.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [0.0, 1.0, 1], [0.0, 1.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [0.0, 1.0, 1], [0.0, 1.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [0.0, 1.0, 1], [0.0, 1.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [0.0, 1.0, 1], [1.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [0.0, 1.0, 1], [1.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [0.0, 1.0, 1], [1.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [0.0, 1.0, 1], [1.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [1.0, 0.0, 1], [0.0, 1.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [1.0, 0.0, 1], [0.0, 1.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [1.0, 0.0, 1], [0.0, 1.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [1.0, 0.0, 1], [0.0, 1.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [1.0, 0.0, 1], [1.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [1.0, 0.0, 1], [1.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [1.0, 0.0, 1], [1.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [1.0, 0.0, 1], [1.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 1.0, 1], [0.0, 1.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 1.0, 1], [0.0, 1.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 1.0, 1], [0.0, 1.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 1.0, 1], [0.0, 1.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 1.0, 1], [1.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 1.0, 1], [1.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 1.0, 1], [1.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 1.0, 1], [1.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [1.0, 0.0, 1], [0.0, 1.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [1.0, 0.0, 1], [0.0, 1.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [1.0, 0.0, 1], [0.0, 1.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [1.0, 0.0, 1], [0.0, 1.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [1.0, 0.0, 1], [1.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [1.0, 0.0, 1], [1.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [1.0, 0.0, 1], [1.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [1.0, 0.0, 1], [1.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
b
[[0.0, 1.0, 0], [0.0, 1.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [0.0, 1.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [0.0, 1.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [0.0, 1.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [0.0, 1.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [0.0, 1.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [0.0, 1.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [0.0, 1.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [1.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [1.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [1.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [1.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [1.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [1.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [1.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [1.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 1.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 1.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 1.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 1.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 1.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 1.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 1.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 1.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [1.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [1.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [1.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [1.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [1.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [1.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [1.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [1.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
b
[[0.0, 1.0, 0], [0.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [0.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [0.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [0.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [0.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [0.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [0.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [0.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [0.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [0.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [0.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [0.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [0.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [0.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [0.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[0.0, 1.0, 0], [0.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
[[1.0, 0.0, 0], [0.0, 0.0, 1], [0.0, 0.0, 2], [0.0, 0.0, 3], [0.0, 0.0, 4]]
b


# Test_1

[[0.5, 0.5, 0], [0.0, 1.0, 1], [0.5, 0.5, 2], [0.0, 1.0, 3], [0.5, 0.5, 4]]
[[0.5, 0.5, 0], [0.0, 1.0, 1], [0.5, 0.5, 2], [0.0, 1.0, 3], [0.5, 0.5, 4]]
[[0.0, 1.0, 0], [1.0, 0.0, 1], [0.0, 1.0, 2], [1.0, 0.0, 3], [0.5, 0.5, 4]]
[[0.0, 1.0, 0], [1.0, 0.0, 1], [0.0, 1.0, 2], [1.0, 0.0, 3], [0.5, 0.5, 4]]
[[0.5, 0.5, 0], [0.0, 1.0, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.5, 0.5, 0], [0.0, 1.0, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[1.0, 0.0, 0], [0.0, 1.0, 1], [1.0, 0.0, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[1.0, 0.0, 0], [0.0, 1.0, 1], [1.0, 0.0, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.0, 1.0, 0], [1.0, 0.0, 1], [0.5, 0.5, 2], [0.0, 1.0, 3], [0.5, 0.5, 4]]
[[0.0, 1.0, 0], [1.0, 0.0, 1], [0.5, 0.5, 2], [0.0, 1.0, 3], [0.5, 0.5, 4]]
[[0.0, 1.0, 0], [0.0, 1.0, 1], [0.0, 1.0, 2], [1.0, 0.0, 3], [0.5, 0.5, 4]]
[[0.0, 1.0, 0], [0.0, 1.0, 1], [0.0, 1.0, 2], [1.0, 0.0, 3], [0.5, 0.5, 4]]
[[0.0, 1.0, 0], [1.0, 0.0, 1], [0.5, 0.5, 2], [0.0, 1.0, 3], [0.5, 0.5, 4]]
[[0.0, 1.0, 0], [1.0, 0.0, 1], [0.5, 0.5, 2], [0.0, 1.0, 3], [0.5, 0.5, 4]]
[[0.0, 1.0, 0], [1.0, 0.0, 1], [1.0, 0.0, 2], [1.0, 0.0, 3], [0.5, 0.5, 4]]
[[0.0, 1.0, 0], [1.0, 0.0, 1], [1.0, 0.0, 2], [1.0, 0.0, 3], [0.5, 0.5, 4]]
[[0.5, 0.5, 0], [0.5, 0.5, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.5, 0.5, 0], [0.5, 0.5, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[1.0, 0.0, 0], [0.5, 0.5, 1], [0.0, 1.0, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[1.0, 0.0, 0], [0.5, 0.5, 1], [0.0, 1.0, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.5, 0.5, 0], [0.0, 1.0, 1], [0.5, 0.5, 2], [0.0, 1.0, 3], [0.5, 0.5, 4]]
[[0.5, 0.5, 0], [0.0, 1.0, 1], [0.5, 0.5, 2], [0.0, 1.0, 3], [0.5, 0.5, 4]]
[[0.0, 1.0, 0], [0.0, 1.0, 1], [1.0, 0.0, 2], [1.0, 0.0, 3], [0.5, 0.5, 4]]
[[0.0, 1.0, 0], [0.0, 1.0, 1], [1.0, 0.0, 2], [1.0, 0.0, 3], [0.5, 0.5, 4]]
[[1.0, 0.0, 0], [0.5, 0.5, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[1.0, 0.0, 0], [0.5, 0.5, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[1.0, 0.0, 0], [0.5, 0.5, 1], [0.0, 1.0, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[1.0, 0.0, 0], [0.5, 0.5, 1], [0.0, 1.0, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[1.0, 0.0, 0], [1.0, 0.0, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[1.0, 0.0, 0], [1.0, 0.0, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[1.0, 0.0, 0], [1.0, 0.0, 1], [1.0, 0.0, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[1.0, 0.0, 0], [1.0, 0.0, 1], [1.0, 0.0, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
b
[[0.25, 0.75, 0], [0.5, 0.5, 1], [0.25, 0.75, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.25, 0.75, 0], [0.5, 0.5, 1], [0.25, 0.75, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.25, 0.75, 0], [0.5, 0.5, 1], [0.25, 0.75, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.25, 0.75, 0], [0.5, 0.5, 1], [0.25, 0.75, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.75, 0.25, 0], [0.0, 1.0, 1], [0.75, 0.25, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.75, 0.25, 0], [0.0, 1.0, 1], [0.75, 0.25, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.75, 0.25, 0], [0.0, 1.0, 1], [0.75, 0.25, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.75, 0.25, 0], [0.0, 1.0, 1], [0.75, 0.25, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.0, 1.0, 0], [0.5, 0.5, 1], [0.25, 0.75, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.0, 1.0, 0], [0.5, 0.5, 1], [0.25, 0.75, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.0, 1.0, 0], [0.5, 0.5, 1], [0.25, 0.75, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.0, 1.0, 0], [0.5, 0.5, 1], [0.25, 0.75, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.0, 1.0, 0], [1.0, 0.0, 1], [0.75, 0.25, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.0, 1.0, 0], [1.0, 0.0, 1], [0.75, 0.25, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.0, 1.0, 0], [1.0, 0.0, 1], [0.75, 0.25, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.0, 1.0, 0], [1.0, 0.0, 1], [0.75, 0.25, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.75, 0.25, 0], [0.5, 0.5, 1], [0.25, 0.75, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.75, 0.25, 0], [0.5, 0.5, 1], [0.25, 0.75, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.75, 0.25, 0], [0.5, 0.5, 1], [0.25, 0.75, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.75, 0.25, 0], [0.5, 0.5, 1], [0.25, 0.75, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.25, 0.75, 0], [0.0, 1.0, 1], [0.75, 0.25, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.25, 0.75, 0], [0.0, 1.0, 1], [0.75, 0.25, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.25, 0.75, 0], [0.0, 1.0, 1], [0.75, 0.25, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.25, 0.75, 0], [0.0, 1.0, 1], [0.75, 0.25, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[1.0, 0.0, 0], [0.5, 0.5, 1], [0.25, 0.75, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[1.0, 0.0, 0], [0.5, 0.5, 1], [0.25, 0.75, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[1.0, 0.0, 0], [0.5, 0.5, 1], [0.25, 0.75, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[1.0, 0.0, 0], [0.5, 0.5, 1], [0.25, 0.75, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[1.0, 0.0, 0], [1.0, 0.0, 1], [0.75, 0.25, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[1.0, 0.0, 0], [1.0, 0.0, 1], [0.75, 0.25, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[1.0, 0.0, 0], [1.0, 0.0, 1], [0.75, 0.25, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[1.0, 0.0, 0], [1.0, 0.0, 1], [0.75, 0.25, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
b
[[0.5, 0.5, 0], [0.25, 0.75, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.5, 0.5, 0], [0.25, 0.75, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.5, 0.5, 0], [0.25, 0.75, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.5, 0.5, 0], [0.25, 0.75, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.5, 0.5, 0], [0.25, 0.75, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.5, 0.5, 0], [0.25, 0.75, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.5, 0.5, 0], [0.25, 0.75, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.5, 0.5, 0], [0.25, 0.75, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.0, 1.0, 0], [0.75, 0.25, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.0, 1.0, 0], [0.75, 0.25, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.0, 1.0, 0], [0.75, 0.25, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.0, 1.0, 0], [0.75, 0.25, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.0, 1.0, 0], [0.75, 0.25, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.0, 1.0, 0], [0.75, 0.25, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.0, 1.0, 0], [0.75, 0.25, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.0, 1.0, 0], [0.75, 0.25, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.5, 0.5, 0], [0.25, 0.75, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.5, 0.5, 0], [0.25, 0.75, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.5, 0.5, 0], [0.25, 0.75, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.5, 0.5, 0], [0.25, 0.75, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.5, 0.5, 0], [0.25, 0.75, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.5, 0.5, 0], [0.25, 0.75, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.5, 0.5, 0], [0.25, 0.75, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.5, 0.5, 0], [0.25, 0.75, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[1.0, 0.0, 0], [0.75, 0.25, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[1.0, 0.0, 0], [0.75, 0.25, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[1.0, 0.0, 0], [0.75, 0.25, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[1.0, 0.0, 0], [0.75, 0.25, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[1.0, 0.0, 0], [0.75, 0.25, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[1.0, 0.0, 0], [0.75, 0.25, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[1.0, 0.0, 0], [0.75, 0.25, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[1.0, 0.0, 0], [0.75, 0.25, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
b
[[0.25, 0.75, 0], [0.5, 0.5, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.25, 0.75, 0], [0.5, 0.5, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.25, 0.75, 0], [0.5, 0.5, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.25, 0.75, 0], [0.5, 0.5, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.25, 0.75, 0], [0.5, 0.5, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.25, 0.75, 0], [0.5, 0.5, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.25, 0.75, 0], [0.5, 0.5, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.25, 0.75, 0], [0.5, 0.5, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.25, 0.75, 0], [0.5, 0.5, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.25, 0.75, 0], [0.5, 0.5, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.25, 0.75, 0], [0.5, 0.5, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.25, 0.75, 0], [0.5, 0.5, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.25, 0.75, 0], [0.5, 0.5, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.25, 0.75, 0], [0.5, 0.5, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.25, 0.75, 0], [0.5, 0.5, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.25, 0.75, 0], [0.5, 0.5, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.75, 0.25, 0], [0.5, 0.5, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.75, 0.25, 0], [0.5, 0.5, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.75, 0.25, 0], [0.5, 0.5, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.75, 0.25, 0], [0.5, 0.5, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.75, 0.25, 0], [0.5, 0.5, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.75, 0.25, 0], [0.5, 0.5, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.75, 0.25, 0], [0.5, 0.5, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.75, 0.25, 0], [0.5, 0.5, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.75, 0.25, 0], [0.5, 0.5, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.75, 0.25, 0], [0.5, 0.5, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.75, 0.25, 0], [0.5, 0.5, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.75, 0.25, 0], [0.5, 0.5, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.75, 0.25, 0], [0.5, 0.5, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.75, 0.25, 0], [0.5, 0.5, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.75, 0.25, 0], [0.5, 0.5, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
[[0.75, 0.25, 0], [0.5, 0.5, 1], [0.5, 0.5, 2], [0.5, 0.5, 3], [0.5, 0.5, 4]]
b


For these results to have any effect on the ability to predict secrets input bits would require there be similar observations through $\theta$. In addition would only effect inputs with a bit length less than or equal to the particular rate of the Keccak flavor being investigated. I believe the Keccak domain extender would eliminate most issues. I can also tell that you didn't fully test your results before you asked this question. You clearly completed Test_0, but did not fully complete Test_1.

{1
1
1    ----> Keccak-256 ----> 75% Confidence Bits: 0
1
*}
---> Keccak-224 ...???
{1
1
1    ----> Keccak-512 ----> 75% Confidence Bits: 48
*
*}

{1
1
*    ----> NULL ----> 75% Confidence Bits: 32
*
*}

{1
*
*    ----> Keccak-384 ----> 75% Confidence Bits: 32
*
*}


So to answer your question it's possible to create a SBox that has at most a 0.5 confidence in unknown bit prediction when truncating some portion of the output. Keccak-256 passes this test. Keccak-512 and Keccak-384 on the other had do not, and based on these observations. I'm not sure how this would effect Keccak-224 since it has a partially filled lane.

If the 0.75 percent confidence bit can pass to a theoretical $\theta$ input the domain extender might not mitigate issues. If the the 0.75 confidence bit falls in the capacity range of the Keccak flavor, a zero bit can be assumed all the way back to the initialization vector of $\theta$. At which point secret bits could be predicted at 0.75 percent confidence.

# I'll say that Keccak-256 is more secure that both Keccak-384 and Keccak-512.

I'll edit the answer when I have more details for $\theta$.

• Interesting analysis I didn't notice the property of Keccak-256. On a similar note do you think that there could be issues with the fixed lane through $\pi$ given the property of Keccak-384? – Q-Club Mar 29 '18 at 2:00
• @Q-Club Until I have time to conduct similar tests through $\theta$ I won't know for certain. I've been lazy and need to optimize some scripts. – user55634 Mar 29 '18 at 23:04