⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rijndael.asm

📁 ASM 多种hash模块,汇编源码 MD2,4,5 SHA 等多种加密算法 还有其他赠送内容
💻 ASM
📖 第 1 页 / 共 3 页
字号:
dd 0166c2bb3h,0b999a970h,048fa1194h,0642247e9h,08cc4a8fch,03f1aa0f0h,02cd8567dh,090ef2233h
dd 04ec78749h,0d1c1d938h,0a2fe8ccah,00b3698d4h,081cfa6f5h,0de28a57ah,08e26dab7h,0bfa43fadh
dd 09de42c3ah,0920d5078h,0cc9b6a5fh,04662547eh,013c2f68dh,0b8e890d8h,0f75e2e39h,0aff582c3h
dd 080be9f5dh,0937c69d0h,02da96fd5h,012b3cf25h,0993bc8ach,07da71018h,0636ee89ch,0bb7bdb3bh
dd 07809cd26h,018f46e59h,0b701ec9ah,09aa8834fh,06e65e695h,0e67eaaffh,0cf0821bch,0e8e6ef15h
dd 09bd9bae7h,036ce4a6fh,009d4ea9fh,07cd629b0h,0b2af31a4h,023312a3fh,09430c6a5h,066c035a2h
dd 0bc37744eh,0caa6fc82h,0d0b0e090h,0d81533a7h,0984af104h,0daf741ech,0500e7fcdh,0f62f1791h
dd 0d68d764dh,0b04d43efh,04d54ccaah,004dfe496h,0b5e39ed1h,0881b4c6ah,01fb8c12ch,0517f4665h
dd 0ea049d5eh,0355d018ch,07473fa87h,0412efb0bh,01d5ab367h,0d25292dbh,05633e910h,047136dd6h
dd 0618c9ad7h,00c7a37a1h,0148e59f8h,03c89eb13h,027eecea9h,0c935b761h,0e5ede11ch,0b13c7a47h
dd 0df599cd2h,0733f55f2h,0ce791814h,037bf73c7h,0cdea53f7h,0aa5b5ffdh,06f14df3dh,0db867844h
dd 0f381caafh,0c43eb968h,0342c3824h,0405fc2a3h,0c372161dh,0250cbce2h,0498b283ch,09541ff0dh
dd 0017139a8h,0b3de080ch,0e49cd8b4h,0c1906456h,084617bcbh,0b670d532h,05c74486ch,05742d0b8h

