1
$\begingroup$

I've implemented both the Salsa20 and Rabbit ciphers in C#. My implementation is for academic purposes and I've tested both of them against the test vectors. I implemented a system that encrypts a file twice, once with each form of encryption. I want to find out what kind of analysis I can perform to test their various aspects such as speed, security, performance etc.

While I understand that some of you might think this is not a good idea, I am doing it purely for academic purposes and this will never be used in a real world system.

I would like to perform some tests where I compare the plaintext and ciphertext and note any observations. I have no experience or idea regarding where to start or what to do. Though I do not need to go into depth on this topic as my professor doesn't require it.

Thanks

$\endgroup$
3
  • 4
    $\begingroup$ "I would like to perform some tests where I compare the plaintext and ciphertext and note any observations" I doubt that will get you anywhere $\endgroup$ – Richie Frame May 3 '16 at 10:39
  • $\begingroup$ Performance is easily tested, but how to do that is not really a crypto question. You might find pointers here. Testing the security by looking at ciphertext is not useful for secure ciphers like these. Instead you could look at published cryptanalyses for things like how many rounds of each have been successfully broken. $\endgroup$ – otus May 3 '16 at 11:41
  • $\begingroup$ You can do analysis on your implenentation. $\endgroup$ – Demi May 5 '16 at 21:41
2
$\begingroup$

ChaCha20 and Salsa20 are both considered secure ciphers and so looking at the keystream will get you nowhere. What you can do is analyze your implementation:

  • It should run in exactly constant time regardless of inputs.
  • There should be no data-dependent branches or array lookups
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy