From: Aditya Kumar on
Hi,

I used to frequent this forum extensively back in 2005, until in 2007
sci.crypt got spammed pretty heavily. Then, my nature of work and job
kept me away from the subject for a while and here I am, trying to
start to learn again this subject, on my own.

My objective is to learn cryptographic algorithms through programming
(in C). I am a Java programmer by profession so doing this in C should
be interesting. I have not done C programming (I just know the basics)
so learning to do this using gcc is also on the objective list.

It will be great if someone here can point me to the right direction
on how to go about doing this.

Thanks,
Aditya
From: Dave -Turner on
Bruce Schneier's 'Applied Cryptography' has a lot of source in C both
throughout the book, and with full source code to algorithms at the end


From: Bryan on
Aditya Kumar wrote:
> My objective is to learn cryptographic algorithms through programming
> (in C). I am a Java programmer by profession so doing this in C should
> be interesting. I have not done C programming (I just know the basics)
> so learning to do this using gcc is also on the objective list.
>
> It will be great if someone here can point me to the right direction
> on how to go about doing this.

The direction I'd suggest is to prototype the algorithms in Java, the
language you know, before implementing them in C. Tackling both C and
cryptographic algorithms at once is likely to multiply the
difficulties. Furthermore, Java is much better than C at catching
mistakes.

Avoiding security holes in C is notoriously difficult. The language
standard constantly punts to undefined behavior, which means it might
do anything. In many real-world cases, C programs have turned control
of the running process over to an attacker who devised some malicious
input.

I think I know C and C++ pretty well, but when I'm faced with an
algorithm that's new to me, I prototype in a friendlier language. My
choice is Python, and quite a few other cryptographers join me in
that. Java is a reasonable choice if you already know it and are set
up to efficiently build Java programs, and you might want to look at
Jython which merges Java and Python.

Down the road, when you think you know C (and/or C++), check out
Gimpel Software's "Bug of the Month".
http://www.gimpel.com/html/bugs.htm


--
--Bryan Olson
 | 
Pages: 1
Prev: sphlib-2.1
Next: Keys Made Easier