Td3 label dword ; 256
dd 0f4a75051h,04165537eh,017a4c31ah,0275e963ah,0ab6bcb3bh,09d45f11fh,0fa58abach,0e303934bh
dd 030fa5520h,0766df6adh,0cc769188h,0024c25f5h,0e5d7fc4fh,02acbd7c5h,035448026h,062a38fb5h
dd 0b15a49deh,0ba1b6725h,0ea0e9845h,0fec0e15dh,02f7502c3h,04cf01281h,04697a38dh,0d3f9c66bh
dd 08f5fe703h,0929c9515h,06d7aebbfh,05259da95h,0be832dd4h,07421d358h,0e0692949h,0c9c8448eh
dd 0c2896a75h,08e7978f4h,0583e6b99h,0b971dd27h,0e14fb6beh,088ad17f0h,020ac66c9h,0ce3ab47dh
dd 0df4a1863h,01a3182e5h,051336097h,0537f4562h,06477e0b1h,06bae84bbh,081a01cfeh,0082b94f9h
dd 048685870h,045fd198fh,0de6c8794h,07bf8b752h,073d323abh,04b02e272h,01f8f57e3h,055ab2a66h
dd 0eb2807b2h,0b5c2032fh,0c57b9a86h,03708a5d3h,02887f230h,0bfa5b223h,0036aba02h,016825cedh
dd 0cf1c2b8ah,079b492a7h,007f2f0f3h,069e2a14eh,0daf4cd65h,005bed506h,034621fd1h,0a6fe8ac4h
dd 02e539d34h,0f355a0a2h,08ae13205h,0f6eb75a4h,083ec390bh,060efaa40h,0719f065eh,06e1051bdh
dd 0218af93eh,0dd063d96h,03e05aeddh,0e6bd464dh,0548db591h,0c45d0571h,006d46f04h,05015ff60h
dd 098fb2419h,0bde997d6h,04043cc89h,0d99e7767h,0e842bdb0h,0898b8807h,0195b38e7h,0c8eedb79h
dd 07c0a47a1h,0420fe97ch,0841ec9f8h,000000000h,080868309h,02bed4832h,01170ac1eh,05a724e6ch
dd 00efffbfdh,08538560fh,0aed51e3dh,02d392736h,00fd9640ah,05ca62168h,05b54d19bh,0362e3a24h
dd 00a67b10ch,057e70f93h,0ee96d2b4h,09b919e1bh,0c0c54f80h,0dc20a261h,0774b695ah,0121a161ch
dd 093ba0ae2h,0a02ae5c0h,022e0433ch,01b171d12h,0090d0b0eh,08bc7adf2h,0b6a8b92dh,01ea9c814h
dd 0f1198557h,075074cafh,099ddbbeeh,07f60fda3h,001269ff7h,072f5bc5ch,0663bc544h,0fb7e345bh
dd 04329768bh,023c6dccbh,0edfc68b6h,0e4f163b8h,031dccad7h,063851042h,097224013h,0c6112084h
dd 04a247d85h,0bb3df8d2h,0f93211aeh,029a16dc7h,09e2f4b1dh,0b230f3dch,08652ec0dh,0c1e3d077h
dd 0b3166c2bh,070b999a9h,09448fa11h,0e9642247h,0fc8cc4a8h,0f03f1aa0h,07d2cd856h,03390ef22h
dd 0494ec787h,038d1c1d9h,0caa2fe8ch,0d40b3698h,0f581cfa6h,07ade28a5h,0b78e26dah,0adbfa43fh
dd 03a9de42ch,078920d50h,05fcc9b6ah,07e466254h,08d13c2f6h,0d8b8e890h,039f75e2eh,0c3aff582h
dd 05d80be9fh,0d0937c69h,0d52da96fh,02512b3cfh,0ac993bc8h,0187da710h,09c636ee8h,03bbb7bdbh
dd 0267809cdh,05918f46eh,09ab701ech,04f9aa883h,0956e65e6h,0ffe67eaah,0bccf0821h,015e8e6efh
dd 0e79bd9bah,06f36ce4ah,09f09d4eah,0b07cd629h,0a4b2af31h,03f23312ah,0a59430c6h,0a266c035h
dd 04ebc3774h,082caa6fch,090d0b0e0h,0a7d81533h,004984af1h,0ecdaf741h,0cd500e7fh,091f62f17h
dd 04dd68d76h,0efb04d43h,0aa4d54cch,09604dfe4h,0d1b5e39eh,06a881b4ch,02c1fb8c1h,065517f46h
dd 05eea049dh,08c355d01h,0877473fah,00b412efbh,0671d5ab3h,0dbd25292h,0105633e9h,0d647136dh
dd 0d7618c9ah,0a10c7a37h,0f8148e59h,0133c89ebh,0a927eeceh,061c935b7h,01ce5ede1h,047b13c7ah
dd 0d2df599ch,0f2733f55h,014ce7918h,0c737bf73h,0f7cdea53h,0fdaa5b5fh,03d6f14dfh,044db8678h
dd 0aff381cah,068c43eb9h,024342c38h,0a3405fc2h,01dc37216h,0e2250cbch,03c498b28h,00d9541ffh
dd 0a8017139h,00cb3de08h,0b4e49cd8h,056c19064h,0cb84617bh,032b670d5h,06c5c7448h,0b85742d0h

