SHA-256 ラウンド数が多い=必ず全ビット反転率が攪拌ではない

bitcoin

調整は自由自在です。
つまり「ラウンド数が多い=必ず全ビット反転率が攪拌ではない」ということです。
以下の例です。Roundはそのままです。補助関数だけで、調整できました。

=== Avalanche Analysis SHA256 Custom
(Tuning auxiliary functions to force the bit-flip probability of specific bits to zero) ===
Pairs : 600000
Hash bits : 256
Mean distance : 125.009783 (expected 128.000000)
Variance : 92.044094 (expected 64.000000)
Chi^2 (Binom 0.5) : 8495080517.855687 dof=122 approx p=0.000e+00

— Hamming distance histogram (k : count) —
0 : 0
1 : 0
2 : 0
3 : 0
4 : 0
5 : 0
6 : 0
7 : 0
125 : 26070
126 : 25968
127 : 26051
128 : 25780
129 : 25026
130 : 24287
131 : 22393

249 : 0
250 : 0
251 : 0
252 : 0
253 : 0
254 : 0
255 : 0
256 : 0

— Per-bit flip rate (MSB-first) —
bit[0] : 0.499560
bit[1] : 0.499180
bit[2] : 0.501057
bit[3] : 0.500148
bit[4] : 0.500118
bit[5] : 0.500155
bit[6] : 0.500235
bit[7] : 0.499957
bit[8] : 0.501110
bit[9] : 0.499470
bit[10] : 0.499840
bit[11] : 0.499422
bit[12] : 0.499087
bit[13] : 0.500467
bit[14] : 0.500280
bit[15] : 0.500347
bit[16] : 0.499685
bit[17] : 0.500490
bit[18] : 0.499925
bit[19] : 0.499565
bit[20] : 0.500475
bit[21] : 0.499963
bit[22] : 0.500225
bit[23] : 0.501210
bit[24] : 0.498177
bit[25] : 0.500025
bit[26] : 0.499093
bit[27] : 0.500785
bit[28] : 0.000000
bit[29] : 0.000000
bit[30] : 0.000000
bit[31] : 0.000000
bit[32] : 0.499085
bit[33] : 0.501847
bit[34] : 0.500415
bit[35] : 0.499993
bit[36] : 0.499260
bit[37] : 0.499765
bit[38] : 0.500043
bit[39] : 0.499508
bit[40] : 0.499653
bit[41] : 0.500887
bit[42] : 0.500542
bit[43] : 0.500247
bit[44] : 0.500063
bit[45] : 0.500342
bit[46] : 0.499500
bit[47] : 0.499590
bit[48] : 0.500235
bit[49] : 0.499632
bit[50] : 0.499167
bit[51] : 0.500568
bit[52] : 0.501585
bit[53] : 0.500508
bit[54] : 0.501393
bit[55] : 0.500380
bit[56] : 0.500682
bit[57] : 0.500198
bit[58] : 0.500750
bit[59] : 0.501733
bit[60] : 0.500175
bit[61] : 0.500125
bit[62] : 0.500178
bit[63] : 0.500785
bit[64] : 0.499973
bit[65] : 0.499905
bit[66] : 0.499757
bit[67] : 0.500152
bit[68] : 0.499073
bit[69] : 0.499733
bit[70] : 0.499722
bit[71] : 0.499517
bit[72] : 0.500792
bit[73] : 0.500530
bit[74] : 0.500422
bit[75] : 0.499835
bit[76] : 0.500630
bit[77] : 0.501003
bit[78] : 0.499112
bit[79] : 0.499460
bit[80] : 0.500338
bit[81] : 0.499915
bit[82] : 0.500842
bit[83] : 0.500425
bit[84] : 0.500320
bit[85] : 0.500938
bit[86] : 0.500737
bit[87] : 0.499180
bit[88] : 0.498803
bit[89] : 0.500093
bit[90] : 0.499690
bit[91] : 0.498990
bit[92] : 0.498905
bit[93] : 0.499093
bit[94] : 0.500785
bit[95] : 0.000000
bit[96] : 0.499508
bit[97] : 0.499462
bit[98] : 0.500182
bit[99] : 0.500287
bit[100] : 0.499660
bit[101] : 0.501733
bit[102] : 0.500023
bit[103] : 0.499275
bit[104] : 0.499018
bit[105] : 0.499220
bit[106] : 0.498257
bit[107] : 0.499982
bit[108] : 0.500127
bit[109] : 0.500477
bit[110] : 0.500420
bit[111] : 0.500000
bit[112] : 0.500727
bit[113] : 0.500505
bit[114] : 0.500657
bit[115] : 0.499765
bit[116] : 0.500257
bit[117] : 0.499235
bit[118] : 0.500445
bit[119] : 0.499623
bit[120] : 0.499707
bit[121] : 0.500835
bit[122] : 0.499622
bit[123] : 0.498623
bit[124] : 0.500660
bit[125] : 0.499167
bit[126] : 0.499093
bit[127] : 0.500785
bit[128] : 0.499437
bit[129] : 0.500937
bit[130] : 0.500858
bit[131] : 0.500532
bit[132] : 0.499982
bit[133] : 0.500693
bit[134] : 0.499818
bit[135] : 0.500093
bit[136] : 0.499950
bit[137] : 0.501007
bit[138] : 0.500315
bit[139] : 0.499022
bit[140] : 0.500453
bit[141] : 0.500077
bit[142] : 0.499922
bit[143] : 0.500100
bit[144] : 0.501243
bit[145] : 0.500068
bit[146] : 0.500688
bit[147] : 0.499960
bit[148] : 0.500533
bit[149] : 0.500478
bit[150] : 0.501350
bit[151] : 0.499567
bit[152] : 0.499392
bit[153] : 0.499685
bit[154] : 0.499033
bit[155] : 0.499070
bit[156] : 0.498957
bit[157] : 0.500178
bit[158] : 0.500785
bit[159] : 0.000000
bit[160] : 0.499743
bit[161] : 0.500567
bit[162] : 0.500260
bit[163] : 0.500313
bit[164] : 0.500165
bit[165] : 0.499893
bit[166] : 0.499787
bit[167] : 0.499838
bit[168] : 0.498827
bit[169] : 0.500582
bit[170] : 0.499422
bit[171] : 0.501368
bit[172] : 0.499815
bit[173] : 0.499807
bit[174] : 0.500032
bit[175] : 0.500503
bit[176] : 0.500897
bit[177] : 0.499997
bit[178] : 0.500190
bit[179] : 0.499563
bit[180] : 0.498878
bit[181] : 0.499613
bit[182] : 0.499748
bit[183] : 0.499757
bit[184] : 0.501258
bit[185] : 0.500482
bit[186] : 0.500303
bit[187] : 0.499672
bit[188] : 0.499102
bit[189] : 0.498905
bit[190] : 0.499093
bit[191] : 0.500785
bit[192] : 0.501163
bit[193] : 0.499822
bit[194] : 0.500200
bit[195] : 0.499125
bit[196] : 0.499927
bit[197] : 0.500402
bit[198] : 0.500695
bit[199] : 0.500098
bit[200] : 0.499265
bit[201] : 0.500325
bit[202] : 0.500770
bit[203] : 0.500087
bit[204] : 0.500182
bit[205] : 0.500425
bit[206] : 0.499847
bit[207] : 0.498593
bit[208] : 0.500358
bit[209] : 0.500052
bit[210] : 0.499227
bit[211] : 0.500673
bit[212] : 0.499760
bit[213] : 0.500095
bit[214] : 0.499613
bit[215] : 0.501252
bit[216] : 0.500700
bit[217] : 0.499817
bit[218] : 0.500438
bit[219] : 0.500160
bit[220] : 0.498955
bit[221] : 0.500125
bit[222] : 0.500178
bit[223] : 0.500785
bit[224] : 0.500327
bit[225] : 0.499550
bit[226] : 0.500673
bit[227] : 0.500610
bit[228] : 0.499578
bit[229] : 0.500118
bit[230] : 0.499853
bit[231] : 0.499805
bit[232] : 0.499737
bit[233] : 0.499728
bit[234] : 0.499853
bit[235] : 0.499858
bit[236] : 0.500670
bit[237] : 0.499435
bit[238] : 0.499217
bit[239] : 0.500845
bit[240] : 0.500172
bit[241] : 0.500290
bit[242] : 0.499885
bit[243] : 0.500010
bit[244] : 0.499537
bit[245] : 0.500842
bit[246] : 0.498940
bit[247] : 0.500175
bit[248] : 0.500163
bit[249] : 0.498153
bit[250] : 0.499927
bit[251] : 0.500775
bit[252] : 0.500660
bit[253] : 0.499167
bit[254] : 0.499093
bit[255] : 0.500785

タイトルとURLをコピーしました