SWIFFT is a set of cryptographic hash functions with proven robustness [1] [2] [3] . They are based on the Fast Fourier Transform (FFT, Fast Fourier Transform , FFT ) and use the algorithm. The cryptographic strength of SWIFFT (in the asymptotic sense) [4] is mathematically proven using the recommended parameters [5] . Finding collisions in SWIFFT in the worst case requires no less time than finding short vectors in cyclic / . Practical application of SWIFFT will be valuable precisely in those cases when resistance to collisions is especially important. For example, digital signatures that must remain reliable for a long time.
| Swift | |
|---|---|
| Developers | Vadim Lyubashevsky, Daniel Michianchio, Chris Peikert, Alon Rosen |
| Created by | 2008 |
| Published | 2008 |
| Type of | hash function |
This algorithm provides a bandwidth of about 40 Mb / s on an Intel Pentium 4 processor with a clock frequency of 3.2 GHz [6] [1] . A study was conducted aimed at accelerating the FFT, which is used in SWIFFT [7] . As a result, the speed of the algorithm could be increased by more than 13 times [6] . This SWIFFT implementation turned out to be faster than the implementation of widespread hash functions [8] .
At the competition of the US National Institute of Standards and Technology [2] in 2012, SWIFFTX (SWIFFT modification) was proposed as SHA-3 (to replace older SHA-2 and especially SHA-1 [9] ), but was rejected in the first round [ 10] .
Job Description
SWIFFT functions can be described as a simple algebraic expression over some polynomial ring [1] [11] . The family of functions depends on three main parameters.: let
will be a power of 2,
Is a small integer, and
- Not necessarily a prime , but it’s best to choose it as a prime. Define
like a kind ring
. For example, the ring of polynomials in
whose coefficients are integers,
- the number by which we perform the division modulo, and
. Item from
may be a polynomial of degree less
with coefficients from
.
A specific function in the SWIFFT family is defined as fixed items
rings
called multipliers. This function over the ring
can be written as follows:
,
Where - polynomials with binary coefficients corresponding to a binary input message of length .
The operation algorithm is as follows: [1] [12] [11]
- Is taken - irreducible polynomial over
- A message is input lengths
- converted to a set of polynomials in a certain ring of polynomials with binary coefficients
- Fourier coefficients are calculated for each
- Fixed Fourier coefficients are set. depending on the SWIFFT family
- Fourier coefficients are multiplied in pairs with for each
- The inverse Fourier transform is used in order to obtain polynomials degrees no more
- Calculated modulo and .
- converted to bits and send them to the output
- The fast Fourier transform operation in step 4 is easy to reverse. It is carried out in order to achieve mixing - mixing bits supplied to the input.
- The linear combination in step 6 leads to , because it compresses the input.
Example
The specific values for the parameters n , m and p are selected as follows: n = 64, m = 16, p = 257 [13] . For these parameters, any fixed compression function of the family will accept a message of length mn = 1024 bits (128 bytes) as input. The output is in the range which has a size . Output in can be represented using 528 bits (66 bytes).
Calculation of the result of multiplication of polynomials
The hardest part to calculate the above expression is to calculate the result of the multiplication [1] [14] . A quick way to compute this product is to use , which states that under certain conditions the following holds:
Here denotes the Fourier transform , and the operation means multiplying coefficients with the same index. In the general case of convolution theorems convolution matters, not multiplication. However, it can be shown that multiplication of polynomials is a convolution.
Fast Fourier Transform
To find the Fourier transform, we use the Fast Fourier Transform (FFT), which is performed in [1] . The multiplication algorithm is as follows [14] : we calculate all the Fourier coefficients for all polynomials immediately using the FFT. Then we multiply the corresponding Fourier coefficients of two polynomials in pairs. After that we use the inverse FFT, after which we get a polynomial of degree not higher .
Discrete Fourier Transform
Instead of the usual Fourier transform in SWIFFT, the discrete Fourier transform (DFT) [1] [14] is used . It uses the roots of unity in instead of complex roots from one. This will be true if Is a finite field , and its 2 n th simple roots of unity exist in this field. These conditions will be satisfied if we take such a prime , what divided by .
Select options
The parameters m , p , n must satisfy the following requirements [15] :
- n must be a power of two
- p must be a prime
- p -1 should be divided by 2 n
- m
You can take, for example, the following parameters: n = 64, m = 16, p = 257. We take bandwidth at the level of 40Mb / s [6] , protection from collision search - operations.
Statistical Properties
- Universal hashing. The SWIFFT family of functions is universal [1] . In other words, for any different fixed and a randomly selected function from the family the probability that the equality holds , is inversely proportional to the size of the selected range.
- Regularity. Functions from the SWIFFT family of compression functions are regular [1] .
- Entropy generator. SWIFFT is [1] . For hash tables and the applications associated with them, it is desirable that the keys for the values supplied to the function be distributed evenly (or close to uniform distribution), even if the input values are not evenly distributed. Hash functions that behave in a similar way are called entropy generators, because they can represent unevenly distributed parameters that are (almost) uniform in output. Formally, this property usually has a family of functions from which one function was randomly selected.
Cryptographic Properties and Security
- SWIFFT is not a due to linearity [1] . For an arbitrary function from the SWIFFT family the following is true: for two input parameters , such that can also be an input parameter, executed . The fulfillment of this ratio does not fit a random function, and an attacker can easily distinguish our function from a random one.
- The cryptographic resistance to collisions (in the asymptotic sense) is proved for the SWIFFT family of functions under the relatively moderate assumption that the problem of finding short vectors in cyclic / ideal lattices is difficult in the worst case. This means that the SWIFFT family of functions is also resistant to the attack of finding the second prototype [4] [16] .
Theoretical Strength
SWIFFT - [1] [3] . As in most cases, the proof of the stability of functions is based on the fact that the mathematical problem used in functions cannot be solved in polynomial time. This means that the stability of SWIFFT lies only in the fact that it is based on a complex mathematical problem.
In the case of SWIFFT, the proven stability lies in the problem of finding short vectors in cyclic / [17] . It can be proved that the following statement is true: suppose we have an algorithm that can find collisions of a function for a random version of SWIFFT obtained from for some possible time with probability . This means that the algorithm works only on a small but noticeable proportion of the functions of the family. Then we can also find the algorithm who can always find a short vector on any ideal lattice above the ring for some time possible dependent on and . This means that finding collisions in SWIFFT is no less difficult, the task of finding short vectors in a lattice over , for the solution of which there are only exponential algorithms.
Practical Resilience
The authors of this hash function examined it for vulnerabilities to various attacks and found that the “birthday” attack requires the least amount of hash counting ( 2,106 ) to find collisions. [18] [1] . Permutation attacks require 2,448 counting operations for standard parameters. A complete enumeration of possible values will require 2,528 hash counting operations. This, as a rule, is enough to make an enemy attack impossible.
See also
- Fast Fourier Transform
Notes
- ↑ 1 2 3 4 5 6 7 8 9 10 11 12 13 Lyubashevsky et al., 2008 .
- ↑ 1 2 Arbitman et al., 2008 .
- ↑ 1 2 Györfi et al., 2012 , p. 2.
- ↑ 1 2 Arbitman et al., 2008 , p. one.
- ↑ Buchmann, Lindner, 2009 , p. 1-2.
- ↑ 1 2 3 Györfi et al., 2012 , p. 15.
- ↑ Györfi et al., 2012 , p. 15-16.
- ↑ Györfi et al., 2012 , p. sixteen.
- ↑ PRE- SHA-3 COMPETITION . National Institute of Standards and Technology (April 15, 2005).
- ↑ Second Round Candidates . National Institute of Standards and Technology (January 19, 2010). Date of treatment February 14, 2010.
- ↑ 1 2 Györfi et al., 2012 , p. 3.
- ↑ Arbitman et al., 2008 , p. 4-5.
- ↑ Györfi et al., 2012 .
- ↑ 1 2 3 Györfi et al., 2012 , p. four.
- ↑ Buchmann, Lindner, 2009 .
- ↑ Šarinay, 2010 , p. 9.
- ↑ Arbitman et al., 2008 , p. 10-11.
- ↑ Buchmann, Lindner, 2009 , p. 2.
Literature
Books
- Schneier B. Applied Cryptography. Protocols, algorithms, C source code = Applied Cryptography. Protocols, Algorithms and Source Code in C. - M .: Triumph, 2002 .-- 816 p. - 3000 copies. - ISBN 5-89392-055-4 .
Articles
- Lyubashevsky V. , Micciancio D. , Peikert C. et al. SWIFFT: A Modest Proposal for FFT Hashing // Fast Software Encryption - 2008. - Vol. 5086. - P. 54–72. - doi: 10.1007 / 978-3-540-71039-4_4
- Arbitman Y. , Dogon G. , Lyubashevsky V. et al. SWIFFTX: A Proposal for the SHA-3 Standard - 2008.
- Buchmann J. , Lindner R. Secure Parameters for SWIFFT // Progress in Cryptology - INDOCRYPT 2009 : 10th International Conference on Cryptology in India, New Delhi, India, December 13-16, 2009. Proceedings / B. Roy , N. Sendrier - Springer Berlin Heidelberg , 2009. - P. 1-17. - ISBN 978-3-642-10627-9 - doi: 10.1007 / 978-3-642-10628-6_1
- Šarinay J. Interpreting Hash Function Security Proofs // Provable Security : 4th International Conference, ProvSec 2010, Malacca, Malaysia, October 13-15, 2010. Proceedings / S. Heng , K. Kurosawa - Springer Berlin Heidelberg , 2010. - P. 119-132. - ISBN 978-3-642-16279-4 - doi: 10.1007 / 978-3-642-16280-0_8
- Győrfi T. , Cret O. , Hanrot G. et al. High-Throughput Hardware Architecture for the SWIFFT / SWIFFTX Hash Functions // Cryptology ePrint Archive - International Association for Cryptologic Research , 2012.