![]() | |||||||||||||
Messages in this thread |
Implementation: ----------------------- This code is based on the current linux twofish cipher c implementation. Only the decrypt/encrypt routines were replaced by optimized assembler code. The in-kernel code by Matthew Skala takes care of the keysetup and precomputation of the sbox lookup tables. I have tried to cut down stack use to a minimum (1 push/pop per round) and optimize the code as much as possible. The patch is similar to the existing aes assembler implementation. Testing: ----------- The code passed the kernel test module and passed automated tests on a dm-crypt volume reading/writing large files with alternating modules ( c / assembler ) and comparing results. Benchmarks: ------------------- Performance on a dm-crypt volume increased about 30% while reading. With 256bit keylength it even outperformed the 128bit aes assembler code. http://homepages.tu-darmstadt.de/~fritschi/twofish/output_20060417_185029_x86.html The write performance in this benchmark was limited by the harddrive and not the algorithm / system speed. Any suggestions how to benchmark the overall speed accurately are welcome. Patch: ---------- http://homepages.tu-darmstadt.de/~fritschi/twofish/twofish-i586-asm-2.6.17.diff Please have a look, try, improve and criticise. Regards, Joachim - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ | ||||||||||||
| Last update: 2006-05-07 09:59 [from the cache] ©2003-2008 | |||||||||||||