Td4 label dword ; 256
dd 052525252h,009090909h,06a6a6a6ah,0d5d5d5d5h,030303030h,036363636h,0a5a5a5a5h,038383838h
dd 0bfbfbfbfh,040404040h,0a3a3a3a3h,09e9e9e9eh,081818181h,0f3f3f3f3h,0d7d7d7d7h,0fbfbfbfbh
dd 07c7c7c7ch,0e3e3e3e3h,039393939h,082828282h,09b9b9b9bh,02f2f2f2fh,0ffffffffh,087878787h
dd 034343434h,08e8e8e8eh,043434343h,044444444h,0c4c4c4c4h,0dedededeh,0e9e9e9e9h,0cbcbcbcbh
dd 054545454h,07b7b7b7bh,094949494h,032323232h,0a6a6a6a6h,0c2c2c2c2h,023232323h,03d3d3d3dh
dd 0eeeeeeeeh,04c4c4c4ch,095959595h,00b0b0b0bh,042424242h,0fafafafah,0c3c3c3c3h,04e4e4e4eh
dd 008080808h,02e2e2e2eh,0a1a1a1a1h,066666666h,028282828h,0d9d9d9d9h,024242424h,0b2b2b2b2h
dd 076767676h,05b5b5b5bh,0a2a2a2a2h,049494949h,06d6d6d6dh,08b8b8b8bh,0d1d1d1d1h,025252525h
dd 072727272h,0f8f8f8f8h,0f6f6f6f6h,064646464h,086868686h,068686868h,098989898h,016161616h
dd 0d4d4d4d4h,0a4a4a4a4h,05c5c5c5ch,0cccccccch,05d5d5d5dh,065656565h,0b6b6b6b6h,092929292h
dd 06c6c6c6ch,070707070h,048484848h,050505050h,0fdfdfdfdh,0ededededh,0b9b9b9b9h,0dadadadah
dd 05e5e5e5eh,015151515h,046464646h,057575757h,0a7a7a7a7h,08d8d8d8dh,09d9d9d9dh,084848484h
dd 090909090h,0d8d8d8d8h,0ababababh,000000000h,08c8c8c8ch,0bcbcbcbch,0d3d3d3d3h,00a0a0a0ah
dd 0f7f7f7f7h,0e4e4e4e4h,058585858h,005050505h,0b8b8b8b8h,0b3b3b3b3h,045454545h,006060606h
dd 0d0d0d0d0h,02c2c2c2ch,01e1e1e1eh,08f8f8f8fh,0cacacacah,03f3f3f3fh,00f0f0f0fh,002020202h
dd 0c1c1c1c1h,0afafafafh,0bdbdbdbdh,003030303h,001010101h,013131313h,08a8a8a8ah,06b6b6b6bh
dd 03a3a3a3ah,091919191h,011111111h,041414141h,04f4f4f4fh,067676767h,0dcdcdcdch,0eaeaeaeah
dd 097979797h,0f2f2f2f2h,0cfcfcfcfh,0cecececeh,0f0f0f0f0h,0b4b4b4b4h,0e6e6e6e6h,073737373h
dd 096969696h,0acacacach,074747474h,022222222h,0e7e7e7e7h,0adadadadh,035353535h,085858585h
dd 0e2e2e2e2h,0f9f9f9f9h,037373737h,0e8e8e8e8h,01c1c1c1ch,075757575h,0dfdfdfdfh,06e6e6e6eh
dd 047474747h,0f1f1f1f1h,01a1a1a1ah,071717171h,01d1d1d1dh,029292929h,0c5c5c5c5h,089898989h
dd 06f6f6f6fh,0b7b7b7b7h,062626262h,00e0e0e0eh,0aaaaaaaah,018181818h,0bebebebeh,01b1b1b1bh
dd 0fcfcfcfch,056565656h,03e3e3e3eh,04b4b4b4bh,0c6c6c6c6h,0d2d2d2d2h,079797979h,020202020h
dd 09a9a9a9ah,0dbdbdbdbh,0c0c0c0c0h,0fefefefeh,078787878h,0cdcdcdcdh,05a5a5a5ah,0f4f4f4f4h
dd 01f1f1f1fh,0ddddddddh,0a8a8a8a8h,033333333h,088888888h,007070707h,0c7c7c7c7h,031313131h
dd 0b1b1b1b1h,012121212h,010101010h,059595959h,027272727h,080808080h,0ecececech,05f5f5f5fh
dd 060606060h,051515151h,07f7f7f7fh,0a9a9a9a9h,019191919h,0b5b5b5b5h,04a4a4a4ah,00d0d0d0dh
dd 02d2d2d2dh,0e5e5e5e5h,07a7a7a7ah,09f9f9f9fh,093939393h,0c9c9c9c9h,09c9c9c9ch,0efefefefh
dd 0a0a0a0a0h,0e0e0e0e0h,03b3b3b3bh,04d4d4d4dh,0aeaeaeaeh,02a2a2a2ah,0f5f5f5f5h,0b0b0b0b0h
dd 0c8c8c8c8h,0ebebebebh,0bbbbbbbbh,03c3c3c3ch,083838383h,053535353h,099999999h,061616161h
dd 017171717h,02b2b2b2bh,004040404h,07e7e7e7eh,0babababah,077777777h,0d6d6d6d6h,026262626h
dd 0e1e1e1e1h,069696969h,014141414h,063636363h,055555555h,021212121h,00c0c0c0ch,07d7d7d7dh

rcon label dword ; 30?
dd 001000000h,002000000h,004000000h,008000000h,010000000h,020000000h,040000000h,080000000h
dd 01B000000h,036000000h; /* for 128-bit blocks, Rijndael never uses more than 10 rcon values */

.data?
MAXROUNDS equ 14
align 4
rk_enc dd (MAXROUNDS+1)*4 dup (?)
rk_dec dd (MAXROUNDS+1)*4 dup (?)
rij_rounds dd ?

.code

MixColumn macro _rki
	mov edx,[edi+_rki*4]
	mov eax,edx
	mov ebx,edx
	mov ecx,edx
	shr eax,24
	shr ebx,16
	shr ecx,8
	and ebx,0FFh
	and ecx,0FFh
	and edx,0FFh
	mov eax,Te4[eax*4]
	mov ebx,Te4[ebx*4]
	mov ecx,Te4[ecx*4]
	mov edx,Te4[edx*4]
	and eax,0FFh
	and ebx,0FFh
	and ecx,0FFh
	and edx,0FFh
	mov eax,Td0[eax*4]
	mov ebx,Td1[ebx*4]
	mov ecx,Td2[ecx*4]
	mov edx,Td3[edx*4]
	xor eax,ebx
	xor eax,ecx
	xor eax,edx
	mov [edi+_rki*4],eax
