NORX optimized for AVR
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



This is an optimized version of NORX32, an authenticated encryption algorithm (see, for AVR microcontrollers. This implementation is specifically optimized for the ATmega family.

How to compile & run on Atmega2560 for Debian/Ubuntu

  • To clone the repository:

$ git clone

  • The packages avr-gcc, avr-libc, avrdude and binutils-avr are required:

$ sudo apt-get install gcc-avr avr-libc avrdude binutils-avr

  • Make sure the development board is plugged in through USB and seen by the OS as /dev/ttyACM0. Otherwise either unplug the other device(s) or change the DEVICE variable in the makefile. You can list devices by running the command:

$ ls -l /dev/ttyACM*

  • Access to this file is restricted to users in the group dialout. You can add a user to this group by running:

$ sudo useradd -G dialout <user>

  • Go to the directory norxavr3241 or norxref3241, depending on which you want to run. To recreate the encryption results listed on page 55 (NORX32-4-1) of the NORX specification (, run:

$ make norxtest

  • To run a speedtest, run:

$ make speedtest

The number of rounds can be changed to (6 for NORX32-6-1, for example) by editing the variable NORX_R in norx/norx_config.h.