これまでに出してきた0.000000が存在するケースを合成すると、こうして32ビット間隔に移動させることができました。さらに、分散も64に近付いてきました。
これを何度も繰り返すと、比較的多くのビットを制御化に置きながら同時に雪崩効果を獲得していくことができます。
そこで、RoundとIVはオリジナルのままなので、いわゆる透明性の象徴であった「K定数」はそのままです。結局、補助関数のみでこれだけいじることができるのです。
これで、K定数だけではハッシュ関数の透明性は維持できない。
やはりハッシュ関数は開発者の意向や意思をダイレクトに組み込める構造物でした。
=== 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 : 124.500700 (expected 128.000000)
Variance : 62.399093 (expected 64.000000)
Chi^2 (Binom 0.5) : 123626.962643 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 : 30233
126 : 29994
127 : 28572
128 : 27488
129 : 25758
130 : 23727
131 : 21220
…
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.499073
bit[1] : 0.500193
bit[2] : 0.500232
bit[3] : 0.499695
bit[4] : 0.500090
bit[5] : 0.499987
bit[6] : 0.501350
bit[7] : 0.499052
bit[8] : 0.500918
bit[9] : 0.499770
bit[10] : 0.500582
bit[11] : 0.500737
bit[12] : 0.500462
bit[13] : 0.499260
bit[14] : 0.500930
bit[15] : 0.499090
bit[16] : 0.500557
bit[17] : 0.500007
bit[18] : 0.499415
bit[19] : 0.500955
bit[20] : 0.501500
bit[21] : 0.499035
bit[22] : 0.499823
bit[23] : 0.499932
bit[24] : 0.498993
bit[25] : 0.500470
bit[26] : 0.500588
bit[27] : 0.500410
bit[28] : 0.500053
bit[29] : 0.498930
bit[30] : 0.499640
bit[31] : 0.000000
bit[32] : 0.499625
bit[33] : 0.500845
bit[34] : 0.499842
bit[35] : 0.499820
bit[36] : 0.500860
bit[37] : 0.500483
bit[38] : 0.499527
bit[39] : 0.500935
bit[40] : 0.498925
bit[41] : 0.500715
bit[42] : 0.500233
bit[43] : 0.500515
bit[44] : 0.499420
bit[45] : 0.499008
bit[46] : 0.500080
bit[47] : 0.499820
bit[48] : 0.499925
bit[49] : 0.499878
bit[50] : 0.500475
bit[51] : 0.499132
bit[52] : 0.500578
bit[53] : 0.500288
bit[54] : 0.499395
bit[55] : 0.500375
bit[56] : 0.499767
bit[57] : 0.499420
bit[58] : 0.500020
bit[59] : 0.501387
bit[60] : 0.499832
bit[61] : 0.500205
bit[62] : 0.499935
bit[63] : 0.000000
bit[64] : 0.500192
bit[65] : 0.499835
bit[66] : 0.499117
bit[67] : 0.499765
bit[68] : 0.500958
bit[69] : 0.500642
bit[70] : 0.499972
bit[71] : 0.499647
bit[72] : 0.500382
bit[73] : 0.500160
bit[74] : 0.501012
bit[75] : 0.500115
bit[76] : 0.500167
bit[77] : 0.500700
bit[78] : 0.499578
bit[79] : 0.500218
bit[80] : 0.501513
bit[81] : 0.500422
bit[82] : 0.499522
bit[83] : 0.498692
bit[84] : 0.499570
bit[85] : 0.500463
bit[86] : 0.501402
bit[87] : 0.500403
bit[88] : 0.499532
bit[89] : 0.500323
bit[90] : 0.499940
bit[91] : 0.500162
bit[92] : 0.499950
bit[93] : 0.500000
bit[94] : 0.499643
bit[95] : 0.000000
bit[96] : 0.500040
bit[97] : 0.500690
bit[98] : 0.499375
bit[99] : 0.500765
bit[100] : 0.500983
bit[101] : 0.499092
bit[102] : 0.499838
bit[103] : 0.499220
bit[104] : 0.500127
bit[105] : 0.499773
bit[106] : 0.500240
bit[107] : 0.498960
bit[108] : 0.499348
bit[109] : 0.500503
bit[110] : 0.499963
bit[111] : 0.499238
bit[112] : 0.500850
bit[113] : 0.499488
bit[114] : 0.498987
bit[115] : 0.499900
bit[116] : 0.499962
bit[117] : 0.499418
bit[118] : 0.498310
bit[119] : 0.500728
bit[120] : 0.499685
bit[121] : 0.499995
bit[122] : 0.500207
bit[123] : 0.499748
bit[124] : 0.501330
bit[125] : 0.500557
bit[126] : 0.500438
bit[127] : 0.000000
bit[128] : 0.500930
bit[129] : 0.499940
bit[130] : 0.500333
bit[131] : 0.500475
bit[132] : 0.501028
bit[133] : 0.499453
bit[134] : 0.499502
bit[135] : 0.500485
bit[136] : 0.499382
bit[137] : 0.500328
bit[138] : 0.500125
bit[139] : 0.500000
bit[140] : 0.499673
bit[141] : 0.501250
bit[142] : 0.500448
bit[143] : 0.500245
bit[144] : 0.498780
bit[145] : 0.500340
bit[146] : 0.499505
bit[147] : 0.500340
bit[148] : 0.499373
bit[149] : 0.499420
bit[150] : 0.499817
bit[151] : 0.500705
bit[152] : 0.499947
bit[153] : 0.498398
bit[154] : 0.500307
bit[155] : 0.500398
bit[156] : 0.501633
bit[157] : 0.500055
bit[158] : 0.499953
bit[159] : 0.000000
bit[160] : 0.500283
bit[161] : 0.500607
bit[162] : 0.499258
bit[163] : 0.499742
bit[164] : 0.500018
bit[165] : 0.499965
bit[166] : 0.499947
bit[167] : 0.499395
bit[168] : 0.500127
bit[169] : 0.498752
bit[170] : 0.499463
bit[171] : 0.500028
bit[172] : 0.500467
bit[173] : 0.499190
bit[174] : 0.500012
bit[175] : 0.500763
bit[176] : 0.499265
bit[177] : 0.501282
bit[178] : 0.499355
bit[179] : 0.498985
bit[180] : 0.500232
bit[181] : 0.500355
bit[182] : 0.499955
bit[183] : 0.499905
bit[184] : 0.500352
bit[185] : 0.499362
bit[186] : 0.499930
bit[187] : 0.499932
bit[188] : 0.500317
bit[189] : 0.500462
bit[190] : 0.499460
bit[191] : 0.000000
bit[192] : 0.499413
bit[193] : 0.498973
bit[194] : 0.499990
bit[195] : 0.499453
bit[196] : 0.500238
bit[197] : 0.500522
bit[198] : 0.500405
bit[199] : 0.500127
bit[200] : 0.500640
bit[201] : 0.499912
bit[202] : 0.500632
bit[203] : 0.500060
bit[204] : 0.500780
bit[205] : 0.500912
bit[206] : 0.499785
bit[207] : 0.498842
bit[208] : 0.498552
bit[209] : 0.499665
bit[210] : 0.500928
bit[211] : 0.499615
bit[212] : 0.500212
bit[213] : 0.500403
bit[214] : 0.499637
bit[215] : 0.500060
bit[216] : 0.500488
bit[217] : 0.499127
bit[218] : 0.499622
bit[219] : 0.499962
bit[220] : 0.500102
bit[221] : 0.500277
bit[222] : 0.499678
bit[223] : 0.000000
bit[224] : 0.499753
bit[225] : 0.499448
bit[226] : 0.499925
bit[227] : 0.500777
bit[228] : 0.500097
bit[229] : 0.500732
bit[230] : 0.499503
bit[231] : 0.499872
bit[232] : 0.499718
bit[233] : 0.499845
bit[234] : 0.501045
bit[235] : 0.500068
bit[236] : 0.500055
bit[237] : 0.499847
bit[238] : 0.499530
bit[239] : 0.499613
bit[240] : 0.500060
bit[241] : 0.500450
bit[242] : 0.500245
bit[243] : 0.500110
bit[244] : 0.500553
bit[245] : 0.499695
bit[246] : 0.499675
bit[247] : 0.498733
bit[248] : 0.501200
bit[249] : 0.499302
bit[250] : 0.499948
bit[251] : 0.500268
bit[252] : 0.499730
bit[253] : 0.499435
bit[254] : 0.498908
bit[255] : 0.499067
