winzip icon

SAHA 192 - PRNG HASH - Unique

Submitted on: 12/11/2015 5:42:34 AM
By: Nick Bullar 
Level: Advanced
User Rating: Unrated
Compatibility: VB 5.0, VB 6.0
Views: 2196
author picture
     This is an ideal 192-bit hash function that mixes all my own bespoke techniques. You will see some borrowing of methods from RC4, Xor, AddSum and some totally unique methods you may have never come accross. This is the prequel to a suite that allows you to generate and produce passwords, from memorising a few details and most importantly, that product will have PLAUSIBLE DENIABILITY. Anyone interested in seeing a new PRNG or a new HASH, ideal for pass-phrases: this is one to check out. If you think you've found a weakness of any kind (pre-image, lookup tables, birthday attack) then let me know in comments or email Any good finds will be rewarded!

winzip iconDownload code

Note: Due to the size or complexity of this submission, the author has submitted it as a .zip file to shorten your download time. Afterdownloading it, you will need a program like Winzip to decompress it.Virus note:All files are scanned once-a-day by Planet Source Code for viruses, but new viruses come out every day, so no prevention program can catch 100% of them. For your own safety, please:
  1. Re-scan downloaded files using your personal virus checker before using it.
  2. NEVER, EVER run compiled files (.exe's, .ocx's, .dll's etc.)--only run source code.
  3. Scan the source code with Minnow's Project Scanner

If you don't have a virus scanner, you can get one at many places on the net

Report Bad Submission
Use this form to tell us if this entry should be deleted (i.e contains no code, is a virus, etc.).
This submission should be removed because:

Your Vote

What do you think of this code (in the Advanced category)?
(The code with your highest vote will win this month's coding contest!)
Excellent  Good  Average  Below Average  Poor (See voting log ...)

Other User Comments

12/11/2015 5:58:02 PMNick Bullar

This is actually the WRONG CODE, this is a very nice hash but it's output is only 176 bits and it lacks an extra step. All the same if you could find a collision of two different values, I would pay you 1 BTC (~$450). I woulld pay you 2BTC if you can tell me an input that makes the output 507A31406FB3D07CF617587BB21B24E8A60ED289DB40 ;)
(If this comment was disrespectful, please report it.)

12/12/2015 10:50:31 AMNick Bullar

A useful addition in the final code is this function (you can use it any place you have a hexidecimal string you wish to manipulate: you may want to call initsbox function first though:

Public Function SBoxConvertHex(HexStr As String) As String
Dim jj, tB As Double, bC As Long, OutTxtArr() As String
For jj = 1 To Len(HexStr) Step 2
tB = Val("&H" & Mid(HexStr, jj, 2))
tB = s(tB)
ReDim Preserve OutTxtArr(bC)
OutTxtArr(bC) = D2Hex(tB, 2)
bC = bC + 1
SBoxConvertHex = Join(OutTxtArr, "")
End Function
(If this comment was disrespectful, please report it.)

12/14/2015 12:40:08 AMNick Bullar

All offers of BTC for finding collisions or a pre-image attack still stand but in terms of code, I urge you to look for the newer version as this contains several bugs / CPU-Wasting loops.
(If this comment was disrespectful, please report it.)


Add Your Feedback
Your feedback will be posted below and an email sent to the author. Please remember that the author was kind enough to share this with you, so any criticisms must be stated politely, or they will be deleted. (For feedback not related to this particular code, please click here instead.)

To post feedback, first please login.