13 IN 1 HARDWARE IMPLEMENTATION OFRJINDAEL CIPHERECE636 PROJECTTIM GREMBOWSKIMAY 5, 2001AGENDARATIONALEIMPLEMENTATION PLANOPERATIONAL OVERVIEWKEY UNITCOMPARE / STATUSENCRYPTION UNITCOMPARE / STATUSOPPORTUNITIESWHY 3 KEY SIZES IN ONE UNIT?INCREASED SECURITYFUTURE REQUIREMENTSVERSATILITYWHY T-BOX VS S-BOX ENCRYPT UNIT?POTENTIAL ROUND CYCLE TIME IMPROVEMENTIMPLEMENTATION PLANCIRCUIT IMPLEMENTATIONSABCDESCRIPTION Single key / S-Table 3-in-1 / S-Table 3-in-1 / T-TableKEY SIZE, BYTES 16 16, 24, 32 16, 24, 32LOOKUP TABLESSSTENCRYPTION /DECRYPTIONYYYINTERNAL KEYGENERATIONYYYSUBKEY STORAGE Y Y YATTRIBUTESUSE Used as a reference Versatile VersatileSECURITY Key limited to 16bytesIncreased security Increased securityResource sharingoptionResource sharingoptionUnique ENC/DECtablesCOSTX8 tables(4K Bytes)X8 tables(4K Bytes)X32 – highest RAMrequirements(16 Kbytes)KEY SCHEDULE No key setup time forencryptionPotential for KeyLatencyPotential for KeyLatencyTHROUGHPUT Combinatorial logicafter S-table lookupsCombinatorial logicafter S-table lookupsPotential increaseKEY UNITOPERATIONAL OVERVIEW32 BIT WORD OUTPUTMESSAGE WORD 3MESSAGE WORD 2MESSAGE WORD 1MESSAGE WORD 0KEY WORD 3KEY WORD 2KEY WORD 1KEY WORD 0 ENC UNITKEY RAM A | BTIMEINPUT CONTROLSMESSAGE 0 0KEY 128 0 1KEY 192 1 0KEY 256 1 1•32 BIT WORD INPUT/OUTPUT•4 WORDS TO ONE BLOCK• SUBKEYS STORED FOR MULTIPLE M BLOCKS•TWO KEY STORAGE AREAS1 WORKING / 1 GENERATIINGSINGLE KEY SCHEDULING UNITSK-431SK-4031SK-1031SK-2031SK-3000 01 10 11 0031KEYIN00 SRAM DATA INPUTS 31SK-1TRANSFORMED0 ROTBYTE 310 S-BOX 310 RCON 31S0S1SK-1KEYINPUTSSKSK•SK = SUBKEY•“-” = PREVIOUS SK•S0 & S1 CONTROLLEDBY COUNTERS2SINGLE KEY SCHEDULING COUNTERSCOUNTERS USEDROUND - 10 DOWN TO 0 (10 ROUNDS + INITIAL KEY)WORD - 3 DOWN TO 0 (4 WORDS / ROUND)PURPOSECONTROL INPUTS FOR TRANSFORMATIONSIGNAL STOP KEY PROCESSINGKEY STORAGE ADDRESSING (RAM)3 IN 1 KEY SCHEDULING UNITS0S1SKSK-4,6,831SK-4031SK-1031SK-2031SK-3000 01 10 11 0031KEYIN00 SRAM DATA INPUTS 31SK-1TRANSFORMED0 RCON 31SK31SK-5031SK-6031SK-7031SK-80INPUTCONTROL0 S-BOX 310 ROTBYTE 31BY INPUTCONTROLSAND WORDCOUNTER003 IN 1 COUNTERS2 LOADABLE COUNTERS USEDFOR 128, 192 AND 256 BITS KEY SIZESROUND - “R” DOWN TO 0 (R = 10, 12, 14)WORD - “W” DOWN TO 0 (W = 3, 5, 7)ADDITIONAL COUNTERMESSAGE BLOCK = 128 BITSKEY STORAGE ADDRESSING (RAM)3 DOWN TO 0 (4 WORDS / ROUND)1 TO 1 SUBKEY GENERATION TESTINGROTBYTE1ST KEYWORD(SK-4)ROUNDCONSTANT4TH KEY WORDTRANSFORMED(SK-1 TX)CURRENTSUBKEY(SK)3 TO 1 SUBKEY GENERATION TESTINGSUBKEY FOR RND 14 WITHAN INITIAL KEY SIZE OF 256BITSKEY CORE UNIT RESULTSIMPLEMENTATION 1 TO 1 3 TO 1COST (CLB#) 469 581CLB% USE 39% 48%SPEED (MHz) 68.4 66.35*TECHNOLOGY: VIRTEXE / V100ECS1443S BOX ENCRYPTION CORE UNITMESSAGE BLOCKBYTESUBMIXCOLUMNS BOX IMPLEMENTATIONS•BYTESUB VIA “MULT INV” + ‘AFFINE”BOXES -- 16x 1 BYTE EACH•TO REDUCE COST W/ DEC UNIT•SHIFTROW BY HARDWIRING• MIXCOL BY ‘01’, ‘02’, ‘03’ MULT’SSHIFTROWKEYKEYKEYCIPHER BLOCKT BOX ENCRYPTION CORE UNITMESSAGE BLOCKt BOX IMPLEMENTATIONS•16x 4 BYTE T BOXES XOR’ED W/ RND KEY•LAST RND W/O ‘02 & ‘03” MULT’S•(WITHOUT MIXCOLUMN)KEYTe 0KEYCIPHER BLOCKTe 1 Te 2 Te 3KEY‘01’ BYTES ONLYONE SET OF 4 TABLES FOR EACH COLUMN1 TO 1 ENCRYPTION UNIT TESTINGINPUT TO 10TH ROUNDCORRECT!!CYPHERTEXT OUTPUTERRORS!!OPPORTUNITIESVERIFICATIONCOMPLETE IMPLEMENTATION/BENCHTESTFUNCTIONALITYADD DECRYPTION OPTIONSINGLE BI-DIRECTIONAL I/O PORTPERFORMANCELOOKUP TABLE VS BLOCK RAMCHANGE WIDTH OF KEY UNITINNER ROUND
View Full Document