Cryptography-Digest Digest #36, Volume #13 Sun, 29 Oct 00 13:13:01 EST
Contents:
Re: Visual Basic ("Patterson Programming")
----------------------------------------------------------------------------
From: "Patterson Programming" <[EMAIL PROTECTED]>
Subject: Re: Visual Basic
Date: Sun, 29 Oct 2000 13:04:32 -0800
Attribute VB_Name = "BlowfishVB"
' Blowfish VB5/6 port
' Must compile (no overflow option) to work!
Option Explicit
' double round implementation
' use even rounds only
Const Rounds = 16, DoubleRounds = Rounds \ 2
' BufferWidth = multiple of BlockWidth
Const BlockWidth = 8, BufferWidth = 4096
Dim Pbox(Rounds + 1) As Long
Dim Sbox(3, 255) As Long
' ECB mode test, plaintext string in byte array
Sub Main()
Dim CryptBuffer() As Byte, i As Integer
Dim UserKey() As Byte, KeyBytes As Byte
Dim LeftWord As Long, RightWord As Long
Dim BufferPtr As Long, Blocks As Long
Dim ErrorFlag As Integer
' Note: 16 = 128-bits, 56 = 448-bits
KeyBytes = 16
ReDim UserKey(KeyBytes - 1) As Byte
' test key
For i = 0 To KeyBytes - 1: UserKey(i) = i: Next
Blowfish_init UserKey(), KeyBytes
' test data
ReDim CryptBuffer(BufferWidth - 1)
For i = 0 To BufferWidth - 1
CryptBuffer(i) = i Mod 256
Next
BufferPtr = 0
Blocks = (BufferWidth \ BlockWidth)
For i = 1 To Blocks
LeftWord = GetWord(CryptBuffer(), BufferPtr)
RightWord = GetWord(CryptBuffer(), BufferPtr + 4)
' test: encrypt, decrypt
Blowfish_encipher LeftWord, RightWord
Blowfish_decipher LeftWord, RightWord
PutWord LeftWord, CryptBuffer(), BufferPtr
PutWord RightWord, CryptBuffer(), BufferPtr + 4
BufferPtr = BufferPtr + BlockWidth
Next
ErrorFlag = 0
For i = 0 To BufferWidth - 1
If CryptBuffer(i) <> i Mod 256 Then ErrorFlag = -1
Next
If ErrorFlag Then
MsgBox "Encrypt/Decrypt Error!"
Else
MsgBox "Correct Encrypt/Decrypt"
End If
End Sub
Private Static Function F(ByVal x As Long) As Long
Dim a As Byte, b As Byte, c As Byte, d As Byte
Dim y As Long
d = (x And &HFF)
c = (x And &HFF00) \ 256
b = (x And &HFF0000) \ 65536
a = (x And &HFF000000) \ 16777216
y = (((Sbox(0, a) + Sbox(1, b)) Xor Sbox(2, c)) + Sbox(3, d))
F = y
End Function
Sub Blowfish_encipher(Xl As Long, Xr As Long)
Dim i As Integer, j As Integer
Dim swap As Long
j = 0
For i = 0 To DoubleRounds - 1
Xl = Xl Xor Pbox(j)
Xr = Xr Xor F(Xl)
Xr = Xr Xor Pbox(j + 1)
Xl = Xl Xor F(Xr)
j = j + 2
Next
swap = Xl: Xl = Xr: Xr = swap
Xr = Xr Xor Pbox(Rounds)
Xl = Xl Xor Pbox(Rounds + 1)
End Sub
Sub Blowfish_decipher(Xl As Long, Xr As Long)
Dim i As Integer, j As Integer
Dim swap As Long
Xl = Xl Xor Pbox(Rounds + 1)
Xr = Xr Xor Pbox(Rounds)
swap = Xl: Xl = Xr: Xr = swap
j = Rounds - 2
For i = 0 To DoubleRounds - 1
Xl = Xl Xor F(Xr)
Xr = Xr Xor Pbox(j + 1)
Xr = Xr Xor F(Xl)
Xl = Xl Xor Pbox(j)
j = j - 2
Next
End Sub
Sub Blowfish_init(key() As Byte, KeyBytes As Byte)
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim LongKey As Long
Dim dataX As Long
Dim datal As Long
Dim datar As Long
Read_Pi
j = 0
For i = 0 To Rounds + 1
dataX = 0
For k = 0 To 3
LongKey = key(j)
dataX = ((dataX * 256) Or LongKey)
j = j + 1
If (j >= KeyBytes) Then j = 0
Next
Pbox(i) = Pbox(i) Xor dataX
Next
datal = 0: datar = 0
For i = 0 To Rounds + 1 Step 2
Blowfish_encipher datal, datar
Pbox(i) = datal
Pbox(i + 1) = datar
Next
For i = 0 To 3
For j = 0 To 255 Step 2
Blowfish_encipher datal, datar
Sbox(i, j) = datal
Sbox(i, j + 1) = datar
Next
Next
End Sub
Private Static Function GetWord(CryptBuffer() As Byte, BufferPtr&) As
Long
Dim b1 As Byte, b2 As Byte, b3 As Byte, b4 As Byte
Dim w1&, w2&, w3&, w4&
b1 = CryptBuffer(BufferPtr&)
b2 = CryptBuffer(BufferPtr& + 1)
b3 = CryptBuffer(BufferPtr& + 2)
b4 = CryptBuffer(BufferPtr& + 3)
w1& = b4
w2& = b3: w2& = (w2& * &H100)
w3& = b2: w3& = (w3& * &H10000)
w4& = b1: w4& = (w4& * &H1000000)
GetWord = w1& Or w2& Or w3& Or w4&
End Function
Private Static Sub PutWord(wordptr&, CryptBuffer() As Byte, BufferPtr&)
Dim b1 As Byte, b2 As Byte, b3 As Byte, b4 As Byte
b1 = (wordptr& And &HFF000000) \ 16777216
b2 = (wordptr& And &HFF0000) \ 65536
b3 = (wordptr& And &HFF00) \ 256
b4 = (wordptr& And &HFF)
CryptBuffer(BufferPtr&) = b1
CryptBuffer(BufferPtr& + 1) = b2
CryptBuffer(BufferPtr& + 2) = b3
CryptBuffer(BufferPtr& + 3) = b4
End Sub
Sub Read_Pi
Pbox(0) = 608135816
Pbox(1) = -2052912941
Pbox(2) = 320440878
Pbox(3) = 57701188
Pbox(4) = -1542899678
Pbox(5) = 698298832
Pbox(6) = 137296536
Pbox(7) = -330404727
Pbox(8) = 1160258022
Pbox(9) = 953160567
Pbox(10) = -1101764913
Pbox(11) = 887688300
Pbox(12) = -1062458953
Pbox(13) = -914599715
Pbox(14) = 1065670069
Pbox(15) = -1253635817
Pbox(16) = -1843997223
Pbox(17) = -1988494565
Sbox(0, 0) = -785314906
Sbox(0, 1) = -1730169428
Sbox(0, 2) = 805139163
Sbox(0, 3) = -803545161
Sbox(0, 4) = -1193168915
Sbox(0, 5) = 1780907670
Sbox(0, 6) = -1166241723
Sbox(0, 7) = -248741991
Sbox(0, 8) = 614570311
Sbox(0, 9) = -1282315017
Sbox(0, 10) = 134345442
Sbox(0, 11) = -2054226922
Sbox(0, 12) = 1667834072
Sbox(0, 13) = 1901547113
Sbox(0, 14) = -1537671517
Sbox(0, 15) = -191677058
Sbox(0, 16) = 227898511
Sbox(0, 17) = 1921955416
Sbox(0, 18) = 1904987480
Sbox(0, 19) = -2112533778
Sbox(0, 20) = 2069144605
Sbox(0, 21) = -1034266187
Sbox(0, 22) = -1674521287
Sbox(0, 23) = 720527379
Sbox(0, 24) = -976113629
Sbox(0, 25) = 677414384
Sbox(0, 26) = -901678824
Sbox(0, 27) = -1193592593
Sbox(0, 28) = -1904616272
Sbox(0, 29) = 1614419982
Sbox(0, 30) = 1822297739
Sbox(0, 31) = -1340175810
Sbox(0, 32) = -686458943
Sbox(0, 33) = -1120842969
Sbox(0, 34) = 2024746970
Sbox(0, 35) = 1432378464
Sbox(0, 36) = -430627341
Sbox(0, 37) = -1437226092
Sbox(0, 38) = 1464375394
Sbox(0, 39) = 1676153920
Sbox(0, 40) = 1439316330
Sbox(0, 41) = 715854006
Sbox(0, 42) = -1261675468
Sbox(0, 43) = 289532110
Sbox(0, 44) = -1588296017
Sbox(0, 45) = 2087905683
Sbox(0, 46) = -1276242927
Sbox(0, 47) = 1668267050
Sbox(0, 48) = 732546397
Sbox(0, 49) = 1947742710
Sbox(0, 50) = -832815594
Sbox(0, 51) = -1685613794
Sbox(0, 52) = -1344882125
Sbox(0, 53) = 1814351708
Sbox(0, 54) = 2050118529
Sbox(0, 55) = 680887927
Sbox(0, 56) = 999245976
Sbox(0, 57) = 1800124847
Sbox(0, 58) = -994056165
Sbox(0, 59) = 1713906067
Sbox(0, 60) = 1641548236
Sbox(0, 61) = -81679983
Sbox(0, 62) = 1216130144
Sbox(0, 63) = 1575780402
Sbox(0, 64) = -276538019
Sbox(0, 65) = -377129551
Sbox(0, 66) = -601480446
Sbox(0, 67) = -345695352
Sbox(0, 68) = 596196993
Sbox(0, 69) = -745100091
Sbox(0, 70) = 258830323
Sbox(0, 71) = -2081144263
Sbox(0, 72) = 772490370
Sbox(0, 73) = -1534844924
Sbox(0, 74) = 1774776394
Sbox(0, 75) = -1642095778
Sbox(0, 76) = 566650946
Sbox(0, 77) = -152474470
Sbox(0, 78) = 1728879713
Sbox(0, 79) = -1412200208
Sbox(0, 80) = 1783734482
Sbox(0, 81) = -665571480
Sbox(0, 82) = -1777359064
Sbox(0, 83) = -1420741725
Sbox(0, 84) = 1861159788
Sbox(0, 85) = 326777828
Sbox(0, 86) = -1170476976
Sbox(0, 87) = 2130389656
Sbox(0, 88) = -1578015459
Sbox(0, 89) = 967770486
Sbox(0, 90) = 1724537150
Sbox(0, 91) = -2109534584
Sbox(0, 92) = -1930525159
Sbox(0, 93) = 1164943284
Sbox(0, 94) = 2105845187
Sbox(0, 95) = 998989502
Sbox(0, 96) = -529566248
Sbox(0, 97) = -2050940813
Sbox(0, 98) = 1075463327
Sbox(0, 99) = 1455516326
Sbox(0, 100) = 1322494562
Sbox(0, 101) = 910128902
Sbox(0, 102) = 469688178
Sbox(0, 103) = 1117454909
Sbox(0, 104) = 936433444
Sbox(0, 105) = -804646328
Sbox(0, 106) = -619713837
Sbox(0, 107) = 1240580251
Sbox(0, 108) = 122909385
Sbox(0, 109) = -2137449605
Sbox(0, 110) = 634681816
Sbox(0, 111) = -152510729
Sbox(0, 112) = -469872614
Sbox(0, 113) = -1233564613
Sbox(0, 114) = -1754472259
Sbox(0, 115) = 79693498
Sbox(0, 116) = -1045868618
Sbox(0, 117) = 1084186820
Sbox(0, 118) = 1583128258
Sbox(0, 119) = 426386531
Sbox(0, 120) = 1761308591
Sbox(0, 121) = 1047286709
Sbox(0, 122) = 322548459
Sbox(0, 123) = 995290223
Sbox(0, 124) = 1845252383
Sbox(0, 125) = -1691314900
Sbox(0, 126) = -863943356
Sbox(0, 127) = -1352745719
Sbox(0, 128) = -1092366332
Sbox(0, 129) = -567063811
Sbox(0, 130) = 1712269319
Sbox(0, 131) = 422464435
Sbox(0, 132) = -1060394921
Sbox(0, 133) = 1170764815
Sbox(0, 134) = -771006663
Sbox(0, 135) = -1177289765
Sbox(0, 136) = 1434042557
Sbox(0, 137) = 442511882
Sbox(0, 138) = -694091578
Sbox(0, 139) = 1076654713
Sbox(0, 140) = 1738483198
Sbox(0, 141) = -81812532
Sbox(0, 142) = -1901729288
Sbox(0, 143) = -617471240
Sbox(0, 144) = 1014306527
Sbox(0, 145) = -43947243
Sbox(0, 146) = 793779912
Sbox(0, 147) = -1392160085
Sbox(0, 148) = 842905082
Sbox(0, 149) = -48003232
Sbox(0, 150) = 1395751752
Sbox(0, 151) = 1040244610
Sbox(0, 152) = -1638115397
Sbox(0, 153) = -898659168
Sbox(0, 154) = 445077038
Sbox(0, 155) = -552113701
Sbox(0, 156) = -717051658
Sbox(0, 157) = 679411651
Sbox(0, 158) = -1402522938
Sbox(0, 159) = -1940957837
Sbox(0, 160) = 1767581616
Sbox(0, 161) = -1144366904
Sbox(0, 162) = -503340195
Sbox(0, 163) = -1192226400
Sbox(0, 164) = 284835224
Sbox(0, 165) = -48135240
Sbox(0, 166) = 1258075500
Sbox(0, 167) = 768725851
Sbox(0, 168) = -1705778055
Sbox(0, 169) = -1225243291
Sbox(0, 170) = -762426948
Sbox(0, 171) = 1274779536
Sbox(0, 172) = -505548070
Sbox(0, 173) = -1530167757
Sbox(0, 174) = 1660621633
Sbox(0, 175) = -823867672
Sbox(0, 176) = -283063590
Sbox(0, 177) = 913787905
Sbox(0, 178) = -797008130
Sbox(0, 179) = 737222580
Sbox(0, 180) = -1780753843
Sbox(0, 181) = -1366257256
Sbox(0, 182) = -357724559
Sbox(0, 183) = 1804850592
Sbox(0, 184) = -795946544
Sbox(0, 185) = -1345903136
Sbox(0, 186) = -1908647121
Sbox(0, 187) = -1904896841
Sbox(0, 188) = -1879645445
Sbox(0, 189) = -233690268
Sbox(0, 190) = -2004305902
Sbox(0, 191) = -1878134756
Sbox(0, 192) = 1336762016
Sbox(0, 193) = 1754252060
Sbox(0, 194) = -774901359
Sbox(0, 195) = -1280786003
Sbox(0, 196) = 791618072
Sbox(0, 197) = -1106372745
Sbox(0, 198) = -361419266
Sbox(0, 199) = -1962795103
Sbox(0, 200) = -442446833
Sbox(0, 201) = -1250986776
Sbox(0, 202) = 413987798
Sbox(0, 203) = -829824359
Sbox(0, 204) = -1264037920
Sbox(0, 205) = -49028937
Sbox(0, 206) = 2093235073
Sbox(0, 207) = -760370983
Sbox(0, 208) = 375366246
Sbox(0, 209) = -2137688315
Sbox(0, 210) = -1815317740
Sbox(0, 211) = 555357303
Sbox(0, 212) = -424861595
Sbox(0, 213) = 2008414854
Sbox(0, 214) = -950779147
Sbox(0, 215) = -73583153
Sbox(0, 216) = -338841844
Sbox(0, 217) = 2067696032
Sbox(0, 218) = -700376109
Sbox(0, 219) = -1373733303
Sbox(0, 220) = 2428461
Sbox(0, 221) = 544322398
Sbox(0, 222) = 577241275
Sbox(0, 223) = 1471733935
Sbox(0, 224) = 610547355
Sbox(0, 225) = -267798242
Sbox(0, 226) = 1432588573
Sbox(0, 227) = 1507829418
Sbox(0, 228) = 2025931657
Sbox(0, 229) = -648391809
Sbox(0, 230) = 545086370
Sbox(0, 231) = 48609733
Sbox(0, 232) = -2094660746
Sbox(0, 233) = 1653985193
Sbox(0, 234) = 298326376
Sbox(0, 235) = 1316178497
Sbox(0, 236) = -1287180854
Sbox(0, 237) = 2064951626
Sbox(0, 238) = 458293330
Sbox(0, 239) = -1705826027
Sbox(0, 240) = -703637697
Sbox(0, 241) = -1130641692
Sbox(0, 242) = 727753846
Sbox(0, 243) = -2115603456
Sbox(0, 244) = 146436021
Sbox(0, 245) = 1461446943
Sbox(0, 246) = -224990101
Sbox(0, 247) = 705550613
Sbox(0, 248) = -1235000031
Sbox(0, 249) = -407242314
Sbox(0, 250) = -13368018
Sbox(0, 251) = -981117340
Sbox(0, 252) = 1404054877
Sbox(0, 253) = -1449160799
Sbox(0, 254) = 146425753
Sbox(0, 255) = 1854211946
Sbox(1, 0) = 1266315497
Sbox(1, 1) = -1246549692
Sbox(1, 2) = -613086930
Sbox(1, 3) = -1004984797
Sbox(1, 4) = -1385257296
Sbox(1, 5) = 1235738493
Sbox(1, 6) = -1662099272
Sbox(1, 7) = -1880247706
Sbox(1, 8) = -324367247
Sbox(1, 9) = 1771706367
Sbox(1, 10) = 1449415276
Sbox(1, 11) = -1028546847
Sbox(1, 12) = 422970021
Sbox(1, 13) = 1963543593
Sbox(1, 14) = -1604775104
Sbox(1, 15) = -468174274
Sbox(1, 16) = 1062508698
Sbox(1, 17) = 1531092325
Sbox(1, 18) = 1804592342
Sbox(1, 19) = -1711849514
Sbox(1, 20) = -1580033017
Sbox(1, 21) = -269995787
Sbox(1, 22) = 1294809318
Sbox(1, 23) = -265986623
Sbox(1, 24) = 1289560198
Sbox(1, 25) = -2072974554
Sbox(1, 26) = 1669523910
Sbox(1, 27) = 35572830
Sbox(1, 28) = 157838143
Sbox(1, 29) = 1052438473
Sbox(1, 30) = 1016535060
Sbox(1, 31) = 1802137761
Sbox(1, 32) = 1753167236
Sbox(1, 33) = 1386275462
Sbox(1, 34) = -1214491899
Sbox(1, 35) = -1437595849
Sbox(1, 36) = 1040679964
Sbox(1, 37) = 2145300060
Sbox(1, 38) = -1904392980
Sbox(1, 39) = 1461121720
Sbox(1, 40) = -1338320329
Sbox(1, 41) = -263189491
Sbox(1, 42) = -266592508
Sbox(1, 43) = 33600511
Sbox(1, 44) = -1374882534
Sbox(1, 45) = 1018524850
Sbox(1, 46) = 629373528
Sbox(1, 47) = -603381315
Sbox(1, 48) = -779021319
Sbox(1, 49) = 2091462646
Sbox(1, 50) = -1808644237
Sbox(1, 51) = 586499841
Sbox(1, 52) = 988145025
Sbox(1, 53) = 935516892
Sbox(1, 54) = -927631820
Sbox(1, 55) = -1695294041
Sbox(1, 56) = -1455136442
Sbox(1, 57) = 265290510
Sbox(1, 58) = -322386114
Sbox(1, 59) = -1535828415
Sbox(1, 60) = -499593831
Sbox(1, 61) = 1005194799
Sbox(1, 62) = 847297441
Sbox(1, 63) = 406762289
Sbox(1, 64) = 1314163512
Sbox(1, 65) = 1332590856
Sbox(1, 66) = 1866599683
Sbox(1, 67) = -167115585
Sbox(1, 68) = 750260880
Sbox(1, 69) = 613907577
Sbox(1, 70) = 1450815602
Sbox(1, 71) = -1129346641
Sbox(1, 72) = -560302305
Sbox(1, 73) = -644675568
Sbox(1, 74) = -1282691566
Sbox(1, 75) = -590397650
Sbox(1, 76) = 1427272223
Sbox(1, 77) = 778793252
Sbox(1, 78) = 1343938022
Sbox(1, 79) = -1618686585
Sbox(1, 80) = 2052605720
Sbox(1, 81) = 1946737175
Sbox(1, 82) = -1130390852
Sbox(1, 83) = -380928628
Sbox(1, 84) = -327488454
Sbox(1, 85) = -612033030
Sbox(1, 86) = 1661551462
Sbox(1, 87) = -1000029230
Sbox(1, 88) = -283371449
Sbox(1, 89) = 840292616
Sbox(1, 90) = -582796489
Sbox(1, 91) = 616741398
Sbox(1, 92) = 312560963
Sbox(1, 93) = 711312465
Sbox(1, 94) = 1351876610
Sbox(1, 95) = 322626781
Sbox(1, 96) = 1910503582
Sbox(1, 97) = 271666773
Sbox(1, 98) = -2119403562
Sbox(1, 99) = 1594956187
Sbox(1, 100) = 70604529
Sbox(1, 101) = -677132437
Sbox(1, 102) = 1007753275
Sbox(1, 103) = 1495573769
Sbox(1, 104) = -225450259
Sbox(1, 105) = -1745748998
Sbox(1, 106) = -1631928532
Sbox(1, 107) = 504708206
Sbox(1, 108) = -2031925904
Sbox(1, 109) = -353800271
Sbox(1, 110) = -2045878774
Sbox(1, 111) = 1514023603
Sbox(1, 112) = 1998579484
Sbox(1, 113) = 1312622330
Sbox(1, 114) = 694541497
Sbox(1, 115) = -1712906993
Sbox(1, 116) = -2143385130
Sbox(1, 117) = 1382467621
Sbox(1, 118) = 776784248
Sbox(1, 119) = -1676627094
Sbox(1, 120) = -971698502
Sbox(1, 121) = -1797068168
Sbox(1, 122) = -1510196141
Sbox(1, 123) = 503983604
Sbox(1, 124) = -218673497
Sbox(1, 125) = 907881277
Sbox(1, 126) = 423175695
Sbox(1, 127) = 432175456
Sbox(1, 128) = 1378068232
Sbox(1, 129) = -149744970
Sbox(1, 130) = -340918674
Sbox(1, 131) = -356311194
Sbox(1, 132) = -474200683
Sbox(1, 133) = -1501837181
Sbox(1, 134) = -1317062703
Sbox(1, 135) = 26017576
Sbox(1, 136) = -1020076561
Sbox(1, 137) = -1100195163
Sbox(1, 138) = 1700274565
Sbox(1, 139) = 1756076034
Sbox(1, 140) = -288447217
Sbox(1, 141) = -617638597
Sbox(1, 142) = 720338349
Sbox(1, 143) = 1533947780
Sbox(1, 144) = 354530856
Sbox(1, 145) = 688349552
Sbox(1, 146) = -321042571
Sbox(1, 147) = 1637815568
Sbox(1, 148) = 332179504
Sbox(1, 149) = -345916010
Sbox(1, 150) = 53804574
Sbox(1, 151) = -1442618417
Sbox(1, 152) = -1250730864
Sbox(1, 153) = 1282449977
Sbox(1, 154) = -711025141
Sbox(1, 155) = -877994476
Sbox(1, 156) = -288586052
Sbox(1, 157) = 1617046695
Sbox(1, 158) = -1666491221
Sbox(1, 159) = -1292663698
Sbox(1, 160) = 1686838959
Sbox(1, 161) = 431878346
Sbox(1, 162) = -1608291911
Sbox(1, 163) = 1700445008
Sbox(1, 164) = 1080580658
Sbox(1, 165) = 1009431731
Sbox(1, 166) = 832498133
Sbox(1, 167) = -1071531785
Sbox(1, 168) = -1688990951
Sbox(1, 169) = -2023776103
Sbox(1, 170) = -1778935426
Sbox(1, 171) = 1648197032
Sbox(1, 172) = -130578278
Sbox(1, 173) = -1746719369
Sbox(1, 174) = 300782431
Sbox(1, 175) = 375919233
Sbox(1, 176) = 238389289
Sbox(1, 177) = -941219882
Sbox(1, 178) = -1763778655
Sbox(1, 179) = 2019080857
Sbox(1, 180) = 1475708069
Sbox(1, 181) = 455242339
Sbox(1, 182) = -1685863425
Sbox(1, 183) = 448939670
Sbox(1, 184) = -843904277
Sbox(1, 185) = 1395535956
Sbox(1, 186) = -1881585436
Sbox(1, 187) = 1841049896
Sbox(1, 188) = 1491858159
Sbox(1, 189) = 885456874
Sbox(1, 190) = -30872223
Sbox(1, 191) = -293847949
Sbox(1, 192) = 1565136089
Sbox(1, 193) = -396052509
Sbox(1, 194) = 1108368660
Sbox(1, 195) = 540939232
Sbox(1, 196) = 1173283510
Sbox(1, 197) = -1549095958
Sbox(1, 198) = -613658859
Sbox(1, 199) = -87339056
Sbox(1, 200) = -951913406
Sbox(1, 201) = -278217803
Sbox(1, 202) = 1699691293
Sbox(1, 203) = 1103962373
Sbox(1, 204) = -669091426
Sbox(1, 205) = -2038084153
Sbox(1, 206) = -464828566
Sbox(1, 207) = 1031889488
Sbox(1, 208) = -815619598
Sbox(1, 209) = 1535977030
Sbox(1, 210) = -58162272
Sbox(1, 211) = -1043876189
Sbox(1, 212) = 2132092099
Sbox(1, 213) = 1774941330
Sbox(1, 214) = 1199868427
Sbox(1, 215) = 1452454533
Sbox(1, 216) = 157007616
Sbox(1, 217) = -1390851939
Sbox(1, 218) = 342012276
Sbox(1, 219) = 595725824
Sbox(1, 220) = 1480756522
Sbox(1, 221) = 206960106
Sbox(1, 222) = 497939518
Sbox(1, 223) = 591360097
Sbox(1, 224) = 863170706
Sbox(1, 225) = -1919713727
Sbox(1, 226) = -698356495
Sbox(1, 227) = 1814182875
Sbox(1, 228) = 2094937945
Sbox(1, 229) = -873565088
Sbox(1, 230) = 1082520231
Sbox(1, 231) = -831049106
Sbox(1, 232) = -1509457788
Sbox(1, 233) = 435703966
Sbox(1, 234) = -386934699
Sbox(1, 235) = 1641649973
Sbox(1, 236) = -1452693590
Sbox(1, 237) = -989067582
Sbox(1, 238) = 1510255612
Sbox(1, 239) = -2146710820
Sbox(1, 240) = -1639679442
Sbox(1, 241) = -1018874748
Sbox(1, 242) = -36346107
Sbox(1, 243) = 236887753
Sbox(1, 244) = -613164077
Sbox(1, 245) = 274041037
Sbox(1, 246) = 1734335097
Sbox(1, 247) = -479771840
Sbox(1, 248) = -976997275
Sbox(1, 249) = 1899903192
Sbox(1, 250) = 1026095262
Sbox(1, 251) = -244449504
Sbox(1, 252) = 356393447
Sbox(1, 253) = -1884275382
Sbox(1, 254) = -421290197
Sbox(1, 255) = -612127241
Sbox(2, 0) = -381855128
Sbox(2, 1) = -1803468553
Sbox(2, 2) = -162781668
Sbox(2, 3) = -1805047500
Sbox(2, 4) = 1091903735
Sbox(2, 5) = 1979897079
Sbox(2, 6) = -1124832466
Sbox(2, 7) = -727580568
Sbox(2, 8) = -737663887
Sbox(2, 9) = 857797738
Sbox(2, 10) = 1136121015
Sbox(2, 11) = 1342202287
Sbox(2, 12) = 507115054
Sbox(2, 13) = -1759230650
Sbox(2, 14) = 337727348
Sbox(2, 15) = -1081374656
Sbox(2, 16) = 1301675037
Sbox(2, 17) = -1766485585
Sbox(2, 18) = 1895095763
Sbox(2, 19) = 1721773893
Sbox(2, 20) = -1078195732
Sbox(2, 21) = 62756741
Sbox(2, 22) = 2142006736
Sbox(2, 23) = 835421444
Sbox(2, 24) = -1762973773
Sbox(2, 25) = 1442658625
Sbox(2, 26) = -635090970
Sbox(2, 27) = -1412822374
Sbox(2, 28) = 676362277
Sbox(2, 29) = 1392781812
Sbox(2, 30) = 170690266
Sbox(2, 31) = -373920261
Sbox(2, 32) = 1759253602
Sbox(2, 33) = -683120384
Sbox(2, 34) = 1745797284
Sbox(2, 35) = 664899054
Sbox(2, 36) = 1329594018
Sbox(2, 37) = -393761396
Sbox(2, 38) = -1249058810
Sbox(2, 39) = 2062866102
Sbox(2, 40) = -1429332356
Sbox(2, 41) = -751345684
Sbox(2, 42) = -830954599
Sbox(2, 43) = 1080764994
Sbox(2, 44) = 553557557
Sbox(2, 45) = -638351943
Sbox(2, 46) = -298199125
Sbox(2, 47) = 991055499
Sbox(2, 48) = 499776247
Sbox(2, 49) = 1265440854
Sbox(2, 50) = 648242737
Sbox(2, 51) = -354183246
Sbox(2, 52) = 980351604
Sbox(2, 53) = -581221582
Sbox(2, 54) = 1749149687
Sbox(2, 55) = -898096901
Sbox(2, 56) = -83167922
Sbox(2, 57) = -654396521
Sbox(2, 58) = 1161844396
Sbox(2, 59) = -1169648345
Sbox(2, 60) = 1431517754
Sbox(2, 61) = 545492359
Sbox(2, 62) = -26498633
Sbox(2, 63) = -795437749
Sbox(2, 64) = 1437099964
Sbox(2, 65) = -1592419752
Sbox(2, 66) = -861329053
Sbox(2, 67) = -1713251533
Sbox(2, 68) = -1507177898
Sbox(2, 69) = 1060185593
Sbox(2, 70) = 1593081372
Sbox(2, 71) = -1876348548
Sbox(2, 72) = -34019326
Sbox(2, 73) = 69676912
Sbox(2, 74) = -2135222948
Sbox(2, 75) = 86519011
Sbox(2, 76) = -1782508216
Sbox(2, 77) = -456757982
Sbox(2, 78) = 1220612927
Sbox(2, 79) = -955283748
Sbox(2, 80) = 133810670
Sbox(2, 81) = 1090789135
Sbox(2, 82) = 1078426020
Sbox(2, 83) = 1569222167
Sbox(2, 84) = 845107691
Sbox(2, 85) = -711212847
Sbox(2, 86) = -222510705
Sbox(2, 87) = 1091646820
Sbox(2, 88) = 628848692
Sbox(2, 89) = 1613405280
Sbox(2, 90) = -537335645
Sbox(2, 91) = 526609435
Sbox(2, 92) = 236106946
Sbox(2, 93) = 48312990
Sbox(2, 94) = -1352249391
Sbox(2, 95) = -892239595
Sbox(2, 96) = 1797494240
Sbox(2, 97) = 859738849
Sbox(2, 98) = 992217954
Sbox(2, 99) = -289490654
Sbox(2, 100) = -2051890674
Sbox(2, 101) = -424014439
Sbox(2, 102) = -562951028
Sbox(2, 103) = 765654824
Sbox(2, 104) = -804095931
Sbox(2, 105) = -1783130883
Sbox(2, 106) = 1685915746
Sbox(2, 107) = -405998096
Sbox(2, 108) = 1414112111
Sbox(2, 109) = -2021832454
Sbox(2, 110) = -1013056217
Sbox(2, 111) = -214004450
Sbox(2, 112) = 172450625
Sbox(2, 113) = -1724973196
Sbox(2, 114) = 980381355
Sbox(2, 115) = -185008841
Sbox(2, 116) = -1475158944
Sbox(2, 117) = -1578377736
Sbox(2, 118) = -1726226100
Sbox(2, 119) = -613520627
Sbox(2, 120) = -964995824
Sbox(2, 121) = 1835478071
Sbox(2, 122) = 660984891
Sbox(2, 123) = -590288892
Sbox(2, 124) = -248967737
Sbox(2, 125) = -872349789
Sbox(2, 126) = -1254551662
Sbox(2, 127) = 1762651403
Sbox(2, 128) = 1719377915
Sbox(2, 129) = -824476260
Sbox(2, 130) = -1601057013
Sbox(2, 131) = -652910941
Sbox(2, 132) = -1156370552
Sbox(2, 133) = 1364962596
Sbox(2, 134) = 2073328063
Sbox(2, 135) = 1983633131
Sbox(2, 136) = 926494387
Sbox(2, 137) = -871278215
Sbox(2, 138) = -2144935273
Sbox(2, 139) = -198299347
Sbox(2, 140) = 1749200295
Sbox(2, 141) = -966120645
Sbox(2, 142) = 309677260
Sbox(2, 143) = 2016342300
Sbox(2, 144) = 1779581495
Sbox(2, 145) = -1215147545
Sbox(2, 146) = 111262694
Sbox(2, 147) = 1274766160
Sbox(2, 148) = 443224088
Sbox(2, 149) = 298511866
Sbox(2, 150) = 1025883608
Sbox(2, 151) = -488520759
Sbox(2, 152) = 1145181785
Sbox(2, 153) = 168956806
Sbox(2, 154) = -653464466
Sbox(2, 155) = -710153686
Sbox(2, 156) = 1689216846
Sbox(2, 157) = -628709281
Sbox(2, 158) = -1094719096
Sbox(2, 159) = 1692713982
Sbox(2, 160) = -1648590761
Sbox(2, 161) = -252198778
Sbox(2, 162) = 1618508792
Sbox(2, 163) = 1610833997
Sbox(2, 164) = -771914938
Sbox(2, 165) = -164094032
Sbox(2, 166) = 2001055236
Sbox(2, 167) = -684262196
Sbox(2, 168) = -2092799181
Sbox(2, 169) = -266425487
Sbox(2, 170) = -1333771897
Sbox(2, 171) = 1006657119
Sbox(2, 172) = 2006996926
Sbox(2, 173) = -1108824540
Sbox(2, 174) = 1430667929
Sbox(2, 175) = -1084739999
Sbox(2, 176) = 1314452623
Sbox(2, 177) = -220332638
Sbox(2, 178) = -193663176
Sbox(2, 179) = -2021016126
Sbox(2, 180) = 1399257539
Sbox(2, 181) = -927756684
Sbox(2, 182) = -1267338667
Sbox(2, 183) = 1190975929
Sbox(2, 184) = 2062231137
Sbox(2, 185) = -1960976508
Sbox(2, 186) = -2073424263
Sbox(2, 187) = -1856006686
Sbox(2, 188) = 1181637006
Sbox(2, 189) = 548689776
Sbox(2, 190) = -1932175983
Sbox(2, 191) = -922558900
Sbox(2, 192) = -1190417183
Sbox(2, 193) = -1149106736
Sbox(2, 194) = 296247880
Sbox(2, 195) = 1970579870
Sbox(2, 196) = -1216407114
Sbox(2, 197) = -525738999
Sbox(2, 198) = 1714227617
Sbox(2, 199) = -1003338189
Sbox(2, 200) = -396747006
Sbox(2, 201) = 166772364
Sbox(2, 202) = 1251581989
Sbox(2, 203) = 493813264
Sbox(2, 204) = 448347421
Sbox(2, 205) = 195405023
Sbox(2, 206) = -1584991729
Sbox(2, 207) = 677966185
Sbox(2, 208) = -591930749
Sbox(2, 209) = 1463355134
Sbox(2, 210) = -1578971493
Sbox(2, 211) = 1338867538
Sbox(2, 212) = 1343315457
Sbox(2, 213) = -1492745222
Sbox(2, 214) = -1610435132
Sbox(2, 215) = 233230375
Sbox(2, 216) = -1694987225
Sbox(2, 217) = 2000651841
Sbox(2, 218) = -1017099258
Sbox(2, 219) = 1638401717
Sbox(2, 220) = -266896856
Sbox(2, 221) = -1057650976
Sbox(2, 222) = 6314154
Sbox(2, 223) = 819756386
Sbox(2, 224) = 300326615
Sbox(2, 225) = 590932579
Sbox(2, 226) = 1405279636
Sbox(2, 227) = -1027467724
Sbox(2, 228) = -1144263082
Sbox(2, 229) = -1866680610
Sbox(2, 230) = -335774303
Sbox(2, 231) = -833020554
Sbox(2, 232) = 1862657033
Sbox(2, 233) = 1266418056
Sbox(2, 234) = 963775037
Sbox(2, 235) = 2089974820
Sbox(2, 236) = -2031914401
Sbox(2, 237) = 1917689273
Sbox(2, 238) = 448879540
Sbox(2, 239) = -744572676
Sbox(2, 240) = -313240200
Sbox(2, 241) = 150775221
Sbox(2, 242) = -667058989
Sbox(2, 243) = 1303187396
Sbox(2, 244) = 508620638
Sbox(2, 245) = -1318983944
Sbox(2, 246) = -1568336679
Sbox(2, 247) = 1817252668
Sbox(2, 248) = 1876281319
Sbox(2, 249) = 1457606340
Sbox(2, 250) = 908771278
Sbox(2, 251) = -574175177
Sbox(2, 252) = -677760460
Sbox(2, 253) = -1838972398
Sbox(2, 254) = 1729034894
Sbox(2, 255) = 1080033504
Sbox(3, 0) = 976866871
Sbox(3, 1) = -738527793
Sbox(3, 2) = -1413318857
Sbox(3, 3) = 1522871579
Sbox(3, 4) = 1555064734
Sbox(3, 5) = 1336096578
Sbox(3, 6) = -746444992
Sbox(3, 7) = -1715692610
Sbox(3, 8) = -720269667
Sbox(3, 9) = -1089506539
Sbox(3, 10) = -701686658
Sbox(3, 11) = -956251013
Sbox(3, 12) = -1215554709
Sbox(3, 13) = 564236357
Sbox(3, 14) = -1301368386
Sbox(3, 15) = 1781952180
Sbox(3, 16) = 1464380207
Sbox(3, 17) = -1131123079
Sbox(3, 18) = -962365742
Sbox(3, 19) = 1699332808
Sbox(3, 20) = 1393555694
Sbox(3, 21) = 1183702653
Sbox(3, 22) = -713881059
Sbox(3, 23) = 1288719814
Sbox(3, 24) = 691649499
Sbox(3, 25) = -1447410096
Sbox(3, 26) = -1399511320
Sbox(3, 27) = -1101077756
Sbox(3, 28) = -1577396752
Sbox(3, 29) = 1781354906
Sbox(3, 30) = 1676643554
Sbox(3, 31) = -1702433246
Sbox(3, 32) = -1064713544
Sbox(3, 33) = 1126444790
Sbox(3, 34) = -1524759638
Sbox(3, 35) = -1661808476
Sbox(3, 36) = -2084544070
Sbox(3, 37) = -1679201715
Sbox(3, 38) = -1880812208
Sbox(3, 39) = -1167828010
Sbox(3, 40) = 673620729
Sbox(3, 41) = -1489356063
Sbox(3, 42) = 1269405062
Sbox(3, 43) = -279616791
Sbox(3, 44) = -953159725
Sbox(3, 45) = -145557542
Sbox(3, 46) = 1057255273
Sbox(3, 47) = 2012875353
Sbox(3, 48) = -2132498155
Sbox(3, 49) = -2018474495
Sbox(3, 50) = -1693849939
Sbox(3, 51) = 993977747
Sbox(3, 52) = -376373926
Sbox(3, 53) = -1640704105
Sbox(3, 54) = 753973209
Sbox(3, 55) = 36408145
Sbox(3, 56) = -1764381638
Sbox(3, 57) = 25011837
Sbox(3, 58) = -774947114
Sbox(3, 59) = 2088578344
Sbox(3, 60) = 530523599
Sbox(3, 61) = -1376601957
Sbox(3, 62) = 1524020338
Sbox(3, 63) = 1518925132
Sbox(3, 64) = -534139791
Sbox(3, 65) = -535190042
Sbox(3, 66) = 1202760957
Sbox(3, 67) = -309069157
Sbox(3, 68) = -388774771
Sbox(3, 69) = 674977740
Sbox(3, 70) = -120232407
Sbox(3, 71) = 2031300136
Sbox(3, 72) = 2019492241
Sbox(3, 73) = -311074731
Sbox(3, 74) = -141160892
Sbox(3, 75) = -472686964
Sbox(3, 76) = 352677332
Sbox(3, 77) = -1997247046
Sbox(3, 78) = 60907813
Sbox(3, 79) = 90501309
Sbox(3, 80) = -1007968747
Sbox(3, 81) = 1016092578
Sbox(3, 82) = -1759044884
Sbox(3, 83) = -1455814870
Sbox(3, 84) = 457141659
Sbox(3, 85) = 509813237
Sbox(3, 86) = -174299397
Sbox(3, 87) = 652014361
Sbox(3, 88) = 1966332200
Sbox(3, 89) = -1319764491
Sbox(3, 90) = 55981186
Sbox(3, 91) = -1967506245
Sbox(3, 92) = 676427537
Sbox(3, 93) = -1039476232
Sbox(3, 94) = -1412673177
Sbox(3, 95) = -861040033
Sbox(3, 96) = 1307055953
Sbox(3, 97) = 942726286
Sbox(3, 98) = 933058658
Sbox(3, 99) = -1826555503
Sbox(3, 100) = -361066302
Sbox(3, 101) = -79791154
Sbox(3, 102) = 1361170020
Sbox(3, 103) = 2001714738
Sbox(3, 104) = -1464409218
Sbox(3, 105) = -1020707514
Sbox(3, 106) = 1222529897
Sbox(3, 107) = 1679025792
Sbox(3, 108) = -1565652976
Sbox(3, 109) = -580013532
Sbox(3, 110) = 1770335741
Sbox(3, 111) = 151462246
Sbox(3, 112) = -1281735158
Sbox(3, 113) = 1682292957
Sbox(3, 114) = 1483529935
Sbox(3, 115) = 471910574
Sbox(3, 116) = 1539241949
Sbox(3, 117) = 458788160
Sbox(3, 118) = -858652289
Sbox(3, 119) = 1807016891
Sbox(3, 120) = -576558466
Sbox(3, 121) = 978976581
Sbox(3, 122) = 1043663428
Sbox(3, 123) = -1129001515
Sbox(3, 124) = 1927990952
Sbox(3, 125) = -94075717
Sbox(3, 126) = -1922690386
Sbox(3, 127) = -1086558393
Sbox(3, 128) = -761535389
Sbox(3, 129) = 1412390302
Sbox(3, 130) = -1362987237
Sbox(3, 131) = -162634896
Sbox(3, 132) = 1947078029
Sbox(3, 133) = -413461673
Sbox(3, 134) = -126740879
Sbox(3, 135) = -1353482915
Sbox(3, 136) = 1077988104
Sbox(3, 137) = 1320477388
Sbox(3, 138) = 886195818
Sbox(3, 139) = 18198404
Sbox(3, 140) = -508558296
Sbox(3, 141) = -1785185763
Sbox(3, 142) = 112762804
Sbox(3, 143) = -831610808
Sbox(3, 144) = 1866414978
Sbox(3, 145) = 891333506
Sbox(3, 146) = 18488651
Sbox(3, 147) = 661792760
Sbox(3, 148) = 1628790961
Sbox(3, 149) = -409780260
Sbox(3, 150) = -1153795797
Sbox(3, 151) = 876946877
Sbox(3, 152) = -1601685023
Sbox(3, 153) = 1372485963
Sbox(3, 154) = 791857591
Sbox(3, 155) = -1608533303
Sbox(3, 156) = -534984578
Sbox(3, 157) = -1127755274
Sbox(3, 158) = -822013501
Sbox(3, 159) = -1578587449
Sbox(3, 160) = 445679433
Sbox(3, 161) = -732971622
Sbox(3, 162) = -790962485
Sbox(3, 163) = -720709064
Sbox(3, 164) = 54117162
Sbox(3, 165) = -963561881
Sbox(3, 166) = -1913048708
Sbox(3, 167) = -525259953
Sbox(3, 168) = -140617289
Sbox(3, 169) = 1140177722
Sbox(3, 170) = -220915201
Sbox(3, 171) = 668550556
Sbox(3, 172) = -1080614356
Sbox(3, 173) = 367459370
Sbox(3, 174) = 261225585
Sbox(3, 175) = -1684794075
Sbox(3, 176) = -85617823
Sbox(3, 177) = -826893077
Sbox(3, 178) = -1029151655
Sbox(3, 179) = 314222801
Sbox(3, 180) = -1228863650
Sbox(3, 181) = -486184436
Sbox(3, 182) = 282218597
Sbox(3, 183) = -888953790
Sbox(3, 184) = -521376242
Sbox(3, 185) = 379116347
Sbox(3, 186) = 1285071038
Sbox(3, 187) = 846784868
Sbox(3, 188) = -1625320142
Sbox(3, 189) = -523005217
Sbox(3, 190) = -744475605
Sbox(3, 191) = -1989021154
Sbox(3, 192) = 453669953
Sbox(3, 193) = 1268987020
Sbox(3, 194) = -977374944
Sbox(3, 195) = -1015663912
Sbox(3, 196) = -550133875
Sbox(3, 197) = -1684459730
Sbox(3, 198) = -435458233
Sbox(3, 199) = 266596637
Sbox(3, 200) = -447948204
Sbox(3, 201) = 517658769
Sbox(3, 202) = -832407089
Sbox(3, 203) = -851542417
Sbox(3, 204) = 370717030
Sbox(3, 205) = -47440635
Sbox(3, 206) = -2070949179
Sbox(3, 207) = -151313767
Sbox(3, 208) = -182193321
Sbox(3, 209) = -1506642397
Sbox(3, 210) = -1817692879
Sbox(3, 211) = 1456262402
Sbox(3, 212) = -1393524382
Sbox(3, 213) = 1517677493
Sbox(3, 214) = 1846949527
Sbox(3, 215) = -1999473716
Sbox(3, 216) = -560569710
Sbox(3, 217) = -2118563376
Sbox(3, 218) = 1280348187
Sbox(3, 219) = 1908823572
Sbox(3, 220) = -423180355
Sbox(3, 221) = 846861322
Sbox(3, 222) = 1172426758
Sbox(3, 223) = -1007518822
Sbox(3, 224) = -911584259
Sbox(3, 225) = 1655181056
Sbox(3, 226) = -1155153950
Sbox(3, 227) = 901632758
Sbox(3, 228) = 1897031941
Sbox(3, 229) = -1308360158
Sbox(3, 230) = -1228157060
Sbox(3, 231) = -847864789
Sbox(3, 232) = 1393639104
Sbox(3, 233) = 373351379
Sbox(3, 234) = 950779232
Sbox(3, 235) = 625454576
Sbox(3, 236) = -1170726756
Sbox(3, 237) = -146354570
Sbox(3, 238) = 2007998917
Sbox(3, 239) = 544563296
Sbox(3, 240) = -2050228658
Sbox(3, 241) = -1964470824
Sbox(3, 242) = 2058025392
Sbox(3, 243) = 1291430526
Sbox(3, 244) = 424198748
Sbox(3, 245) = 50039436
Sbox(3, 246) = 29584100
Sbox(3, 247) = -689184263
Sbox(3, 248) = -1865090967
Sbox(3, 249) = -1503863136
Sbox(3, 250) = 1057563949
Sbox(3, 251) = -1039604065
Sbox(3, 252) = -1219600078
Sbox(3, 253) = -831004069
Sbox(3, 254) = 1469046755
Sbox(3, 255) = 985887462
End Sub
------------------------------
** FOR YOUR REFERENCE **
The service address, to which questions about the list itself and requests
to be added to or deleted from it should be directed, is:
Internet: [EMAIL PROTECTED]
You can send mail to the entire list (and sci.crypt) via:
Internet: [EMAIL PROTECTED]
End of Cryptography-Digest Digest
******************************