A NEW HASH ALGORITHM: Khichidi-1
Total Page:16
File Type:pdf, Size:1020Kb
A NEW HASH ALGORITHM: Khichidi-1 Abstract This is a technical document describing a new hash algorithm called Khichidi-1 and has been written in response to a Hash competition (SHA-3) called by National Institute of Standards and Technology (NIST), USA. Tata Consultancy Services (TCS) has designed a new secure hash algorithm, Khichidi-1, which can be used to generate a condensed representation of a message called a Message Digest. A group of functions used in the development of Khichidi-1 has been described followed by a detailed explanation of preprocessing approach. Differences between Khichidi-1 and NIST’ SHA-2, the algorithm that is in use widely, have also been highlighted. Analytical proofs, implementations with examples, various attack scenarios, entropy tests, security strength and computational complexity of the algorithm are described as separate sections in this document. Author: Natarajan Vijayarangan, Ph. D © Copyright 2008, Tata Consultancy Services Limited (TCS). All rights reserved. Khichidi-1 Algorithm Preface Our research work describes a new design and analysis of hashing. A hash algorithm takes any message and produces a “fixed length value” in such a way that any two messages are unlikely to have the same fixed length value. This fixed length value is called a hash value / message digest. When two messages have the same hash value, this is known as a collision. A good hashing algorithm minimizes collisions for a given set of likely data inputs. To achieve this, we have started designing and analyzing a hash function that could be used for digital signature technology. Attacks on MD-5, SHA-0 and SHA-1 by Wang et al [25,26] has given a huge impetus to research in designing practical cryptographic hash functions as well as cryptanalysis of existing functions. In the year of 1998, Hitachi Ltd had patented special purpose hash functions using collision free and one way properties. IBM had published SHA-IME (Improved Message Expansion) in 2005 to avoid differential attacks in SHA. Microsoft R&D had performed cryptanalysis of hash functions using Boolean Satisfiability (SAT) solvers. In the year of 2007, Tata Consultancy Services (TCS) patented a cryptographic research work [27,28], which introduces a message pre processing function (MP) that is bijective and used to reduce hash collisions. Later, TCS modified MP functions and applied them in designing Khichidi-1 algorithms [29]. All the research work on Khichidi-1 has been carried out in TCS Innovation labs, Hyderabad. The inventor, Dr. N. Vijayarangan, has handled the hash project work with the support from Dr. M. Vidyasagar, Mr. K. Ananth Krishnan, Mr. Sitaram Chamarty, Dr.Rajgopal Srinivasan, Dr. A. Sarangarajan, Mr. B.N. Kishore, Mr. R. RamKumar, Mr. Chalamala Srinivasa Rao, Mrs. Priya V. Som, Ms. Divya Vyas and Ms. Mallika Choudhuri 2 Khichidi-1 Algorithm Table of Contents 1. Introduction..................................................................................................................... 5 2. Definition ........................................................................................................................ 6 2.1 Glossary of Terms and Acronyms ............................................................................ 6 2.2 Algorithm Parameters, Symbols, and Terms ............................................................ 6 2.2.1 Parameters.......................................................................................................... 6 2.2.2 Symbols.............................................................................................................. 7 3. Notation and Conventions............................................................................................... 8 3.1 Bit Strings and Integers............................................................................................. 8 3.2 Operations on Words ................................................................................................ 8 4. Functions......................................................................................................................... 9 4.1 Shuffling Bits............................................................................................................ 9 4.1.1 Rationale ............................................................................................................ 9 4.2 T-function ................................................................................................................. 9 4.2.1 Rationale .......................................................................................................... 10 4.3 Linear Feedback Shift Registers ............................................................................. 10 4.3.1 Rationale .......................................................................................................... 11 4.3.2 Pseudo code for LFSR: .................................................................................... 11 5. PREPROCESSING....................................................................................................... 12 5.1 Dividing the Message ............................................................................................. 12 5.1.1 Khichidi-1 (224-bits)........................................................................................ 12 5.1.2 Khichidi-1 (256-bits)........................................................................................ 12 5.1.3 Khichidi-1 (384-bits)........................................................................................ 12 5.1.4 Khichidi-1 (512-bits)........................................................................................ 13 5.2 Padding the Message .............................................................................................. 13 5.2.1 Khichidi-1 (224-bits)........................................................................................ 13 5.2.2 Khichidi-1 (256-bits)........................................................................................ 13 5.2.3 Khichidi-1 (384-bits)........................................................................................ 14 5.2.4 Khichidi-1 (512-bits)........................................................................................ 14 5.3 Setting the Initial Hash Value................................................................................. 14 5.3.1 Khichidi-1 (224-bits)........................................................................................ 14 5.3.2 Khichidi-1 (256-bits)........................................................................................ 15 5.3.3 Khichidi-1 (384-bits)........................................................................................ 15 5.3.4 Khichidi-1 (512-bits)........................................................................................ 16 6. Khichidi-1 Algorithm.................................................................................................... 17 6.1 Khichidi-1 (224-bits) .............................................................................................. 17 6.1.1 Khichidi-1 (224-bits) Preprocessing .............................................................. 17 6.1.2 Khichidi-1 (224-bits) Hash Computation ........................................................ 18 6.2 Khichidi-1 (256-bits) .............................................................................................. 19 3 Khichidi-1 Algorithm 6.2.1 Khichidi-1 (256-bits) Preprocessing .............................................................. 19 6.1.2 Khichidi-1 (256-bits) Hash Computation ........................................................ 19 6.3 Khichidi-1 (384-bits) .............................................................................................. 20 6.3.1 Khichidi-1 (384-bits) Preprocessing .............................................................. 20 6.1.2 Khichidi-1 (384-bits) Hash Computation ........................................................ 21 6.4 Khichidi-1 (512-bits) .............................................................................................. 22 6.4.1 Khichidi-1 (512-bits) Preprocessing .............................................................. 22 6.1.2 Khichidi-1 (512-bits) Hash Computation ........................................................ 22 7. Analysis of Attacks on Khichidi-1................................................................................ 27 8. Security Reduction Proof.............................................................................................. 44 9. Comparison of SHA-2 and Khichidi-1 ......................................................................... 46 10. Strength of Khichidi-1 ................................................................................................ 51 11. Computing the number of rounds in Khichidi-1......................................................... 53 12. Flexibility of Changing Parameters in Khichidi-1...................................................... 56 13. Diagrams..................................................................................................................... 57 14. Computational complexity of Khichidi-1 ................................................................... 63 15 Collision resistance properties of Khichidi-1 .............................................................. 66 16 Applications of Khichidi-1 .........................................................................................