WhyNot?

Fast parallel secure hashing

Category: Software
Responses: 1 (1 in support, 0 neutral, 0 in opposition)
Number of views: 868
Tracking: Track this idea
Community Rating:Average AverageYour Rating:

Secure hashes are single threaded in conventional implementations. In the past, this made sense because only single cores were available. Today, however, multicore machines leave cores idle as the software crunches slowly using only one. This idea provides a small part of the solution.

A hash function reduces (compresses) a large amount of data (eg a file) to a small residue (the hash). It does so by repeatedly compressing blocks of the input into a residue which becomes the final hash. The individual compression steps use a function called a one-way compressor which takes two inputs (A and B) and gives a result C. It is called one way because knowing C and either of the inputs does not allow you to deduce the other input.

The usual combination is to feed C from the i-th step into A of the i+1-th step, while successive chunks of the input file provide the respective values for B. This forces the processing of the i+1-th step to wait until the completion of the i-th step.

The idea is to form a tree of steps. Given the input file is broken into blocks F1, F2 .. Fn; the Initialization Vector (IV) is paired with F1, F2 with F3 and so on with the natural count of input bytes appended to the file just before chunking. Any odd block left over is paired with the IV again. These pairs are fed in as A and B and processed in parallel to give C1, C2 .. Cm. Rinse, wash, repeat until one block is left, which is the hash result.

On uniprocessor systems, this will require a stack of intermediate results to be maintained, but only approx (64*log b) bytes for a 512bit calculation, where log b is log base 2 of the number of blocks. 2Kbytes of workspace should be overkill.

There are a number of fairly simple variations, and the usual refinements can, of course, be made.

nihil, Dec 02 2007

What do you think of this idea or comment?
(You can change your vote at any time)

agree I agree no opinion No opinion disagree I disagree

Users who liked this idea also liked:

Other ideas in category (Software):

Salty encryption (1 votes) Average
mute a web page (11 votes) Strong
Distributed set with bittorren (1 votes) Average
Text VoIP (1 votes) Average
Economics Simulation (9 votes) Strong
Invention Management Software (3 votes) Average
Attachment Notation (137 votes) Very strong
Fight Recognition Software (3 votes) Average
Make Photo Slideshow yourself (2 votes) Average
Studying leaf patterns (3 votes) Average
Encryption (3 votes) Weak
Searching for images (6 votes) Average
Compiler Security Optimization (4 votes) Average
Vector Datatype (3 votes) Weak
LIP-C (1 votes) Average
Spell checker collector (2 votes) Average
Cascading search (3 votes) Average
Software Formula for 2000 Years (3 votes) Weak
Triangular Pixels (4 votes) Average
Forwarding sent email message (5 votes) Average
Organise the Start menu (6 votes) Average
Simple Shared Key Setup (1 votes) Average
DDR-style piano software (4 votes) Average
root means suid (2 votes) Average
Scorchware (2 votes) Average
Six Degrees of Computation (2 votes) Average
X-drive ==> 2 physical drives (3 votes) Average
Fast parallel secure hashing (1 votes) Average
Standardized EULA (2 votes) Average
Description field for email (3 votes) Average
Honeypot feedback/automation (1 votes) Average
Audio bass and treble (3 votes) Average
Extension that highlights tags (1 votes) Average
Upper-lower case (2 votes) Average
New image file format (2 votes) Average
dual scroll bars (6 votes) Average
Tabbed Working (3 votes) Average
Temporary file highlight (5 votes) Strong
Better Search Engine Links (2 votes) Average
Smarter Programming (5 votes) Strong
Linux Distro for Business (2 votes) Average
File multiple rev eliminator (3 votes) Average
Mech. Design Software (2 votes) Average
Checking email addresses (3 votes) Average
Why Powerpoint? Be nonlinear (6 votes) Strong
Chat with iTunes Listeners (3 votes) Average
Ebay database (2 votes) Average
Encrypts the whole OS (2 votes) Average
Wind offset for car (3 votes) Weak
Collaborative License Rating (4 votes) Average
Multiscopic image modeler (2 votes) Average
Simple fix for posting here (1 votes) Average
Torrent-based podcasting (2 votes) Average
Browser Preloads Next Page (4 votes) Average
Officepets (3 votes) Average
Self Authentication & Decryptn (1 votes) Average
Ductile disk encryption (2 votes) Average
Printing Cost per Page (2 votes) Average
Community Font Classification (1 votes) Average
Ubiquitous virtual honeypots (7 votes) Strong
MS Outlook spouses (1 votes) Average
MS Outlook Contacts updates (1 votes) Average
One card for the wallet (12 votes) Strong
Camera as A4 Scanner (6 votes) Strong
Ogg/PCM (3 votes) Average
Keyboard equivalents (1 votes) Average
OS for visually impaired (4 votes) Average
Window Size Limiter (1 votes) Average
Print Police (1 votes) Average
MS Outlook Highlighter (1 votes) Average
Eye-Tracking Video Drivers (2 votes) Average
Linipedea (3 votes) Weak
MS Word Bookmarks & Summaries (3 votes) Average
anti-virus T-cells (2 votes) Average
savable scroll bars (2 votes) Average
save changes dialog options (3 votes) Average
Viral Marketing in Open Source (7 votes) Weak
Microsoft CD Bug Fixes (4 votes) Average
Virtual Scanner Software (5 votes) Average
Better Shrink Wrapped License (3 votes) Average
Bayesian learning for (4 votes) Average
enclosures (2 votes) Average
Chat Prog & Problem Solving (2 votes) Average
No comments from other members.

Add your comment