endm
	
align dword
RijndaelInit proc uses esi edi ebx pKey:DWORD,dwKeyLen:DWORD
	mov esi,pKey
	mov edi,offset rk_enc
	mov eax,[esi+0*4]
	mov ebx,[esi+1*4]
	mov ecx,[esi+2*4]
	mov edx,[esi+3*4]
	bswap eax
	bswap ebx
	bswap ecx
	bswap edx
	mov [edi+0*4],eax
	mov [edi+1*4],ebx
	mov [edi+2*4],ecx
	mov [edi+3*4],edx
	mov ecx,dwKeyLen
	.if ecx >= 24
		mov eax,[esi+4*4]
		mov ebx,[esi+5*4]
		bswap eax
		bswap ebx
		mov [edi+4*4],eax
		mov [edi+5*4],ebx
		.if ecx >= 32
			mov ecx,[esi+6*4]
			mov edx,[esi+7*4]
			bswap ecx
			bswap edx
			mov [edi+6*4],ecx
			mov [edi+7*4],edx
		.endif
	.endif
	mov eax,dwKeyLen
	xor esi,esi;i
	.if eax == 16
		.while 1
			mov edx,[edi+3*4]
			mov eax,edx
			mov ebx,edx
			mov ecx,edx
			shr eax,16
			shr ebx,8
			shr edx,24
			and eax,0FFh
			and ebx,0FFh
			and ecx,0FFh
			mov eax,Te4[eax*4]
			mov ebx,Te4[ebx*4]
			mov ecx,Te4[ecx*4]
			mov edx,Te4[edx*4]
			and eax,0ff000000h
			and ebx,000ff0000h
			and ecx,00000ff00h
			and edx,0000000ffh
			xor eax,ebx
			xor eax,ecx
			xor eax,edx
			xor eax,rcon[esi*4]
			;-
			xor eax,[edi+0*4]
			mov [edi+4*4],eax
			xor eax,[edi+1*4]
			mov [edi+5*4],eax
			xor eax,[edi+2*4]
			mov [edi+6*4],eax
			xor eax,[edi+3*4]
			mov [edi+7*4],eax
			;-
			inc esi
			.break .if esi == 10
			add edi,4*4
		.endw
	.elseif eax == 24
		.while 1
			mov edx,[edi+5*4]
			mov eax,edx
			mov ebx,edx
			mov ecx,edx
			shr eax,16
			shr ebx,8
			shr edx,24
			and eax,0FFh
			and ebx,0FFh
			and ecx,0FFh
			mov eax,Te4[eax*4]
			mov ebx,Te4[ebx*4]
			mov ecx,Te4[ecx*4]
			mov edx,Te4[edx*4]
			and eax,0ff000000h
			and ebx,000ff0000h
			and ecx,00000ff00h
			and edx,0000000ffh
			xor eax,ebx
			xor eax,ecx
			xor eax,edx
			xor eax,rcon[esi*4]
			;-
			xor eax,[edi+0*4]
			mov [edi+6*4],eax
			xor eax,[edi+1*4]
			mov [edi+7*4],eax
			xor eax,[edi+2*4]
			mov [edi+8*4],eax
			xor eax,[edi+3*4]
			mov [edi+9*4],eax
			;-
			inc esi
			.break .if esi == 8
			xor eax,[edi+4*4]
			mov [edi+10*4],eax
			xor eax,[edi+5*4]
			mov [edi+11*4],eax
			add edi,6*4
		.endw
		mov esi,12
	.elseif eax == 32
		.while 1
			mov edx,[edi+7*4]
			mov eax,edx
			mov ebx,edx
			mov ecx,edx
			shr eax,16
			shr ebx,8
			shr edx,24
			and eax,0FFh
			and ebx,0FFh
			and ecx,0FFh
			mov eax,Te4[eax*4]
			mov ebx,Te4[ebx*4]
			mov ecx,Te4[ecx*4]
			mov edx,Te4[edx*4]
			and eax,0ff000000h
			and ebx,000ff0000h
			and ecx,00000ff00h
			and edx,0000000ffh
			xor eax,ebx
			xor eax,ecx
			xor eax,edx
			xor eax,rcon[esi*4]
			;-
			xor eax,[edi+0*4]
			mov [edi+8*4],eax
			xor eax,[edi+1*4]
			mov [edi+9*4],eax
			xor eax,[edi+2*4]
			mov [edi+10*4],eax
			xor eax,[edi+3*4]
			mov [edi+11*4],eax
			;-
			inc esi
			.break .if esi == 7

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -