Realize Rijndael ciphering algorithm on ARM microprocessor

October 2, 2000 such as foreword, NBS NIST announces, ” RijndaeI algorithm ” which the Belgian cryptologist Joat Daemen and Vincent Rijmen designed Until safety fine and operation fast and storage requirement low and flexibility better to elect AES finally. This algorithm is immune to various present threats. This indicates information technology has new security tools, offer the powerful guarantee for development of the computer conferencing and E-business. In present digital information technology and what the network technique is developed at a high speed back PC era, the technology of the embedded system has already widely permeated through scientific research, in every aspect such as engineering, military technique, all kinds of industries and commercial culture and arts and daily life, become one of the hottest technology at present. This text use Beijing to be rich to it creates whom industrial Science Technologies Co., Ltd. develops to be UP-NETARM300 embedded to develop board, under ARM SDT 2.51 integrated development environment, sets up the project file based on C/ OS-Il operating system, transferring ARM assembly routine and C procedure separately realizes Rijndael algorithm on the embedded microprocessor, and compared the efficiency of the two. 128 as example with packet length and key size as follows, recommend, transfer ARM, collect realization Cheng, encrypt the algorithmic course. This implementation algorithm can expand key size to 192 location or 256. /p>

A brief introduction of 1 1 Rijndael ciphering algorithm. An algorithm procedure structure Rijndael encrypts algorithmic 128 input and divides into groups to describe with the square matrix taking byte as unit. This array is duplicated the array to State. The cipher procedure is divided into four stages: The cipher key expands, a cipher key adding, Nr-1 (correspond to 128, 192, 256 key size, Nr is 10, 12, 14 respectively) The wheel is varied and the last round is varied. The wheel is varied including the Displacement of byte, walking and shifting, listing and obscured and a cipher key adds four pieces of course, the last round vary including Displacement of byte, do, transfer, and a cipher key adds three pieces of course. Use false C coded representation as follows:

Rijndael (State, CipherKey) {

KeyExpansion (CipherKey, ExpandKey) ; //The cipher key is expanded

AddRoundKey (State, RoundKey) ; //A cipher key is added

For (i =1; i

Round (State, ExpandKey+4*i) ; //The wheel is varied

FinalRound (State, ExpandKey+4 * Nr) ; //The last round is varied

Round (State, RoundKey) {//The wheel is varied

SubByte (State) ; //Displacement of byte

ShiftRow(State) ; //Yes shift

MixColumn(State) ; //List and obscure

AddRoundKey(State, RoundKey) ; A cipher key is added

FinalRound(State, RoundKey) {//The last round is varied

SubByte(State) ;

ShiftRow(State) ;

AddRoundKey(State,RoundKey) ; 1. Main variety (1) that 2 algorithms use Have operated and replaced the complicated affine transform based on matrix multiplication by a simple table look-up in Displacement SubByte of byte. Rijndael has defined 16 for one

For more information about these, please visit our website at