I have a B.S. Degree in computer science and have taken more math classes then the average person but not enough to consider myself good at it. I have been briefly introduced to proofs.
I'm currently writing a very simple algorithm and its corresponding program which builds upon the heavily used Secure Hash Algorithms. I'm willing to conceded that the complexity in that set of algorithms is beyond my understanding and will assume they do what they say (Two different inputs will rarely [Astronomically high chance of it happening] create the same outputs and the same inputs will always create the same outputs). I would like to prove or disprove that my small algorithm does not break this.
I need to (re)learn about proofs and how to write them and how to go from my algorithm pseudo code to a proof showing that it doesn't break SHA's properties, Where do I start?
What I know about the algorithm and the mathematics involved: The algorithm uses a SHA hash to transverse a circular list of 1000 words. The Numbers and Letters in the SHA hash determines in which direction and how many spaces to move. This is used to build a list of 20 words. Is this list of 20 words just as collision resistant (Hard for 2 different hashes to create the same word list) as the original SHA hash.
I guess the first thing I would need to know is the chances of a collision using the SHA algorithms.
And then...
A Combinatorics proof which is where my problems start.
1000 words in a circular list.
2 directions (left and right)
Hashes of arbitrary length.