📄 chap6-3-6.htm.primary
字号:
dd 03a6efa74h, 0dd5b4332h, 06841e7f7h, 0ca7820fbh, 0fb0af54eh,
0d8feb397h <br>
dd 0454056ach, 0ba489527h, 055533a3ah, 020838d87h, 0fe6ba9b7h,
0d096954bh <br>
dd 055a867bch, 0a1159a58h, 0cca92963h, 099e1db33h, 0a62a4a56h,
03f3125f9h <br>
dd 05ef47e1ch, 09029317ch, 0fdf8e802h, 004272f70h, 080bb155ch,
005282ce3h <br>
dd 095c11548h, 0e4c66d22h, 048c1133fh, 0c70f86dch, 007f9c9eeh,
041041f0fh <br>
dd 0404779a4h, 05d886e17h, 0325f51ebh, 0d59bc0d1h, 0f2bcc18fh,
041113564h <br>
dd 0257b7834h, 0602a9c60h, 0dff8e8a3h, 01f636c1bh, 00e12b4c2h,
002e1329eh <br>
dd 0af664fd1h, 0cad18115h, 06b2395e0h, 0333e92e1h, 03b240b62h,
0eebeb922h <br>
dd 085b2a20eh, 0e6ba0d99h, 0de720c8ch, 02da2f728h, 0d0127845h,
095b794fdh <br>
dd 0647d0862h, 0e7ccf5f0h, 05449a36fh, 0877d48fah, 0c39dfd27h,
0f33e8d1eh <br>
dd 00a476341h, 0992eff74h, 03a6f6eabh, 0f4f8fd37h, 0a812dc60h,
0a1ebddf8h <br>
dd 0991be14ch, 0db6e6b0dh, 0c67b5510h, 06d672c37h, 02765d43bh,
0dcd0e804h <br>
dd 0f1290dc7h, 0cc00ffa3h, 0b5390f92h, 0690fed0bh, 0667b9ffbh,
0cedb7d9ch <br>
dd 0a091cf0bh, 0d9155ea3h, 0bb132f88h, 0515bad24h, 07b9479bfh,
0763bd6ebh <br>
dd 037392eb3h, 0cc115979h, 08026e297h, 0f42e312dh, 06842ada7h,
0c66a2b3bh <br>
dd 012754ccch, 0782ef11ch, 06a124237h, 0b79251e7h, 006a1bbe6h,
04bfb6350h <br>
dd 01a6b1018h, 011caedfah, 03d25bdd8h, 0e2e1c3c9h, 044421659h,
00a121386h <br>
dd 0d90cec6eh, 0d5abea2ah, 064af674eh, 0da86a85fh, 0bebfe988h,
064e4c3feh <br>
dd 09dbc8057h, 0f0f7c086h, 060787bf8h, 06003604dh, 0d1fd8346h,
0f6381fb0h <br>
dd 07745ae04h, 0d736fccch, 083426b33h, 0f01eab71h, 0b0804187h,
03c005e5fh <br>
dd 077a057beh, 0bde8ae24h, 055464299h, 0bf582e61h, 04e58f48fh,
0f2ddfda2h <br>
dd 0f474ef38h, 08789bdc2h, 05366f9c3h, 0c8b38e74h, 0b475f255h,
046fcd9b9h <br>
dd 07aeb2661h, 08b1ddf84h, 0846a0e79h, 0915f95e2h, 0466e598eh,
020b45770h <br>
dd 08cd55591h, 0c902de4ch, 0b90bace1h, 0bb8205d0h, 011a86248h,
07574a99eh <br>
dd 0b77f19b6h, 0e0a9dc09h, 0662d09a1h, 0c4324633h, 0e85a1f02h,
009f0be8ch <br>
dd 04a99a025h, 01d6efe10h, 01ab93d1dh, 00ba5a4dfh, 0a186f20fh,
02868f169h <br>
dd 0dcb7da83h, 0573906feh, 0a1e2ce9bh, 04fcd7f52h, 050115e01h,
0a70683fah <br>
dd 0a002b5c4h, 00de6d027h, 09af88c27h, 0773f8641h, 0c3604c06h,
061a806b5h <br>
dd 0f0177a28h, 0c0f586e0h, 0006058aah, 030dc7d62h, 011e69ed7h,
02338ea63h <br>
dd 053c2dd94h, 0c2c21634h, 0bbcbee56h, 090bcb6deh, 0ebfc7da1h,
0ce591d76h <br>
dd 06f05e409h, 04b7c0188h, 039720a3dh, 07c927c24h, 086e3725fh,
0724d9db9h <br>
dd 01ac15bb4h, 0d39eb8fch, 0ed545578h, 008fca5b5h, 0d83d7cd3h,
04dad0fc4h <br>
dd 01e50ef5eh, 0b161e6f8h, 0a28514d9h, 06c51133ch, 06fd5c7e7h,
056e14ec4h <br>
dd 0362abfceh, 0ddc6c837h, 0d79a3234h, 092638212h, 0670efa8eh,
0406000e0h <br>
<br>
sbox4 dd 03a39ce37h, 0d3faf5cfh, 0abc27737h, 05ac52d1bh, 05cb0679eh,
04fa33742h <br>
dd 0d3822740h, 099bc9bbeh, 0d5118e9dh, 0bf0f7315h, 0d62d1c7eh,
0c700c47bh <br>
dd 0b78c1b6bh, 021a19045h, 0b26eb1beh, 06a366eb4h, 05748ab2fh,
0bc946e79h <br>
dd 0c6a376d2h, 06549c2c8h, 0530ff8eeh, 0468dde7dh, 0d5730a1dh,
04cd04dc6h <br>
dd 02939bbdbh, 0a9ba4650h, 0ac9526e8h, 0be5ee304h, 0a1fad5f0h,
06a2d519ah <br>
dd 063ef8ce2h, 09a86ee22h, 0c089c2b8h, 043242ef6h, 0a51e03aah,
09cf2d0a4h <br>
dd 083c061bah, 09be96a4dh, 08fe51550h, 0ba645bd6h, 02826a2f9h,
0a73a3ae1h <br>
dd 04ba99586h, 0ef5562e9h, 0c72fefd3h, 0f752f7dah, 03f046f69h,
077fa0a59h <br>
dd 080e4a915h, 087b08601h, 09b09e6adh, 03b3ee593h, 0e990fd5ah,
09e34d797h <br>
dd 02cf0b7d9h, 0022b8b51h, 096d5ac3ah, 0017da67dh, 0d1cf3ed6h,
07c7d2d28h <br>
dd 01f9f25cfh, 0adf2b89bh, 05ad6b472h, 05a88f54ch, 0e029ac71h,
0e019a5e6h <br>
dd 047b0acfdh, 0ed93fa9bh, 0e8d3c48dh, 0283b57cch, 0f8d56629h,
079132e28h <br>
dd 0785f0191h, 0ed756055h, 0f7960e44h, 0e3d35e8ch, 015056dd4h,
088f46dbah <br>
dd 003a16125h, 00564f0bdh, 0c3eb9e15h, 03c9057a2h, 097271aech,
0a93a072ah <br>
dd 01b3f6d9bh, 01e6321f5h, 0f59c66fbh, 026dcf319h, 07533d928h,
0b155fdf5h <br>
dd 003563482h, 08aba3cbbh, 028517711h, 0c20ad9f8h, 0abcc5167h,
0ccad925fh <br>
dd 04de81751h, 03830dc8eh, 0379d5862h, 09320f991h, 0ea7a90c2h,
0fb3e7bceh <br>
dd 05121ce64h, 0774fbe32h, 0a8b6e37eh, 0c3293d46h, 048de5369h,
06413e680h <br>
dd 0a2ae0810h, 0dd6db224h, 069852dfdh, 009072166h, 0b39a460ah,
06445c0ddh <br>
dd 0586cdecfh, 01c20c8aeh, 05bbef7ddh, 01b588d40h, 0ccd2017fh,
06bb4e3bbh <br>
dd 0dda26a7eh, 03a59ff45h, 03e350a44h, 0bcb4cdd5h, 072eacea8h,
0fa6484bbh <br>
dd 08d6612aeh, 0bf3c6f47h, 0d29be463h, 0542f5d9eh, 0aec2771bh,
0f64e6370h <br>
dd 0740e0d8dh, 0e75b1357h, 0f8721671h, 0af537d5dh, 04040cb08h,
04eb4e2cch <br>
dd 034d2466ah, 00115af84h, 0e1b00428h, 095983a1dh, 006b89fb4h,
0ce6ea048h <br>
dd 06f3f3b82h, 03520ab82h, 0011a1d4bh, 0277227f8h, 0611560b1h,
0e7933fdch <br>
dd 0bb3a792bh, 0344525bdh, 0a08839e1h, 051ce794bh, 02f32c9b7h,
0a01fbac9h <br>
dd 0e01cc87eh, 0bcc7d1f6h, 0cf0111c3h, 0a1e8aac7h, 01a908749h,
0d44fbd9ah <br>
dd 0d0dadecbh, 0d50ada38h, 00339c32ah, 0c6913667h, 08df9317ch,
0e0b12b4fh <br>
dd 0f79e59b7h, 043f5bb3ah, 0f2d519ffh, 027d9459ch, 0bf97222ch,
015e6fc2ah <br>
dd 00f91fc71h, 09b941525h, 0fae59361h, 0ceb69cebh, 0c2a86459h,
012baa8d1h <br>
dd 0b6c1075eh, 0e3056a0ch, 010d25065h, 0cb03a442h, 0e0ec6e0eh,
01698db3bh <br>
dd 04c98a0beh, 03278e964h, 09f1f9532h, 0e0d392dfh, 0d3a0342bh,
08971f21eh <br>
dd 01b0a7441h, 04ba3348ch, 0c5be7120h, 0c37632d8h, 0df359f8dh,
09b992f2eh <br>
dd 0e60b6f47h, 00fe3f11dh, 0e54cda54h, 01edad891h, 0ce6279cfh,
0cd3e7e6fh <br>
dd 01618b166h, 0fd2c1d05h, 0848fd2c5h, 0f6fb2299h, 0f523f357h,
0a6327623h <br>
dd 093a83531h, 056cccd02h, 0acf08162h, 05a75ebb5h, 06e163697h,
088d273cch <br>
dd 0de966292h, 081b949d0h, 04c50901bh, 071c65614h, 0e6c6c7bdh,
0327a140ah <br>
dd 045e1d006h, 0c3f27b9ah, 0c9aa53fdh, 062a80f00h, 0bb25bfe2h,
035bdd2f6h <br>
dd 071126905h, 0b2040222h, 0b6cbcf7ch, 0cd769c2bh, 053113ec0h,
01640e3d3h <br>
dd 038abbd60h, 02547adf0h, 0ba38209ch, 0f746ce76h, 077afa1c5h,
020756060h <br>
dd 085cbfe4eh, 08ae88dd8h, 07aaaf9b0h, 04cf9aa7eh, 01948c25ch,
002fb8a8ch <br>
dd 001c36ae4h, 0d6ebe1f9h, 090d4f869h, 0a65cdea0h, 03f09252dh,
0c208e69fh <br>
dd 0b74e6132h, 0ce77e25bh, 0578fdfe3h, 03ac372e6h <br>
<br>
<br>
.code <br>
;s盒变换函数 <br>
BlowFish_Fun proc uses ebx edi esi edx ecx,BfNum:DWORD
<br>
MOV ECX,BfNum
<br>
MOV AL,CL <br>
AND EAX,0FFh <br>
SHR ECX,08 <br>
MOV EDX,EAX
<br>
MOV AL,CL <br>
MOV EDI,offset key <br>
AND EAX,0FFh <br>
SHR ECX,08 <br>
MOV ESI,EAX
<br>
MOV EAX,ECX <br>
SHR EAX,08 <br>
AND EAX,0FFh <br>
AND ECX,0FFh <br>
AND ESI,0FFFFh <br>
AND EDX,0FFFFh <br>
MOV EAX,[EDI+EAX*4+48h] <br>
MOV EBX,[EDI+ECX*4+0448h] <br>
MOV ECX,[EDI+ESI*4+0848h] <br>
ADD EAX,EBX <br>
XOR EAX,ECX <br>
MOV ECX,[EDI+EDX*4+0C48h] <br>
ADD EAX,ECX <br>
RET <br>
BlowFish_Fun endp <br>
<br>
;BlowFish加密算法函数 <br>
BlowFish_En proc uses ebx edi esi edx ecx,highbf:DWORD,lowbf:DWORD
<br>
LOCAL num :DWORD <br>
MOV EAX,highbf <br>
MOV ECX,lowbf <br>
MOV EAX,[EAX] <br>
MOV ESI,[ECX] <br>
MOV EDI,offset key <br>
MOV num,10h <br>
MOV EBX,EDI <br>
loc_40108E: <br>
XOR EAX,[EBX] <br>
MOV EDX,EAX <br>
invoke BlowFish_Fun,EAX <br>
MOV ECX,num <br>
XOR EAX,ESI <br>
ADD EBX,4 <br>
DEC ECX <br>
MOV ESI,EDX <br>
MOV num,ECX <br>
JNZ loc_40108E <br>
<br>
MOV ECX,[EDI+40h] <br>
MOV EDX,[EDI+44h] <br>
XOR ECX,EAX <br>
XOR EDX,ESI <br>
<br>
MOV [BFHIGH],EDX <br>
MOV [BFLOW],ECX <br>
RET <br>
BlowFish_En endp <br>
<br>
;BlowFish初始化函数 <br>
BlowFish_Init proc uses ebx edi esi edx ecx,PWD:DWORD,len_PWD:DWORD
<br>
LOCAL pbox_num18:DWORD <br>
LOCAL pbox_num4 :DWORD <br>
LOCAL snum :DWORD <br>
;初始化s盒 <br>
MOV ESI,offset key <br>
MOV EAX,offset sbox1 <br>
LEA ECX,[ESI+48h] <br>
loc_401141: <br>
MOV EDX,0100h <br>
loc_401146: <br>
MOV EDI,[EAX] <br>
ADD EAX,4 <br>
MOV [ECX],EDI <br>
ADD ECX,4 <br>
DEC EDX <br>
JNZ loc_401146 <br>
CMP EAX,offset sbox1+1000h <br>
JL loc_401141 <br>
<br>
;初始化p盒 <br>
;第一步:原p盒与PWD逐项异或 <br>
<br>
MOV EDX,PWD <br>
MOV EDI,offset pbox <br>
XOR EAX,EAX <br>
SUB EDI,ESI <br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -