XTS and 64-bit block

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I'm implementing a new block cipher algorithm which is GOST 28147-89. This is a
256-bit key and 64-bit block algorithm. This algorithm works well with ECB, CBC
and CTR modes. But, when I try to use the XTS mode, the encryption fails. So I
tried to find the problem and it seems to come from the file crypto/xts.c,
function init_tfm :

	if (crypto_cipher_blocksize(cipher) != XTS_BLOCK_SIZE) {
		*flags |= CRYPTO_TFM_RES_BAD_BLOCK_LEN;
		crypto_free_cipher(cipher);
		return -EINVAL;
	}

So, I checked the value of XTS_BLOCK_SIZE which is 0x10. The snag is that the
block size of GOST is 0x8. So I changed the block value of my algorithm to 0x10,
and then I tried again with the XTS mode, and it works!

Because of what just happened, I've two questions:

Q1: Why does the GOST algorithm still work? Despite I changed the block size.
Q2: Why in the code, was the block size of XTS fixed? As far as I know,
operations modes should adapt to the size of the block cipher.


Regards,
Thanks in advance
--
Jonathan "Coldshell" Thieuleux
Mail : jonathan.thieuleux@xxxxxxxxx
IRC : coldshell [Freenode, OFTC]
Shaarli : https://links.stdcall.me/

"If you write interfaces with more than 4 or 5 function arguments, it's possible that you and I cannot be friends." -- David Miller
--
To unsubscribe from this list: send the line "unsubscribe linux-crypto" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Kernel]     [Gnu Classpath]     [Gnu Crypto]     [DM Crypt]     [Netfilter]     [Bugtraq]

  Powered by Linux