IOTA Crypto Core FPGA

ORIGINAL POST
By MicroEngineer
components
Hardware Components
details

0_N242--xRYJRdEL0v.png

IOTA Crypto Core FPGA — 2ndProgress Report

Updates

Crypto FPGA Core Optimizations

Troika (Mini-)Core

  • The FPGA core supports auto-padding for 243Trit input vectors (almost everything with addresses and signing works on 243Trit). The core automatically can add an additional block with padding like it is done in the reference implementation of Troika
  • The core can do multiple hashing-rounds (also with auto-padding). For instance a private key has to be hashed several times in a loop for address generation. The same with signing a transaction. This function allows to hash input data e.g. 27 times in a loop without having to transfer new data via SPI to the core.
  • The core can do nested hashing. There is only one hashing-core but it can happen that multiple hashs with different states have to be hashed nested. There is a kind of stack implemented on which the state can be pushed and popped.

Secure Element

License Issue of Cortex M1

Next steps

  • Software for the secure element has to be developed.
  • I have to start with the documentation of the project (installing, Debugging, Synthesizing the core, …)
  • I have to build the Cortex M1 processor system from scratch (see above)
  • When my PCBs arrive (the HAT for the Arty S7) I’ll have to assemble it and order parts (I really should order parts before arrival^^)

0_N242--xRYJRdEL0v.png

IOTA Crypto Core FPGA — 2ndProgress Report

Updates

Crypto FPGA Core Optimizations

Troika (Mini-)Core

  • The FPGA core supports auto-padding for 243Trit input vectors (almost everything with addresses and signing works on 243Trit). The core automatically can add an additional block with padding like it is done in the reference implementation of Troika
  • The core can do multiple hashing-rounds (also with auto-padding). For instance a private key has to be hashed several times in a loop for address generation. The same with signing a transaction. This function allows to hash input data e.g. 27 times in a loop without having to transfer new data via SPI to the core.
  • The core can do nested hashing. There is only one hashing-core but it can happen that multiple hashs with different states have to be hashed nested. There is a kind of stack implemented on which the state can be pushed and popped.

Secure Element

License Issue of Cortex M1

Next steps

  • Software for the secure element has to be developed.
  • I have to start with the documentation of the project (installing, Debugging, Synthesizing the core, …)
  • I have to build the Cortex M1 processor system from scratch (see above)
  • When my PCBs arrive (the HAT for the Arty S7) I’ll have to assemble it and order parts (I really should order parts before arrival^^)

COMMENTS

Please Login to comment
  Subscribe  
Notify of
POSTED BY
TAGS
Reusable S/W