1
$\begingroup$

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.

  • 1
    Your problem is one of combinatorics, I see (hashing). However, you have not stated what are you trying to prove: the algorithms complexity or the fact that two inputs rarely give the same output (or something else)?2017-02-12
  • 0
    @theSongbird not complexity as the algorithm is just operations on a list and so I'm not to worried about that. I'm leaning more towards your second guess but it could be the something else you mentioned.2017-02-12
  • 0
    OK, so basically you'd like to give a formal proof as to why SHA has a very low chance to get the same result from different inputs.2017-02-12
  • 0
    @theSongbird no I'm assuming SHA is correct, I'd like to give a formal proof of my algorithm (which uses the SHA output) and prove that the chance of collision (same output for different inputs) is as equally astronomical.2017-02-12
  • 1
    Can you give a more detailed description of your algorithm (don't try to hold back, I'm also a CS student)2017-02-12
  • 0
    @theSongbird I've added a simple description of the algorithm in the original posted question.2017-02-15

0 Answers 0