Paper 2015/886

Applying Cryptographic Acceleration Techniques to Error Correction

Rémi Géraud, Diana-Stefania Maimut, David Naccache, Rodrigo Portella do Canto, and Emil Simion


Modular reduction is the basic building block of many public-key cryptosystems. BCH codes require repeated polynomial reductions modulo the same constant polynomial. This is conceptually very similar to the implementation of public-key cryptography where repeated modular reduction in $\mathbb{Z}_n$ or $\mathbb{Z}_p$ are required for some fixed $n$ or $p$. It is hence natural to try and transfer the modular reduction expertise developed by cryptographers during the past decades to obtain new BCH speed-up strategies. Error correction codes (ECCs) are deployed in digital communication systems to enforce transmission accuracy. BCH codes are a particularly popular ECC family. This paper generalizes Barrett's modular reduction to polynomials to speed-up BCH ECCs. A BCH$(15,7,2)$ encoder was implemented in Verilog and synthesized. Results show substantial improvements when compared to traditional polynomial reduction implementations. We present two BCH code implementations (regular and pipelined) using Barrett polynomial reduction. These implementations, are respectively 4.3 and 6.7 faster than an improved BCH LFSR design. The regular Barrett design consumes around 53$\%$ less power than the BCH LFSR design, while the faster pipelined version consumes 2.3 times more power than the BCH LFSR design.

Available format(s)
Publication info
Published elsewhere. SECITC 2015
polynomial BarrettBCHerror correcting codescryptographic acceleration techniques
Contact author(s)
maimut diana @ gmail com
2015-09-13: received
Short URL
Creative Commons Attribution


      author = {Rémi Géraud and Diana-Stefania Maimut and David Naccache and Rodrigo Portella do Canto and Emil Simion},
      title = {Applying Cryptographic Acceleration Techniques to Error Correction},
      howpublished = {Cryptology ePrint Archive, Paper 2015/886},
      year = {2015},
      note = {\url{}},
      url = {}
Note: In order to protect the privacy of readers, does not use cookies or embedded third party content.