In this example, we assess the probability of the boomerang distinguisher I for 6 to 18 rounds of SKINNY-128-384. The following shape represents the activeness pattern of this distinguisher for 6 to 18 rounds of SKINNY-128-384. As you can see, the probability of 18-round distinguisher must be the same as the probability of the 6-round middle part as the 6 first rounds as well as the 6 last rounds are totally passive.
In this test, we firstly choose a single tweakey at random and perform 2^24
boomerang queries with the same tweakey. We repeat this experiment 128 times with 128 different random tweakeys. You can see the output of our experiments in detail in SKINNY-128-384-6r-ST.md. The summary of the outputs are as follows:
##########################
A summary of all results:
2^(-19.91), 2^(-19.83), 2^(-24.00), 2^(-21.00), 2^(-20.42), 2^(-20.09), 2^(-20.30), 2^(-20.30), 2^(-21.19), 2^(-21.19), 2^(-21.68), 2^(-21.00), 2^(-22.00), 2^(-20.00), 2^(-22.00), 2^(-20.68), 2^(-20.42), 2^(-19.54), 2^(-21.00), 2^(-20.68), 2^(-20.68), 2^(-22.00), 2^(-20.54), 2^(-19.91), 2^(-20.30), 2^(-21.00), 2^(-21.42), 2^(-21.42), 2^(-20.42), 2^(-20.19), 2^(-19.83), 2^(-21.19), 2^(-22.42), 2^(-22.00), 2^(-20.83), 2^(-19.30), 2^(-20.68), 2^(-21.68), 2^(-21.42), 2^(-21.68), 2^(-22.00), 2^(-19.54), 2^(-20.42), 2^(-21.68), 2^(-19.61), 2^(-21.42), 2^(-20.30), 2^(-18.91), 2^(-18.64), 2^(-20.19), 2^(-20.83), 2^(-21.00), 2^(-20.00), 2^(-20.83), 2^(-19.91), 2^(-20.09), 2^(-20.54), 2^(-21.68), 2^(-19.91), 2^(-21.00), 2^(-20.30), 2^(-21.42), 2^(-20.00), 2^(-20.83), 2^(-21.42), 2^(-20.54), 2^(-21.19), 2^(-21.19), 2^(-21.42), 2^(-20.83), 2^(-19.91), 2^(-19.68), 2^(-23.00), 2^(-19.19), 2^(-20.42), 2^(-18.87), 2^(-22.42), 2^(-19.91), 2^(-20.54), 2^(-19.36), 2^(-21.42), 2^(-23.00), 2^(-19.83), 2^(-19.61), 2^(-19.14), 2^(-20.42), 2^(-20.83), 2^(-19.30), 2^(-20.30), 2^(-19.54), 2^(-21.42), 2^(-20.83), 2^(-20.30), 2^(-20.42), 2^(-24.00), 2^(-22.00), 2^(-21.19), 2^(-21.42), 2^(-21.68), 2^(-20.42), 2^(-21.19), 2^(-20.83), 2^(-20.42), 2^(-22.00), 2^(-20.68), 2^(-21.19), 2^(-19.61), 2^(-22.00), 2^(-20.68), 2^(-20.42), 2^(-21.00), 2^(-20.68), 2^(-19.83), 2^(-19.09), 2^(-21.68), 2^(-21.19), 2^(-19.05), 2^(-19.48), 2^(-21.00), 2^(-21.00), 2^(-21.00), 2^(-20.83), 2^(-21.42), 2^(-20.30), 2^(-21.42), 2^(-20.19), 2^(-19.42), 2^(-19.91)
##########################
Average = 2^(-20.4254)
To do this experiment we have prepared a simple C
code entitled rumi6r.c
in Example1/Experiment1. To build the code you can run the make
command and then execute the code via ./rumi6r
command. To compute the statistical properties of the output including the average and the standard deviation we can use the following Sage commands.
v = [2^(-19.91), 2^(-19.83), 2^(-24.00), 2^(-21.00), 2^(-20.42), 2^(-20.09), 2^(-20.30), 2^(-20.30), 2^(-21.19), 2^(-21.19), 2^(-21.68), 2^(-21.00), 2^(-22.00), 2^(-20.00), 2^(-22.00), 2^(-20.68), 2^(-20.42), 2^(-19.54), 2^(-21.00), 2^(-20.68), 2^(-20.68), 2^(-22.00), 2^(-20.54), 2^(-19.91), 2^(-20.30), 2^(-21.00), 2^(-21.42), 2^(-21.42), 2^(-20.42), 2^(-20.19), 2^(-19.83), 2^(-21.19), 2^(-22.42), 2^(-22.00), 2^(-20.83), 2^(-19.30), 2^(-20.68), 2^(-21.68), 2^(-21.42), 2^(-21.68), 2^(-22.00), 2^(-19.54), 2^(-20.42), 2^(-21.68), 2^(-19.61), 2^(-21.42), 2^(-20.30), 2^(-18.91), 2^(-18.64), 2^(-20.19), 2^(-20.83), 2^(-21.00), 2^(-20.00), 2^(-20.83), 2^(-19.91), 2^(-20.09), 2^(-20.54), 2^(-21.68), 2^(-19.91), 2^(-21.00), 2^(-20.30), 2^(-21.42), 2^(-20.00), 2^(-20.83), 2^(-21.42), 2^(-20.54), 2^(-21.19), 2^(-21.19), 2^(-21.42), 2^(-20.83), 2^(-19.91), 2^(-19.68), 2^(-23.00), 2^(-19.19), 2^(-20.42), 2^(-18.87), 2^(-22.42), 2^(-19.91), 2^(-20.54), 2^(-19.36), 2^(-21.42), 2^(-23.00), 2^(-19.83), 2^(-19.61), 2^(-19.14), 2^(-20.42), 2^(-20.83), 2^(-19.30), 2^(-20.30), 2^(-19.54), 2^(-21.42), 2^(-20.83), 2^(-20.30), 2^(-20.42), 2^(-24.00), 2^(-22.00), 2^(-21.19), 2^(-21.42), 2^(-21.68), 2^(-20.42), 2^(-21.19), 2^(-20.83), 2^(-20.42), 2^(-22.00), 2^(-20.68), 2^(-21.19), 2^(-19.61), 2^(-22.00), 2^(-20.68), 2^(-20.42), 2^(-21.00), 2^(-20.68), 2^(-19.83), 2^(-19.09), 2^(-21.68), 2^(-21.19), 2^(-19.05), 2^(-19.48), 2^(-21.00), 2^(-21.00), 2^(-21.00), 2^(-20.83), 2^(-21.42), 2^(-20.30), 2^(-21.42), 2^(-20.19), 2^(-19.42), 2^(-19.91)]
vr = r(v)
print(vr.summary())
print('\nMean: \t\t2^(%0.02f)' % float(log(mean(v), 2)))
print('Variance: \t%s' % variance(v))
print('STD: \t\t%s' % std(v))
Min. 1st Qu. Median Mean 3rd Qu. Max.
5.960e-08 3.564e-07 5.953e-07 7.099e-07 9.537e-07 2.448e-06
Mean: 2^(-20.43)
Variance: 2.04721610293256e-13
STD: 4.52461722461973e-7
In this test, we utilize 2^2
parallel threads each of which running 2^5
bunches of 2^17
boomerang queries where a different random tweakey is used in each bunch. In other words, we essentially divide 2^24
boomerang queries into 2^7
bunches of 2^17
boomerang queries where a new random tweakey is used for each bunch. After repeating such an experiment 8 times we compute the average of outcomes. You can see the outputs in detail in SKINNY-128-384-6r-MT1.md in more detail. A summary of outputs is as follows.
##########################
A summary of all results:
2^(-20.00), 2^(-20.54), 2^(-20.42), 2^(-20.68), 2^(-20.30), 2^(-20.42), 2^(-21.19), 2^(-20.19)
##########################
Average = 2^(-20.4301)
We have prepared a simple C
code entitled rumi6r.c
to do the above test which is located in folder ./Example1/Experiment2/. By the way, using the following Sage commands you can use the statistical properties of the outputs.
v = [2^(-20.00), 2^(-20.54), 2^(-20.42), 2^(-20.68), 2^(-20.30), 2^(-20.42), 2^(-21.19), 2^(-20.19)]
vr = r(v)
print(vr.summary())
print('\nMean: \t\t2^(%0.02f)' % float(log(mean(v), 2)))
print('Variance: \t%s' % variance(v))
print('STD: \t\t%s' % std(v))
Min. 1st Qu. Median Mean 3rd Qu. Max.
4.180e-07 6.407e-07 7.128e-07 7.074e-07 7.900e-07 9.537e-07
Mean: 2^(-20.43)
Variance: 2.58210995839888e-14
STD: 1.60689450755141e-7
In this experiment, we utilize 2^2
parallel threads each of which running 2^10
bunches of 2^12
boomerang queries where a different random tweakey is used in each bunch. In other words, we essentially divide 2^24
boomerang queries into 2^12
subsets each of which including 2^12
boomerang queries where a new random tweakey is used for each subset. Next, we repeat this experiment 128 times and compute the average of 128 outcomes. To see the outputs of these 128 experiments in detail you can take a look at SKINNY-128-384-6r-MT2.md. The summary of outputs are as follows.
##########################
A summary of all results:
2^(-21.00), 2^(-20.00), 2^(-20.19), 2^(-20.68), 2^(-20.19), 2^(-20.09), 2^(-20.68), 2^(-20.54), 2^(-20.42), 2^(-21.00), 2^(-21.19), 2^(-20.30), 2^(-20.09), 2^(-20.68), 2^(-20.42), 2^(-20.19), 2^(-20.30), 2^(-19.83), 2^(-20.30), 2^(-20.83), 2^(-19.83), 2^(-20.54), 2^(-20.83), 2^(-20.68), 2^(-20.83), 2^(-21.00), 2^(-20.68), 2^(-21.19), 2^(-19.83), 2^(-20.68), 2^(-19.83), 2^(-20.09), 2^(-20.19), 2^(-21.00), 2^(-20.54), 2^(-20.30), 2^(-21.42), 2^(-20.00), 2^(-20.30), 2^(-20.30), 2^(-21.42), 2^(-19.75), 2^(-21.19), 2^(-20.54), 2^(-20.54), 2^(-21.00), 2^(-20.42), 2^(-20.19), 2^(-20.19), 2^(-19.91), 2^(-21.42), 2^(-20.19), 2^(-20.19), 2^(-20.42), 2^(-20.30), 2^(-20.42), 2^(-20.68), 2^(-20.42), 2^(-19.48), 2^(-20.09), 2^(-20.42), 2^(-20.30), 2^(-20.42), 2^(-20.42), 2^(-20.09), 2^(-20.68), 2^(-20.83), 2^(-20.42), 2^(-21.42), 2^(-20.54), 2^(-20.09), 2^(-20.09), 2^(-20.30), 2^(-20.00), 2^(-20.68), 2^(-20.54), 2^(-20.68), 2^(-21.42), 2^(-21.68), 2^(-20.83), 2^(-20.83), 2^(-20.68), 2^(-20.42), 2^(-20.19), 2^(-21.00), 2^(-20.30), 2^(-20.68), 2^(-21.19), 2^(-20.83), 2^(-20.30), 2^(-20.54), 2^(-20.68), 2^(-20.68), 2^(-21.19), 2^(-20.68), 2^(-21.00), 2^(-20.54), 2^(-21.68), 2^(-19.91), 2^(-20.19), 2^(-21.19), 2^(-20.68), 2^(-19.91), 2^(-20.68), 2^(-20.83), 2^(-21.42), 2^(-21.19), 2^(-20.09), 2^(-20.68), 2^(-20.68), 2^(-21.19), 2^(-20.42), 2^(-20.19), 2^(-20.09), 2^(-21.00), 2^(-20.54), 2^(-19.91), 2^(-20.19), 2^(-19.75), 2^(-20.19), 2^(-20.54), 2^(-20.30), 2^(-20.30), 2^(-20.83), 2^(-20.09), 2^(-20.00), 2^(-20.30), 2^(-20.42)
##########################
Average = 2^(-20.4560)
We have prepared a code entitled rumi6r.c
to do the above test which is located inside the folder ./Example1/Experiment3/. The following cell represents the statistical properties of the outputs.
v = [2^(-21.00), 2^(-20.00), 2^(-20.19), 2^(-20.68), 2^(-20.19), 2^(-20.09), 2^(-20.68), 2^(-20.54), 2^(-20.42), 2^(-21.00), 2^(-21.19), 2^(-20.30), 2^(-20.09), 2^(-20.68), 2^(-20.42), 2^(-20.19), 2^(-20.30), 2^(-19.83), 2^(-20.30), 2^(-20.83), 2^(-19.83), 2^(-20.54), 2^(-20.83), 2^(-20.68), 2^(-20.83), 2^(-21.00), 2^(-20.68), 2^(-21.19), 2^(-19.83), 2^(-20.68), 2^(-19.83), 2^(-20.09), 2^(-20.19), 2^(-21.00), 2^(-20.54), 2^(-20.30), 2^(-21.42), 2^(-20.00), 2^(-20.30), 2^(-20.30), 2^(-21.42), 2^(-19.75), 2^(-21.19), 2^(-20.54), 2^(-20.54), 2^(-21.00), 2^(-20.42), 2^(-20.19), 2^(-20.19), 2^(-19.91), 2^(-21.42), 2^(-20.19), 2^(-20.19), 2^(-20.42), 2^(-20.30), 2^(-20.42), 2^(-20.68), 2^(-20.42), 2^(-19.48), 2^(-20.09), 2^(-20.42), 2^(-20.30), 2^(-20.42), 2^(-20.42), 2^(-20.09), 2^(-20.68), 2^(-20.83), 2^(-20.42), 2^(-21.42), 2^(-20.54), 2^(-20.09), 2^(-20.09), 2^(-20.30), 2^(-20.00), 2^(-20.68), 2^(-20.54), 2^(-20.68), 2^(-21.42), 2^(-21.68), 2^(-20.83), 2^(-20.83), 2^(-20.68), 2^(-20.42), 2^(-20.19), 2^(-21.00), 2^(-20.30), 2^(-20.68), 2^(-21.19), 2^(-20.83), 2^(-20.30), 2^(-20.54), 2^(-20.68), 2^(-20.68), 2^(-21.19), 2^(-20.68), 2^(-21.00), 2^(-20.54), 2^(-21.68), 2^(-19.91), 2^(-20.19), 2^(-21.19), 2^(-20.68), 2^(-19.91), 2^(-20.68), 2^(-20.83), 2^(-21.42), 2^(-21.19), 2^(-20.09), 2^(-20.68), 2^(-20.68), 2^(-21.19), 2^(-20.42), 2^(-20.19), 2^(-20.09), 2^(-21.00), 2^(-20.54), 2^(-19.91), 2^(-20.19), 2^(-19.75), 2^(-20.19), 2^(-20.54), 2^(-20.30), 2^(-20.30), 2^(-20.83), 2^(-20.09), 2^(-20.00), 2^(-20.30), 2^(-20.42)]
vr = r(v)
print(vr.summary())
print('\nMean: \t\t2^(%0.02f)' % float(log(mean(v), 2)))
print('Variance: \t%s' % variance(v))
print('STD: \t\t%s' % std(v))
Min. 1st Qu. Median Mean 3rd Qu. Max.
2.976e-07 5.365e-07 7.128e-07 6.952e-07 8.360e-07 1.368e-06
Mean: 2^(-20.46)
Variance: 4.15147833467649e-14
STD: 2.03751768941437e-7
In this experiment, we utilize 2^2
threads each of which running 2^22
bunches of merely one boomerang query, such that a new random tweakey is used in each bunch. In other words, we perform 2^24
queries where a new random tweakey is used for each query. Next, we repeat this experiment 128 times and compute the average of outcomes. To see the outputs in more detail you can take a look at SKINNY-128-384-6r-MT3.md. A summary of results is as follows.
##########################
A summary of all results:
2^(-20.00), 2^(-20.30), 2^(-19.91), 2^(-20.68), 2^(-20.00), 2^(-21.19), 2^(-20.30), 2^(-20.19), 2^(-20.83), 2^(-20.54), 2^(-20.09), 2^(-20.19), 2^(-20.00), 2^(-21.19), 2^(-20.68), 2^(-20.54), 2^(-21.00), 2^(-20.68), 2^(-20.19), 2^(-20.83), 2^(-20.68), 2^(-20.54), 2^(-22.42), 2^(-20.00), 2^(-21.68), 2^(-21.19), 2^(-20.68), 2^(-21.42), 2^(-20.30), 2^(-20.30), 2^(-21.00), 2^(-20.19), 2^(-20.42), 2^(-19.91), 2^(-21.00), 2^(-20.68), 2^(-20.30), 2^(-20.68), 2^(-20.42), 2^(-21.19), 2^(-19.83), 2^(-20.54), 2^(-20.30), 2^(-20.42), 2^(-20.19), 2^(-21.19), 2^(-20.09), 2^(-20.30), 2^(-20.54), 2^(-20.54), 2^(-20.42), 2^(-20.68), 2^(-19.91), 2^(-20.30), 2^(-20.42), 2^(-21.19), 2^(-20.09), 2^(-20.42), 2^(-21.19), 2^(-20.54), 2^(-20.09), 2^(-20.30), 2^(-20.00), 2^(-20.42), 2^(-20.30), 2^(-20.68), 2^(-21.19), 2^(-20.54), 2^(-21.19), 2^(-20.68), 2^(-20.54), 2^(-20.30), 2^(-20.42), 2^(-20.54), 2^(-19.83), 2^(-20.83), 2^(-20.09), 2^(-20.54), 2^(-20.54), 2^(-20.19), 2^(-20.42), 2^(-20.00), 2^(-20.83), 2^(-21.68), 2^(-20.83), 2^(-20.00), 2^(-20.68), 2^(-20.09), 2^(-20.54), 2^(-20.54), 2^(-21.00), 2^(-20.83), 2^(-20.19), 2^(-21.00), 2^(-20.54), 2^(-19.61), 2^(-21.19), 2^(-20.30), 2^(-20.68), 2^(-20.19), 2^(-21.00), 2^(-20.54), 2^(-20.83), 2^(-20.00), 2^(-20.68), 2^(-20.42), 2^(-21.68), 2^(-21.42), 2^(-21.42), 2^(-20.83), 2^(-20.00), 2^(-20.42), 2^(-20.54), 2^(-21.00), 2^(-20.54), 2^(-21.00), 2^(-20.19), 2^(-21.00), 2^(-20.54), 2^(-20.83), 2^(-21.00), 2^(-21.42), 2^(-20.19), 2^(-20.54), 2^(-20.42), 2^(-20.68), 2^(-21.00), 2^(-20.00)
##########################
Average = 2^(-20.5091)
To do the above test, you can use the code entitled rumi6r
in folder ./Example1/Experiment4/. The following cell, represents the statistical properties of the outcomes.
v = [2^(-20.00), 2^(-20.30), 2^(-19.91), 2^(-20.68), 2^(-20.00), 2^(-21.19), 2^(-20.30), 2^(-20.19), 2^(-20.83), 2^(-20.54), 2^(-20.09), 2^(-20.19), 2^(-20.00), 2^(-21.19), 2^(-20.68), 2^(-20.54), 2^(-21.00), 2^(-20.68), 2^(-20.19), 2^(-20.83), 2^(-20.68), 2^(-20.54), 2^(-22.42), 2^(-20.00), 2^(-21.68), 2^(-21.19), 2^(-20.68), 2^(-21.42), 2^(-20.30), 2^(-20.30), 2^(-21.00), 2^(-20.19), 2^(-20.42), 2^(-19.91), 2^(-21.00), 2^(-20.68), 2^(-20.30), 2^(-20.68), 2^(-20.42), 2^(-21.19), 2^(-19.83), 2^(-20.54), 2^(-20.30), 2^(-20.42), 2^(-20.19), 2^(-21.19), 2^(-20.09), 2^(-20.30), 2^(-20.54), 2^(-20.54), 2^(-20.42), 2^(-20.68), 2^(-19.91), 2^(-20.30), 2^(-20.42), 2^(-21.19), 2^(-20.09), 2^(-20.42), 2^(-21.19), 2^(-20.54), 2^(-20.09), 2^(-20.30), 2^(-20.00), 2^(-20.42), 2^(-20.30), 2^(-20.68), 2^(-21.19), 2^(-20.54), 2^(-21.19), 2^(-20.68), 2^(-20.54), 2^(-20.30), 2^(-20.42), 2^(-20.54), 2^(-19.83), 2^(-20.83), 2^(-20.09), 2^(-20.54), 2^(-20.54), 2^(-20.19), 2^(-20.42), 2^(-20.00), 2^(-20.83), 2^(-21.68), 2^(-20.83), 2^(-20.00), 2^(-20.68), 2^(-20.09), 2^(-20.54), 2^(-20.54), 2^(-21.00), 2^(-20.83), 2^(-20.19), 2^(-21.00), 2^(-20.54), 2^(-19.61), 2^(-21.19), 2^(-20.30), 2^(-20.68), 2^(-20.19), 2^(-21.00), 2^(-20.54), 2^(-20.83), 2^(-20.00), 2^(-20.68), 2^(-20.42), 2^(-21.68), 2^(-21.42), 2^(-21.42), 2^(-20.83), 2^(-20.00), 2^(-20.42), 2^(-20.54), 2^(-21.00), 2^(-20.54), 2^(-21.00), 2^(-20.19), 2^(-21.00), 2^(-20.54), 2^(-20.83), 2^(-21.00), 2^(-21.42), 2^(-20.19), 2^(-20.54), 2^(-20.42), 2^(-20.68), 2^(-21.00), 2^(-20.00)]
vr = r(v)
print(vr.summary())
print('\nMean: \t\t2^(%0.02f)' % float(log(mean(v), 2)))
print('Variance: \t%s' % variance(v))
print('STD: \t\t%s' % std(v))
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.782e-07 5.365e-07 6.559e-07 6.700e-07 7.900e-07 1.250e-06
Mean: 2^(-20.51)
Variance: 3.85621808125134e-14
STD: 1.96372556159239e-7
In this example we assess the probability of boomerang distinguisher II for 17 rounds of SKINNY-64-128. The activeness pattern of this distinguisher has been represented in the following picture.
In this test, we choose a single tweakey at random and perform 2^30
boomerang queries with the fixed tweakey. Next, we repeat this experiment 100 times with 100 different random tweakey and compute the average. To see the outcomes in more detail you can take a look at SKINNY-64-128-17r-ST.md. A summary of results is as follows.
##########################
A summary of all results:
2^(-26.54), 2^(-27.42), 2^(-27.00), 2^(-26.09), 2^(-26.09), 2^(-25.61), 2^(-25.00), 2^(-27.68), 2^(-24.83), 2^(-28.00), 2^(-25.09), 2^(-28.42), 2^(-27.68), 2^(-26.54), 2^(-25.36), 2^(-26.19), 2^(-28.00), 2^(-28.42), 2^(-25.68), 2^(-25.83), 2^(-27.42), 2^(-24.91), 2^(-26.09), 2^(-26.68), 2^(-28.42), 2^(-28.00), 2^(-28.42), 2^(-26.09), 2^(-27.42), 2^(-26.42), 2^(-26.68), 2^(-29.00), 2^(-26.42), 2^(-26.09), 2^(-28.00), 2^(-25.09), 2^(-27.00), 2^(-25.54), 2^(-27.19), 2^(-27.00), 2^(-27.00), 2^(-29.00), 2^(-26.09), 2^(-29.00), 2^(-27.68), 2^(-26.19), 2^(-27.68), 2^(-28.42), 2^(-25.48), 2^(-28.42), 2^(-27.68), 2^(-27.68), 2^(-27.68), 2^(-26.09), 2^(-26.68), 2^(-28.00), 2^(-29.00), 2^(-26.09), 2^(-25.25), 2^(-26.30), 2^(-28.42), 2^(-24.75), 2^(-28.42), 2^(-26.09), 2^(-26.19), 2^(-27.68), 2^(-27.00), 2^(-28.42), 2^(-25.61), 2^(-25.48), 2^(-26.83), 2^(-25.19), 2^(-27.42), 2^(-27.68), 2^(-25.30), 2^(-26.42), 2^(-26.68), 2^(-28.00), 2^(-27.19), 2^(-26.68), 2^(-28.42), 2^(-26.00), 2^(-25.48), 2^(-27.68), 2^(-25.83), 2^(-27.68), 2^(-28.42), 2^(-27.42), 2^(-29.00), 2^(-28.42), 2^(-27.00), 2^(-26.68), 2^(-25.54), 2^(-26.54), 2^(-27.00), 2^(-25.68), 2^(-26.30), 2^(-30.00), 2^(-28.42), 2^(-27.68)
##########################
Average = 2^(-26.5043)
To run this test you can use the code entitled dufu17r.c
inside the folder ./Example2/Experiment1/.
v = [2^(-26.54), 2^(-27.42), 2^(-27.00), 2^(-26.09), 2^(-26.09), 2^(-25.61), 2^(-25.00), 2^(-27.68), 2^(-24.83), 2^(-28.00), 2^(-25.09), 2^(-28.42), 2^(-27.68), 2^(-26.54), 2^(-25.36), 2^(-26.19), 2^(-28.00), 2^(-28.42), 2^(-25.68), 2^(-25.83), 2^(-27.42), 2^(-24.91), 2^(-26.09), 2^(-26.68), 2^(-28.42), 2^(-28.00), 2^(-28.42), 2^(-26.09), 2^(-27.42), 2^(-26.42), 2^(-26.68), 2^(-29.00), 2^(-26.42), 2^(-26.09), 2^(-28.00), 2^(-25.09), 2^(-27.00), 2^(-25.54), 2^(-27.19), 2^(-27.00), 2^(-27.00), 2^(-29.00), 2^(-26.09), 2^(-29.00), 2^(-27.68), 2^(-26.19), 2^(-27.68), 2^(-28.42), 2^(-25.48), 2^(-28.42), 2^(-27.68), 2^(-27.68), 2^(-27.68), 2^(-26.09), 2^(-26.68), 2^(-28.00), 2^(-29.00), 2^(-26.09), 2^(-25.25), 2^(-26.30), 2^(-28.42), 2^(-24.75), 2^(-28.42), 2^(-26.09), 2^(-26.19), 2^(-27.68), 2^(-27.00), 2^(-28.42), 2^(-25.61), 2^(-25.48), 2^(-26.83), 2^(-25.19), 2^(-27.42), 2^(-27.68), 2^(-25.30), 2^(-26.42), 2^(-26.68), 2^(-28.00), 2^(-27.19), 2^(-26.68), 2^(-28.42), 2^(-26.00), 2^(-25.48), 2^(-27.68), 2^(-25.83), 2^(-27.68), 2^(-28.42), 2^(-27.42), 2^(-29.00), 2^(-28.42), 2^(-27.00), 2^(-26.68), 2^(-25.54), 2^(-26.54), 2^(-27.00), 2^(-25.68), 2^(-26.30), 2^(-30.00), 2^(-28.42), 2^(-27.68)]
vr = r(v)
print(vr.summary())
print('\nMean: \t\t2^(%0.02f)' % float(log(mean(v), 2)))
print('Variance: \t%s' % variance(v))
print('STD: \t\t%s' % std(v))
Min. 1st Qu. Median Mean 3rd Qu. Max.
9.313e-10 4.419e-09 7.451e-09 1.050e-08 1.400e-08 3.544e-08
Mean: 2^(-26.50)
Variance: 6.69920560803407e-17
STD: 8.18486750536260e-9
In this test, we utilize 2^4
parallel threads each of which including 2^3
bunches of 2^23
boomerang queries where each bunch uses a different random tweakey. Hence, we essentially divide 2^30
queries into 2^7
bunches where a different random tweakey is used in each bunch. The outcome of this experiment is as follows.
#Rounds: 17 rounds
#Total Queries = (#Parallel threads) * (#Bunches per thread) * (#Queries per bunch) = 16 * 8 * 8388608 = 2^(30.000000)
#Queries per thread = (#Bunches per thread) * (#Queries per bunch) = 8 * 8388608 = 2^(26.000000)
[+] PRNG initialized to 0xC46CCF20
[+] PRNG initialized to 0xC46CCF4C
[+] PRNG initialized to 0xC46CCF15
[+] PRNG initialized to 0xC46CCF2B
[+] PRNG initialized to 0xC46CCF57
[+] PRNG initialized to 0xC46CCF83
[+] PRNG initialized to 0xC46CCEFF
[+] PRNG initialized to 0xC46CCF36
[+] PRNG initialized to 0xC46CCEDE
[+] PRNG initialized to 0xC46CCF6D
[+] PRNG initialized to 0xC46CCF0A
[+] PRNG initialized to 0xC46CCF41
[+] PRNG initialized to 0xC46CCEE9
[+] PRNG initialized to 0xC46CCEF4
[+] PRNG initialized to 0xC46CCF78
[+] PRNG initialized to 0xC46CCF62
time on clock: 28643.5992
time on wall: 1915.7244
sum = 11.000000
2^(-26.540568)
To do this test, you can use the code entitled dufu17r.c
which is located inside the folder ./Example2/Experiment2/.
In this experiment, we essentially divide 2^30
queries into 2^17
bunches of 2^13
boomerang queries where a new random tweakey is used in each bunch. We repeat this experiment 100 times and compute the average of outcomes. To see the outputs in more detail you can take a look at SKINNY-64-128-17r-MT2.md. A summary of outcomes is as follows.
##########################
A summary of all results:
2^(-26.19), 2^(-26.09), 2^(-27.00), 2^(-25.91), 2^(-27.19), 2^(-25.91), 2^(-26.42), 2^(-26.42), 2^(-27.68), 2^(-26.19), 2^(-26.00), 2^(-26.00), 2^(-26.54), 2^(-28.42), 2^(-27.42), 2^(-26.42), 2^(-26.54), 2^(-25.83), 2^(-26.42), 2^(-26.19), 2^(-26.68), 2^(-26.42), 2^(-27.68), 2^(-26.19), 2^(-26.42), 2^(-27.68), 2^(-26.30), 2^(-26.19), 2^(-26.54), 2^(-27.68), 2^(-26.42), 2^(-28.42), 2^(-26.09), 2^(-26.83), 2^(-26.68), 2^(-26.54), 2^(-26.83), 2^(-26.00), 2^(-26.30), 2^(-25.75), 2^(-26.68), 2^(-27.68), 2^(-27.00), 2^(-26.68), 2^(-26.83), 2^(-27.19), 2^(-26.54), 2^(-26.42), 2^(-27.19), 2^(-27.19), 2^(-27.19), 2^(-26.42), 2^(-26.09), 2^(-26.68), 2^(-26.68), 2^(-27.19), 2^(-26.54), 2^(-26.42), 2^(-26.30), 2^(-26.42), 2^(-26.19), 2^(-27.42), 2^(-26.83), 2^(-26.42), 2^(-26.19), 2^(-26.83), 2^(-26.00), 2^(-26.30), 2^(-26.09), 2^(-26.42), 2^(-25.91), 2^(-27.19), 2^(-26.54), 2^(-27.68), 2^(-26.30), 2^(-26.42), 2^(-26.83), 2^(-26.68), 2^(-27.00), 2^(-27.00), 2^(-27.19), 2^(-26.30), 2^(-26.83), 2^(-26.42), 2^(-26.83), 2^(-27.00), 2^(-26.83), 2^(-26.30), 2^(-26.68), 2^(-26.83), 2^(-26.42), 2^(-26.54), 2^(-25.83), 2^(-26.68), 2^(-26.54), 2^(-25.91), 2^(-25.75), 2^(-26.68), 2^(-25.91), 2^(-29.00),
##########################
Average = 2^(-26.5419)
To do this test, you can use the code entitled dufu17r.c
located inside the folder ./Example2/Experiment3/.
v = [2^(-26.19), 2^(-26.09), 2^(-27.00), 2^(-25.91), 2^(-27.19), 2^(-25.91), 2^(-26.42), 2^(-26.42), 2^(-27.68), 2^(-26.19), 2^(-26.00), 2^(-26.00), 2^(-26.54), 2^(-28.42), 2^(-27.42), 2^(-26.42), 2^(-26.54), 2^(-25.83), 2^(-26.42), 2^(-26.19), 2^(-26.68), 2^(-26.42), 2^(-27.68), 2^(-26.19), 2^(-26.42), 2^(-27.68), 2^(-26.30), 2^(-26.19), 2^(-26.54), 2^(-27.68), 2^(-26.42), 2^(-28.42), 2^(-26.09), 2^(-26.83), 2^(-26.68), 2^(-26.54), 2^(-26.83), 2^(-26.00), 2^(-26.30), 2^(-25.75), 2^(-26.68), 2^(-27.68), 2^(-27.00), 2^(-26.68), 2^(-26.83), 2^(-27.19), 2^(-26.54), 2^(-26.42), 2^(-27.19), 2^(-27.19), 2^(-27.19), 2^(-26.42), 2^(-26.09), 2^(-26.68), 2^(-26.68), 2^(-27.19), 2^(-26.54), 2^(-26.42), 2^(-26.30), 2^(-26.42), 2^(-26.19), 2^(-27.42), 2^(-26.83), 2^(-26.42), 2^(-26.19), 2^(-26.83), 2^(-26.00), 2^(-26.30), 2^(-26.09), 2^(-26.42), 2^(-25.91), 2^(-27.19), 2^(-26.54), 2^(-27.68), 2^(-26.30), 2^(-26.42), 2^(-26.83), 2^(-26.68), 2^(-27.00), 2^(-27.00), 2^(-27.19), 2^(-26.30), 2^(-26.83), 2^(-26.42), 2^(-26.83), 2^(-27.00), 2^(-26.83), 2^(-26.30), 2^(-26.68), 2^(-26.83), 2^(-26.42), 2^(-26.54), 2^(-25.83), 2^(-26.68), 2^(-26.54), 2^(-25.91), 2^(-25.75), 2^(-26.68), 2^(-25.91), 2^(-29.00)]
vr = r(v)
print(vr.summary())
print('\nMean: \t\t2^(%0.02f)' % float(log(mean(v), 2)))
print('Variance: \t%s' % variance(v))
print('STD: \t\t%s' % std(v))
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.863e-09 8.382e-09 1.025e-08 1.023e-08 1.210e-08 1.772e-08
Mean: 2^(-26.54)
Variance: 1.20822643871754e-17
STD: 3.47595517623220e-9