Re: [PATCH] crypto: cast5: simplify if-statements

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

 



* Nicolas Kaiser <nikai@xxxxxxxxx>:
> I noticed that by factoring out common rounds from the
> branches of the if-statements in the encryption and
> decryption functions, the executable file size goes down
> significantly, for crypto/cast5.ko from 26688 bytes
> to 24336 bytes (amd64).
> 
> On my test system, I saw a slight speedup.

Hi there!

How would I add a simple cast5 cipher speed test to tcrypt.c, like this?
	case 14:
		test_cipher_speed("ecb(cast5)", ENCRYPT, sec, NULL, 0,
				  speed_template_8);
		test_cipher_speed("ecb(cast5)", DECRYPT, sec, NULL, 0,
				  speed_template_8);
		test_cipher_speed("cbc(cast5)", ENCRYPT, sec, NULL, 0,
				  speed_template_8);
		test_cipher_speed("cbc(cast5)", DECRYPT, sec, NULL, 0,
				  speed_template_8);
		break;

Does that make sense? Here are my results:
# insmod crypto/tcrypt.ko mode=14 sec=30

Before:
testing speed of ecb(cast5) encryption
test 0 (64 bit key, 16 byte blocks): 118241789 operations in 30 seconds (1891868624 bytes)
test 1 (64 bit key, 64 byte blocks): 40502820 operations in 30 seconds (2592180480 bytes)
test 2 (64 bit key, 256 byte blocks): 11111145 operations in 30 seconds (2844453120 bytes)
test 3 (64 bit key, 1024 byte blocks): 2858271 operations in 30 seconds (2926869504 bytes)
test 4 (64 bit key, 8192 byte blocks): 359327 operations in 30 seconds (2943606784 bytes)

testing speed of ecb(cast5) decryption
test 0 (64 bit key, 16 byte blocks): 118443232 operations in 30 seconds (1895091712 bytes)
test 1 (64 bit key, 64 byte blocks): 40060571 operations in 30 seconds (2563876544 bytes)
test 2 (64 bit key, 256 byte blocks): 10944717 operations in 30 seconds (2801847552 bytes)
test 3 (64 bit key, 1024 byte blocks): 2811154 operations in 30 seconds (2878621696 bytes)
test 4 (64 bit key, 8192 byte blocks): 353043 operations in 30 seconds (2892128256 bytes)

testing speed of cbc(cast5) encryption
test 0 (64 bit key, 16 byte blocks): 110614202 operations in 30 seconds (1769827232 bytes)
test 1 (64 bit key, 64 byte blocks): 37260496 operations in 30 seconds (2384671744 bytes)
test 2 (64 bit key, 256 byte blocks): 10323268 operations in 30 seconds (2642756608 bytes)
test 3 (64 bit key, 1024 byte blocks): 2650259 operations in 30 seconds (2713865216 bytes)
test 4 (64 bit key, 8192 byte blocks): 333281 operations in 30 seconds (2730237952 bytes)

testing speed of cbc(cast5) decryption
test 0 (64 bit key, 16 byte blocks): 102455488 operations in 30 seconds (1639287808 bytes)
test 1 (64 bit key, 64 byte blocks): 35507599 operations in 30 seconds (2272486336 bytes)
test 2 (64 bit key, 256 byte blocks): 9962653 operations in 30 seconds (2550439168 bytes)
test 3 (64 bit key, 1024 byte blocks): 2569557 operations in 30 seconds (2631226368 bytes)
test 4 (64 bit key, 8192 byte blocks): 323085 operations in 30 seconds (2646712320 bytes)

 that's in sum:
87993190 bytes/s
86877105 bytes/s
81609058 bytes/s
78267680 bytes/s


After:
testing speed of ecb(cast5) encryption
test 0 (64 bit key, 16 byte blocks): 120033632 operations in 30 seconds (1920538112 bytes)
test 1 (64 bit key, 64 byte blocks): 41484473 operations in 30 seconds (2655006272 bytes)
test 2 (64 bit key, 256 byte blocks): 11418041 operations in 30 seconds (2923018496 bytes)
test 3 (64 bit key, 1024 byte blocks): 2940940 operations in 30 seconds (3011522560 bytes)
test 4 (64 bit key, 8192 byte blocks): 369831 operations in 30 seconds (3029655552 bytes)

testing speed of ecb(cast5) decryption
test 0 (64 bit key, 16 byte blocks): 122215696 operations in 30 seconds (1955451136 bytes)
test 1 (64 bit key, 64 byte blocks): 41845591 operations in 30 seconds (2678117824 bytes)
test 2 (64 bit key, 256 byte blocks): 11478322 operations in 30 seconds (2938450432 bytes)
test 3 (64 bit key, 1024 byte blocks): 2952595 operations in 30 seconds (3023457280 bytes)
test 4 (64 bit key, 8192 byte blocks): 371305 operations in 30 seconds (3041730560 bytes)

testing speed of cbc(cast5) encryption
test 0 (64 bit key, 16 byte blocks): 112301700 operations in 30 seconds (1796827200 bytes)
test 1 (64 bit key, 64 byte blocks): 38131586 operations in 30 seconds (2440421504 bytes)
test 2 (64 bit key, 256 byte blocks): 10609299 operations in 30 seconds (2715980544 bytes)
test 3 (64 bit key, 1024 byte blocks): 2728723 operations in 30 seconds (2794212352 bytes)
test 4 (64 bit key, 8192 byte blocks): 343249 operations in 30 seconds (2811895808 bytes)

testing speed of cbc(cast5) decryption
test 0 (64 bit key, 16 byte blocks): 106721453 operations in 30 seconds (1707543248 bytes)
test 1 (64 bit key, 64 byte blocks): 37573333 operations in 30 seconds (2404693312 bytes)
test 2 (64 bit key, 256 byte blocks): 10624511 operations in 30 seconds (2719874816 bytes)
test 3 (64 bit key, 1024 byte blocks): 2745305 operations in 30 seconds (2811192320 bytes)
test 4 (64 bit key, 8192 byte blocks): 345642 operations in 30 seconds (2831499264 bytes)

 that's in sum:
90264940 bytes/s
90914715 bytes/s
83728916 bytes/s
83165353 bytes/s


Best regards,
Nicolas Kaiser
--
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