Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Designations  





2 Description  



2.1  The nonlinear transformation  





2.2  Linear transformation  





2.3  Key generation  





2.4  Encryption algorithm  





2.5  Decryption algorithm  







3 Cryptanalysis  





4 Adoption  





5 Source code  





6 References  














Kuznyechik






Čeština
Deutsch
Español
Русский
Українська
 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


Kuznyechik
General
DesignersInfoTeCS JSC[1]
First published2015
CertificationGOST, and FSS
Cipher detail
Key sizes256 bits Feistel network
Block sizes128 bits
StructureSubstitution–permutation network
Rounds10
Best public cryptanalysis
Ameet-in-the-middle attack on 5 rounds.[2]

Kuznyechik (Russian: Кузнечик, literally "grasshopper") is a symmetric block cipher. It has a block size of 128 bits and key length of 256 bits. It is defined in the National Standard of the Russian Federation GOST R 34.12-2015[3][4] and also in RFC 7801.

The name of the cipher can be translated from Russian as grasshopper, however, the standard explicitly says that the English name for the cipher is Kuznyechik (/kʊznˈɛɪk/). The designers claim that by naming the cipher Kuznyechik they follow the trend of difficult to pronounce algorithm names set up by Rijndael and Keccak.[5] There is also a rumor that the cipher was named after its creators: A. S. Kuzmin,[6] A. A. Nechaev[7] and Company (Russian: Кузьмин, Нечаев и Компания).[citation needed]

The standard GOST R 34.12-2015 defines the new cipher in addition to the old GOST block cipher (now called Magma) as one and does not declare the old cipher obsolete.[8]

Kuznyechik is based on a substitution–permutation network, though the key schedule employs a Feistel network.

Designations

[edit]

Finite field .

()

.

.

Description

[edit]

For encryption, decryption and key generation, the following functions:

, where , are binary strings of the form ( is string concatenation).

is a reversed transformation of .

— reversed transformation of ,

, where — composition of transformations and etc.

The nonlinear transformation

[edit]

Non-linear transformation is given by substituting S = Bin8 S' Bin8−1.

Values of the substitution S' are given as array S' = (S'(0), S'(1), …, S'(255)):

Linear transformation

[edit]

:

operations of addition and multiplication are carried out in the field .

Key generation

[edit]

The key generation algorithm uses iterative constant , i=1,2,…32 and sets the shared key as follows: .

Iterated keys:

Encryption algorithm

[edit]

where a — 128-bit string.

Decryption algorithm

[edit]

Cryptanalysis

[edit]

Riham AlTawy and Amr M. Youssef describe a meet-in-the-middle attack on the 5-round reduced Kuznyechik which enables recovery of the key with a time complexity of 2140, memory complexity of 2153, and data complexity of 2113.[2]

Alex Biryukov, Leo Perrin, and Aleksei Udovenko published a paper in which they show that the S-boxes of Kuznyechik and Streebog were not created pseudo-randomly but by using a hidden algorithm which they were able to reverse engineer.[9]

Later Leo Perrin and Aleksei Udovenko published two alternative decompositions of the S-box and proved its connection to the S-box of the Belarusian cipher BelT.[10] The authors of the paper note that while the reason for using such a structure remains unclear, generating S-boxes by a hidden algorithm contradicts the concept of nothing-up-my-sleeve numbers which could prove that no weaknesses were intentionally introduced in their design.

Riham AlTawy, Onur Duman, and Amr M. Youssef published two fault attacks on Kuznyechik which show the importance of protecting the implementations of the cipher.[11]

Adoption

[edit]

VeraCrypt (a fork of TrueCrypt) included Kuznyechik as one of its supported encryption algorithms.[12]

Source code

[edit]

References

[edit]
  1. ^ "Archived copy". Archived from the original on 2016-04-24. Retrieved 2016-04-13.{{cite web}}: CS1 maint: archived copy as title (link)
  • ^ a b Riham AlTawy; Amr M. Youssef (2015-04-17). "A Meet in the Middle Attack on Reduced Round Kuznyechik" (PDF). IEICE Transactions on Fundamentals of Electronics, Communications and Computer Sciences. 98 (10): 2194. Bibcode:2015IEITF..98.2194A. doi:10.1587/transfun.E98.A.2194.
  • ^ "GOST R 34.12-2015". GostPerevod.
  • ^ "National Standard of the Russian Federation GOST R 34.12–2015" (PDF). tc26.ru. Archived from the original (PDF) on 2017-11-04.
  • ^ "Low-Weight and Hi-End: Draft Russian Encryption Standard" (PDF). Markku-Juhani O. Saarine.
  • ^ "A. S. Kuzmin's research while affiliated with Lomonosov Moscow State University and other places". ResearchGate.
  • ^ "Profile: A. A. Nechaev". ResearchGate.
  • ^ "GOST R 34.12–2015: what to expect from a new standard?". itsec.ru (in Russian).
  • ^ Alex Biryukov; Leo Perrin; Aleksei Udovenko (2016-02-18). "Reverse-Engineering the S-box of Streebog, Kuznyechik and STRIBOBr1 (Full Version)" (PDF). {{cite journal}}: Cite journal requires |journal= (help)
  • ^ Léo Perrin, Aleksei Udovenko (2017). "Exponential S-boxes: a Link Between the S-boxes of BelT and Kuznyechik/Streebog" (PDF). Archived from the original (PDF) on 2021-04-17. Retrieved 2017-09-14.
  • ^ Riham AlTawy; Onur Duman; Amr M. Youssef (2015-04-17). "Fault Analysis of Kuznyechik" (PDF). {{cite journal}}: Cite journal requires |journal= (help)
  • ^ "Kuznyechik". VeraCrypt Documentation. IDRIX. Retrieved 2018-02-03.

  • Retrieved from "https://en.wikipedia.org/w/index.php?title=Kuznyechik&oldid=1157204093"

    Categories: 
    Block ciphers
    GOST standards
    Hidden categories: 
    CS1 maint: archived copy as title
    CS1 Russian-language sources (ru)
    CS1 errors: missing periodical
    Articles with short description
    Short description is different from Wikidata
    Articles containing Russian-language text
    All articles with unsourced statements
    Articles with unsourced statements from October 2020
     



    This page was last edited on 27 May 2023, at 01:51 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki