All pastes #117314 Raw Edit

Miscellany

public text v1 · immutable
·published 2006-08-05 21:47 UTC
rendered paste body
iv = 4 DWORD initalization vector (constant)
p = 4 DWORD plaintext
i = 4 DWORD intermediate
c = 4 DWORD ciphertext
t = 4 DWORD temporary

encrypt:
	t = iv
	for n in 0..31
		i[n][0] = p[n][0] ^ t[0] ^ t[1]
		i[n][1] = p[n][1] ^ t[1] ^ t[2]
		i[n][2] = p[n][2] ^ t[2] ^ t[3]
		i[n][3] = p[n][3] ^ t[3] ^ i[n][0]
		t = i[n]
	c[0] = aes256_encrypt(i[0] ^ i[31])
	for n in 1..31
		c[n] = aes256_encrypt(i[n] ^ c[n-1])

decrypt:
	for n in 1..31
		i[n] = aes256_decrypt(c[n]) ^ c[n-1]
	i[0] = aes256_decrypt(c[0]) ^ i[31]
	t = iv
	for n in 0..31
		p[n][0] = i[n][0] ^ t[0] ^ t[1]
		p[n][1] = i[n][1] ^ t[1] ^ t[2]
		p[n][2] = i[n][2] ^ t[2] ^ t[3]
		p[n][3] = i[n][3] ^ t[3] ^ i[n][0]
		t = i[n]