1 Contents. Version of EnSilica Ltd, All Rights Reserved

Size: px
Start display at page:

Download "1 Contents. Version of EnSilica Ltd, All Rights Reserved"

Transcription

1

2 1 Contents esi-apb-aes 1 Contents 2 2 Overview 3 3 Hardware Interface Area 5 4 Software Interface Register Map 6 5 AES Operation Introduction DMA operation CBC operation CTR operation GCM operation Cycle counts 18 6 Revision History 19 Version of EnSilica Ltd, All Rights Reserved

3 2 Overview esi-apb-aes The esi-apb-aes core is an easy to use AES symmetric cipher/decipher accelerator peripheral. It supports the following features: ASIC or FPGA target. Simple register based interface Run-time support for 128, 192 and 256 bit keys 14, 16 and 18 clock cycle cipher/decipher for 128-bit/192-bit/256-bit keys respectively 130x faster than a software only implementation Integrated key expansion Cipher-Block-Chaining (CBC) support Counter chaining (CTR) support Galois Counter Mode (GCM) Galois Message Authentication Code (GMAC) support Split clock domains allow power reduction by using the APB clock domain for configuration, with a local system-clock domain to perform processing. Note: clock domains must operate at the same frequency and be synchronous and balanced. AMBA 3 APB slave interface for configuration Optional support for interfacing with DMA-engine (esi-dma) for greater throughput. Verilog APB Clock APB Slave esi-apb-aes APB Registers System Clock System Clock enable AES Engine Figure 1: esi-apb-aes Version of EnSilica Ltd, All Rights Reserved

4 3 Hardware Interface esi-apb-aes Module Name esi_apb_aes HDL Verilog 2001 Technology Generic Source Files esi_aes_apb.v, esi_aes_apb_if.v, esi_aes_enc_round.v, esi_aes_dec_round.v, esi_aes_ke_round.v, esi_aes_sbox.v, esi_aes_sbox_rom.v, esi_aes_isbox.v, esi_aes_xtime.v, esi_aes_ram_sp.v, esi_aes_include.v Compiler Directive `define ESI_CFG_AES_DMA_ENABLED `define ESI_CFG_AES_GCM_ENABLED `define ESI_CFG_AES_DEC_DISABLED Table 1: Compiler directives Description Optionally enables support for the esi-dma DMA-Engine. Declaring this enables addition top-level ports and builds additional functionality within the core. Optionally enables support for GCM and GMAC modes of operation. Optionally remove support for ECM and CBC deciphering. This is normally used to achieve a reduction in area when only CTR, GCM or GMAC modes of operation are required. As these modes do not require a traditional AES Decipher operation (instead using an Encipher operation for both Encrypt and Decrypt functions), the functionality can be removed in order to reduce the size of the IP. Parameter APB_ADDRESS_WIDTH APB_DATA_WIDTH Table 2: Module Parameters Description Specifies the width of the APB Address bus. Minimum of 6-bits required. Specifies the width of the APB Data bus. 32 or 16-bits supported. APB Port Direction Width Description pclk Input 1 Clock. presetn Input 1 Reset, active-low paddr Input 6 Address psel Input 1 Slave select penable Input 1 Enable pwrite Input 1 Write pwdata Input 32 Write data pready Output 1 Ready prdata Output 32 Read data pslverr Output 1 Slave error Table 3: APB I/O Ports Version of EnSilica Ltd, All Rights Reserved

5 Port Direction Width Description clk Input 1 Local System Clock input. This clock is used for all processing within the core. Note: This clock must operate at the same frequency as PCLK and be synchronous and balanced to the PCLK domain. cactive Output 1 Clock request for the System Clock. When this output is asserted the System-Clock must be enabled, when de-asserted the System-Clock may be disabled to save power. reset_n Input 1 Reset for the System clock domain, active low. key_ext Input 256 Optional external key interface key_size_ext Input 2 External key size key_src_ext Input 1 External key source 0 - Use APB control register field src as source 1 Always use external key interface tx_ack Input 1 Present when `define ESI_CFG_AES_DMA_ENABLED is declared. Acknowledges tx_ready after transfer complete (DMA mode) rx_ack Input 1 Present when `define ESI_CFG_AES_DMA_ENABLED is declared. Acknowledges rx_ready after transfer complete (DMA mode) interrupt_n Output 1 Level sensitive interrupt. Low if operation is completed tx_ready Output 1 Present when `define ESI_CFG_AES_DMA_ENABLED is declared. Indicates device can accept new data (DMA mode) rx_ready Output 1 Present when `define ESI_CFG_AES_DMA_ENABLED is declared. Indicates device has data to be read (DMA mode) Table 4: Additional I/O Ports For complete details of the APB signals, please refer to the AMBA 3 APB Protocol v1.0 Specification available at: Area When building with the following options, the core cell area (drawn) and equivalent NAND2 gate count is shown in Table 5. These numbers are based on TSMC 65GP at a target clock speed of 10 MHz. These areas include an instantiated 16x128bit single port RAM macro. ESI_CFG_AES_DEC _DISABLED ESI_CFG_AES_DMA _ENABLED ESI_CFG_AES_GCM _ENABLED Equivalent NAND2 Gate count Approx. cell area um K Base option implementing ECB CBC and CTR modes X 53.32K As above with DMA interface enabled X X 66.6K All functionality, ECB, CBC, CTR, and GCM/ GMAC with DMA option. X X X 51.2K CTR + GCM/ GMAC only, with DMA option. Table 5: Area based on different build options. Notes Version of EnSilica Ltd, All Rights Reserved

6 4 Software Interface esi-apb-aes 4.1 Register Map The software register map is given below. Register Address Access Description offset control 0x00 R/W Control register status 0x04 R/W Status register data_in [31:0] 0x08 R/W Data input register data_in [63:32] 0x0C R/W Data input register data_in [95:64] 0x10 R/W Data input register data_in [127:96] 0x14 R/W Data input register data_in [159:128] 0x18 R/W Data input register data_in [191:160] 0x1C R/W Data input register data_in [223:192] 0x20 R/W Data input register data_in [255:224] 0x24 R/W Data input register data_out [31:0] 0x28 R Data output register data_out [63:32] 0x2C R Data output register data_out [95:64] 0x30 R Data output register data_out [127:96] 0x34 R Data output register iv [31:0] 0x38 R/W CBC Initialisation vector register iv [63:32] 0x3C R/W CBC Initialisation vector register iv [95:64] 0x40 R/W CBC Initialisation vector register iv [127:96] 0x44 R/W CBC Initialisation vector register Table 6: Register Map Registers are represented as 32-bit words, so on a 16-bit architecture each register will require two half-word (16-bit) accesses in order to fully write or read all bits in the register. The esi-apb-aes peripheral is Little-Endian and so on a 16-bit architecture the loweraddressed half-word is the least-significant. For example, on a 16-bit architecture the bits in the control register can be accessed at address 0x00; while for the data_in registers, data_in[15:0] is located at address 0x08 and data_in[31:16] is located at address 0x0A. In encryption applications Plaintext, Ciphertext and IV data are considered as strings of characters (bytes), written left to right. When writing/ reading these strings to/ from the IP the first character of the string should be mapped to the LS-byte of the appropriate register with subsequent characters being mapped to increasingly-significant bytes the final character being mapped to the MS-byte. For example the following character string: 11754cd72aec309bf52f e8957 is written to the data_in or IV registers as follows: data_in/ IV [31:0] = d74c7511 data_in/ IV [63:32] = 9b30ec2a data_in/ IV [95:64] = 87762FF5 data_in/ IV [127:96] = 57892e Control Register The control register contains the configuration fields. The operation to be performed by the core is controlled by the mode field. Cipher mode will encipher the Plaintext to Cipertext. Version of EnSilica Ltd, All Rights Reserved

7 Decipher mode will decipher Ciphertext to Plaintext. Key expansion mode will fill the internal key expansion memory from the supplied key. The key size is determined from the size field. The key source is defined by the src field, and can either be the internal data_in registers or the external interface key_ext. When the key source is external then the key size is also taken from the external interface key_size_ext. When the `define ESI_CFG_AES_DMA_ENABLED compiler directive is specified, additional logic is built into the core to support connection to the esi-dma DMA engine. This allows the core to automatically process multiple blocks of data without interaction from the processor. This mode is enabled by setting the dma bit further details are given in section 5.2. The default mode is ECB which has no chaining, additional modes Cipher-Block-Chaining (CBC), Counter (CTR) and Galois Counter Mode (GCM) can be enabled using the chain field. Details of this functionality are given in sections 5.3, 5.4 and 5.5 The core as a whole is enabled or disabled using the en bit Figure 2: Format of the control register aad chain ie src size mode dma en Field Values Description en 1 Enable Enables the hardware 0 - Disable dma 1 Enable 0 - Disable When enabled the DMA flow-control signals are driven to indicate to a connected DMA engine that it should write or read data from the core. Note: Only present when the `define ESI_CFG_AES_DMA_ENABLED compiler directive is specified. Otherwise this is read-only and returns the value 0. mode size src ie chain aad 0 Cipher 1 Deciper 2 Key Expansion 3 Reserved bits bits bits 3 Reserved 0 Internal 1 External 0 - Interrupts disabled 1 - Interrupts enabled 0 ECB mode 1 - CBC 2 - CTR 3 - GCM 0 - Cipher data 1 - AAD data 2 - H calc 3 - Tag Table 7: Fields of the control register Mode of operation. Selects which operation will be performed by the next assertion of the start bit, and determines which result data is available from the data_out registers. Key size Key source. Keys are either taken from the internal APB key registers or from the external key interface, key_ext. Overridden by true setting on external interface key_src_ext. Interrupt enable Cipher-block-chaining mode. In GCM mode the type of data being presented to the data_in registers is determined by this field. When 0 the input data is ciphertext or plaintext. When 1 it is Additional Authenticated Data. When 2 it is calculating H When 3 it is calculating the Authentication Tag Version of EnSilica Ltd, All Rights Reserved

8 4.1.2 Status Register esi-apb-aes The status register contains the busy and done status bits. A new operation should only be started if the busy bit is false. The done bit is asserted when an operation completes and remains asserted until written to 1. The interface signal interrupt_n is asserted when the done bit is asserted and ie is set true in the control register. In order to clear the interrupt the done bit should be cleared by writing it to 1. Figure 3: Format of the status register 1 0 done busy Field Values Description busy 0 - Not busy 1 Busy Status of the operation. Operation in progress when set true and finished when false done 0 Not complete 1 Operation complete The done bit is asserted when a given operation completes and remains asserted until cleared by the user. When interrupt_n is enabled, clearing the done bit serves as the mechanism to clear the interrupt. Table 8: Fields of the status register Data Input Registers The Data-Input registers provide a common interface for writing data to the core. Operating modes are mutually exclusive and cannot be run concurrently; hence all data, irrespective of the operating mode, is transmitted to the core by writing to these registers. As keys can be up to 256 bits in length, the data_in registers allow for a data word of 256 bits to be written to the core prior to commencing a given operation. The core is little-endian with the least-significant word being written to address 0x08, and the most significant being written to 0x24. Keys of length 128, 192 or 256 bits can be used with the core and these must be written to data_in bits [127:0], [191:0] or [255:0] respectively. Plain-text input data to be enciphered is always 128-bits wide and as such is always written to bits [127:0] of the data_in registers addresses 0x08 to 0x14. Similarly Cipher-text data to be de-ciphered is always 128-bits wide and as such is also written to bits [127:0] of the data_in registers addresses 0x08 to 0x14. In all cases unused high-order bits can be left as don t care and should not be written. When DMA mode is not present or not enabled (dma bit set to zero and/or mode field is KEY_EXPANSION), the currently configured operation (selected by the mode bits in the control register) is initiated by writing the most-significant data-input word required for the operation. For encipher and decipher operations this is the data_in[127:96] register (data_in[127:112] on a 16-bit architecture), for key-expansion the length of the key may be 128, 192 or 256 bits as defined by the size field in the control register. So for a key-size of 256-bits the key-extraction operation is initiated by writing to the data_in[255:224]register; for a key-size of 192-bits the key-extraction operation is initiated by writing to the data_in[191:160] register, and for for a key-size of 128-bits the key-extraction operation is initiated by writing to the data_in[127:96]register. Version of EnSilica Ltd, All Rights Reserved

9 Hence the data_in register must always be written in order from least-significant to mostsignificant in order that the complete input data is present before the operation begins. Note: when running in DMA mode (`define ESI_CFG_AES_DMA_ENABLED compiler directive is specified, the dma bit is set to one and the mode field is CIPHER or DECIPHER) the currently configured operation is initiated by the completion of the DMA write transaction (tx_ack asserted) rather than a write to a specific register address. The current contents of the data_in registers can be read back at any time, with the exception that following a Key-Expansion operation the data_in registers are cleared back to zero as a security feature, thus preventing the key (or a partial key) from being read back at some later point data_in [i] Figure 4: Format of the data_in registers Field Values Description data_in[i] 32-bit portion of input 32-bit part select of the current data input. data word Table 9: Fields of the data_in registers Data Output Registers AES operates on a fixed length 128-bit Plaintext message to produce a 128-bit Ciphertext message and vice versa. The output from either the encipher or decipher operation is therefore always 128-bits in length, and as such 4 data_output registers are provided to allow the output of the current operation to be read. Note: data read from the data_output registers will be the last plain-text output of the decipher operation when the operating mode is set to Decipher, the last cipher-text output of the encipher operation when the operating mode is set to Cipher, and zero when the operating mode is set to Key Expansion or Reserved. The core is little-endian with the least-significant word being read from address 0x28, and the most significant being read from 0x34. The data_out registers are read-only data_out[i] Figure 5: Format of the data output registers Field Values Description data output [i] 32-bits of the output data. 32-bit part select of plaintext or ciphertext outputs. Table 10: Fields of the data_output register IV Registers IV values are 128-bits wide and as such are stored over four 32-bit registers. The IV registers may be written in any order. Version of EnSilica Ltd, All Rights Reserved

10 Note: all IV values are treated as character strings, and hence the byte-swapping rules described in section 4.1 apply when writing values to the IV registers. CBC chaining mode When operating in cipher-block-chaining (CBC) mode the CipherText (the output of a cipher operation or the input to a decipher operation) of the current operation is fed back into the processing phase of the following operation see section 5.3 for details. As there is no feedback term available for the first operation in a chain the Initialisation-Vector must be provided in order to provide the initial value. The IV registers allow this 128-bit value to be preloaded into the core prior to the commencement of processing. CTR chaining mode For CTR chaining mode the IV registers are used to enter the the initial counter value, sometimes denoted the Nonce. GCM chaining mode For GCM chaining modes the IV registers are used to enter the the initial counter value, denoted the ICB (Initial-Counter-Block), and subsequently to enter the J0 value required for Tag generation. When specifying the ICB value the IV character-string must be supplied as 96 random bits concatenated with the value 2. i.e b19b9b4ab6bd4f when supplying the J0 value it must be the same 96 random bits that were used in the ICB, concatentated with the value 1. i.e b19b9b4ab6bd4f Readback Reading back the IV registers returns the current feedback term, that is, after writing the initialisation-vector and prior to running the first encipher/ decipher these registers will return the initialisation-vector itself. After running the first encipher/ decipher the IV registers will read-back the term which will be input to the next encipher/ decipher operation in the chain iv [i] Figure 6: Format of the iv registers Version of EnSilica Ltd, All Rights Reserved

11 5 AES Operation esi-apb-aes 5.1 Introduction This IP core implements a fast rolled AES architecture to complete all the processing in just a few clock cyles more than the number of rounds for that key size. The key size and key can be changed via the APB interface. As a security measure the Key may not be read back following the Key Expansion operation. Whereas this hardware implementation can perform a cipher in as little as 11 clock cycles, it would typically take 1500 clock cycles on a 32-bit processor with a barrel shifter using Gladman's optimisation. So a hardware speed-up of 130x can be achieved. For secure operation the key can be provided from an external source on interface key_ext, together with the size on key_size_ext. To lock the IP core so it only accesses the key from this external interface then set key_src_ext high. With key_src_ext low, the key source is chosen by the src bit in the control register, and will either be the APB supplied key or the external key. Before any cipering or deciphering can take place the key must be expanded. This only needs to happen once, provided the key remains unchanged, and hence provides negligible impact on throughput. The key length is first set using the size bits (or selected using the key_size_ext input) and the key-expansion operation is then selected using the mode bits of the control register. Then the 128, 192 or 256 bit Key is written to the data_in registers or selected from the key_ext input. Key expansion is initiated when the most-significant word (or half-word on a 16-bit system) is written to the data_in register. This causes the keys for each round to be stored in internal memory. Note: when using an external key it is still necessary to perform an initial key expansion operation. This is executed by writing to the data_in register corresponding the most significant word of the selected key-size so for example if using a 128-bit external key, a write of an arbitrary value to data_in[127:96] will initiate the expansion operation; if using a 256-bit external key then data_in[255:224]will initiate the expansion. After key expansion completes - indicated by the done bit in the status register (and optionally the interrupt pin), a cipher or decipher operation may begin. Enciphering starts by setting the mode bits of the control register to the cipher operation. The plain-text is then written to the data_in registers and ciphering is intiated when the mostsignificant word (or half-word on a 16-bit system) is written to the data_in register. The status register done bit can be polled until it transitions to TRUE to indicate that the operation has completed. The final ciphertext is then available in the data-out registers. If interrupts are enabled by setting the ie bit in the control register then status register monitoring is unnecessary and the completion of the operation is indicated by the assertion of the interrupt. Whether polling the done bit or monitoring the interrupt, on detection of a completed operation the user should write the done bit to 1 in order to clear it if the interrupt is enabled then this will cause it to de-assert. Deciphering is a similar process to enciphering beginning with setting the mode bits of the control register to the decipher operation. The ciphertext is then written to the data_in registers and deciphering is intiated when the most-significant word (or half-word on a 16-bit system) is written to the data_in register. On completion the final plaintext is then available in the data_out registers. Note: when reading back the data_out register the mode field of the control register must be set appropriately to select the correct read data source. Version of EnSilica Ltd, All Rights Reserved

12 The IP core is split into two clock domains. Both domains must operate at the same frequency and be synchronous and balanced: The APB clock domain (pclk) is used by the APB interface to configure the IP. The System-Clock (clk) domain is used by the IP for all processing. The PCLK input needs only run when an APB transaction is in progress and may be gated off at all other times, hence reducing the power consumed by the global PCLK clock tree distribution. The clk input must run when the IP has data to process indicated by the assertion of cactive. When cactive is de-asserted the clk input may be gated off to reduce power consumption. 5.2 DMA operation To facilitate driving the core from the esi-dma DMA-engine (or similar) the esi-apb-aes core supports additional flow-control signals to allow the core to interact with the DMA engine without intervention from the attached control processor. These additional ports are only present when the `define ESI_CFG_AES_DMA_ENABLED compiler directive is specified. The DMA feature is enabled by setting the DMA bit in the control register and may be used when the core is configured to ENCIPHER or DECIPHER mode. Note: setting the DMA bit in KEY_EXPANSION mode has no effect. The flow control signals allow the core to assert tx_ready to the DMA-Engine to indicate that it can accept a new plain-text or cipher-text data-word, and the rx_ready signal to indicate that it has data to be read. An encipher/ decipher operation consists of the following cycle: DMA write -> Processing -> DMA read The cycle starts with the core asserting the tx_ready signal in order to request a data-word from the DMA-Engine. On receiving tx_ready the DMA-Engine should be configured to perform a write transaction consisting of multiple beats to incrementing addresses in the data_in registers (address 0x08 upwards) in order to convey a single 128-bit plain-text of cipher-text word. The number of beats will depend on the architecture of the system - for example to write a 128-bit plain-text word on a 32-bit system would require 4 beats, whereas on a 16-bit system this would require 8 beats. Having transferred the data the DMA-Engine then asserts the tx_ack signal and this is held high until the tx_ready signal is cleared by the core. When the core receives tx_ack it begins the Processing phase as specified by the mode bits of the control register and clears the tx_ready signal. When processing is complete the core asserts rx_ready in order to request the DMA-Engine to read the result. The DMA-Engine must then perform a similar multi-beat read from the data_out registers (address 0x28 upwards) in order to collect the resulting cipher-text or plain-text word. When the DMA-Engine completes, it assert rx_ack and the core then deasserts rx_ready and re-asserts tx_ready in order to request the next input data. Version of EnSilica Ltd, All Rights Reserved

13 5.2.1 GCM operation Figure 7: Flow control interface operation When operating in GCM/ GMAC mode the user may write AAD data to the IP in order to be included in the generation of the TAG without requiring any data to be read back. In this specific case where mode = gcm and aad = AAD the operation of the DMA state-machine inside the IP is slightly different and operates the following cycle which just allows successive data words to be written: DMA write -> Processing 5.3 CBC operation When CBC is enabled the following chaining methods are used for encipher and decipher operations. For an encipher operation, each block of input plaintext is XORed with the ciphertext result from the preceding encipher operation. An initial vector (IV) is used for the first block where no feedback term is available and this is loaded using the IV registers see section This is illustrated in Figure 8. Plaintext Plaintext Plaintext IV Key Block cipher encryption Key Block cipher encryption Key Block cipher encryption Ciphertext Ciphertext Ciphertext Figure 8: CBC encryption mode For a decipher operation, each block of output plaintext is XORed with the ciphertext input from the preceding decipher operation. An initial vector (IV) is used for the first block where no feedback term is available and this is loaded using the IV registers see section This is illustrated in Figure 9. Version of EnSilica Ltd, All Rights Reserved

14 Ciphertext Ciphertext Ciphertext Key Block cipher decryption Key Block cipher decryption Key Block cipher decryption IV Plaintext Plaintext Plaintext Figure 9: CBC decryption mode 5.4 CTR operation Counter mode is a simple chaining mode where the input to each AES encipher is a count value, starting from the value in the initialisation vector. The output of the AES is either XOR'ed with the plaintext for enciphering or the ciphertext for deciphering. CTR mode is enabled by setting the chain field in the control register to CTR. Figure 10: CTR mode Note: The counter is initialised with a 128-bit IV value, which is incremented by 1 following each encipher operation. The counter will rollover modulo GCM operation When GCM chaining operation is enabled the loading of data and calculation occurs in phases. Version of EnSilica Ltd, All Rights Reserved

15 (1) Select mode = Cipher, chain = GCM, aad = H, en = true. Write a 128 bit all zero vector to data_in and wait for processing to complete. The Galois field multiplier H is generated and stored internally. The initial value of the Hash is set to 0. (2) Load the iv registers with the character-string corresponding to the ICB. (3) Select mode = Cipher or Decipher, chain = GCM, aad = AAD Data. All the AAD data are now written, in 128 bit character-strings, to the input registers data_in. The AAD should be padded with zeros if the final 128 bit block is not complete. Wait for completion of processing (indicated by the done / or busy bits) between each write. (4) Select mode = Cipher or Decipher, chain = GCM, aad = Cipher Data. For enciphering/deciphering the plaintext/ciphertext respectively is written to the data_in registers in 128 bit character-strings; the Plain/ Cipher Text should be padded with zeros if the final 128 bit block is not complete. After writing each string wait for processing to complete (indicated by the done / or busy bits) before reading back the corresponding enciphered/ deciphered data from the data_out registers. (5) Select mode = Cipher or Decipher, chain = GCM, aad = AAD Data. Form the Length character string by the concatenation of the two 64-bit fields [len(aad)64 len(cipher Data)64]. Write the character-string to the data_in registers and wait for processing to complete (indicated by the done / or busy bits). (6) Select mode = Cipher or Decipher, chain = GCM, aad = Tag. Write the J0 character-string to the data_in registers and wait for processing to complete (indicated by the done / or busy bits). Read out the Authentication Tag from the data_out registers. The ciphering process is shown below, where the authentication data is just 1 block for simplicity. EK is the AES encryption operation with key K, multh is GF multiplication with H. The Counter 0 value is J0, Counter1 is the ICB and incr increments by 1 modulo NOTE: The DMA engine can be used to write the AAD and Cipher data in the GCM mode. When chain = GCM, aad = AAD Data the IP will perform the simplified DMA cycle shown in section to allow writing of multiple data words. When chain = GCM, aad = Cipher Data the IP performs the standard DMA cycle shown in section 5.2 allowing for successive writes and reads to be performed. When using the DMA interface the DMA mode should be disabled between the above steps by clearing the DMA bit in the control register. Version of EnSilica Ltd, All Rights Reserved

16 Figure 11: GCM authenticated encipher mode The authenticated deciphering process is shown below, and shares many similarities to the enciphering. Version of EnSilica Ltd, All Rights Reserved

17 Figure 12: GCM authenticated decipher mode GMAC operation is exactly the same except that there is no data to be encrypted, so step (4) above is ommitted. Version of EnSilica Ltd, All Rights Reserved

18 5.6 Cycle counts Operation 128-bit key 192-bit key 256-bit key Encipher Decipher Key exchange Version of EnSilica Ltd, All Rights Reserved

19 6 Revision History esi-apb-aes Hardware Software Description Revision Release 1 NA Initial release 2 NA *Added support for esi-dma *Removed the requirement to write the Start bit, processing now commences on the write of the final word of the input data string. * Added Cipher-Block-Chaining *Split clock domains in PCLK and System-CLK. - Removed PCLK_CACTIVE port (no longer required) - Added CACTIVE port to turn on the local System Clock *Updated cycle count figures. * Changed the is bit to be a done bit. The change is backwards compatible the done bit functions as the is bit did when ie is asserted. However, different to the old implementation, the new done bit will also provide the same indication of completion when ie is not enabled. This allows a positive indication of completion when polling, rather than the original inferred method of polling for the absence of the busy bit. 3 NA *Added support for CTR and GCM/ GMAC chaining modes. Table 11: Revision History References 1. FIPS-197 Version of EnSilica Ltd, All Rights Reserved

1 Contents. Version of EnSilica Ltd, All Rights Reserved

1 Contents. Version of EnSilica Ltd, All Rights Reserved 1 Contents 1 Contents 2 2 Overview 3 3 Hardware Interface 4 3.1 Resource requirements 4 4 Software Interface 5 4.1 Register Map 5 4.2 Interrupts 7 5 RSA Operation 8 5.1 Introduction 8 5.2 Cycle counts

More information

1 Contents. Version of EnSilica Ltd, All Rights Reserved

1 Contents. Version of EnSilica Ltd, All Rights Reserved 56/SHA224 1 Contents 1 Contents 2 2 Overview 3 3 Hardware Interface 4 3.1 Area 4 4 Software Interface 5 4.1 Register Map 5 5 SHA256/SHA224 Operation 8 5.1 Introduction 8 5.2 Cycle counts 8 6 Revision History

More information

esi-multichannel Timer

esi-multichannel Timer 1 Contents 1 Contents 2 2 Overview 3 3 Hardware Interface 4 4 Software Interface 5 4.1 Register Map 5 4.2 Interrupts 6 Version 2.2 - Confidential 2 of 6 2010 EnSilica Ltd, All Rights Reserved 2 Overview

More information

1 Contents 2 2 Overview 3 3 Hardware Interface 4 4 Software Interface Register Map Interrupts 6 5 Revision History 8

1 Contents 2 2 Overview 3 3 Hardware Interface 4 4 Software Interface Register Map Interrupts 6 5 Revision History 8 1 Contents 1 Contents 2 2 Overview 3 3 Hardware Interface 4 4 Software Interface 5 4.1 Register Map 5 4.2 Interrupts 6 5 Revision History 8 Version 2.3.2 - Confidential 2 of 8 2011 EnSilica Ltd, All Rights

More information

APB4 GPIO. APB4 GPIO Datasheet Roa Logic, All rights reserved

APB4 GPIO. APB4 GPIO Datasheet Roa Logic, All rights reserved 1 APB4 GPIO Datasheet 2 Introduction The APB4 GPIO Core is fully parameterised core designed to provide a userdefined number of general purpose, bidirectional IO to a design. The IO are accessible via

More information

Roa Logic. APB4 Multiplexer. Datasheet. October, c Roa Logic B.V.

Roa Logic. APB4 Multiplexer. Datasheet.   October, c Roa Logic B.V. Roa Logic Silicon Proven IP for FPGA and ASIC www.roalogic.com APB4 Multiplexer Datasheet http://roalogic.github.io/plic October, 2017 c Roa Logic B.V. Contents 1 Introduction 1 1.1 Features......................................

More information

Section III. Transport and Communication

Section III. Transport and Communication Section III. Transport and Communication This section describes communication and transport peripherals provided for SOPC Builder systems. This section includes the following chapters: Chapter 16, SPI

More information

Block Cipher Operation. CS 6313 Fall ASU

Block Cipher Operation. CS 6313 Fall ASU Chapter 7 Block Cipher Operation 1 Outline q Multiple Encryption and Triple DES q Electronic Codebook q Cipher Block Chaining Mode q Cipher Feedback Mode q Output Feedback Mode q Counter Mode q XTS-AES

More information

Block cipher modes. Lecturers: Mark D. Ryan and David Galindo. Cryptography Slide: 75

Block cipher modes. Lecturers: Mark D. Ryan and David Galindo. Cryptography Slide: 75 Block cipher modes Lecturers: Mark D. Ryan and David Galindo. Cryptography 2017. Slide: 75 Lecturers: Mark D. Ryan and David Galindo. Cryptography 2017. Slide: 76 Block cipher modes Block ciphers (like

More information

CHAPTER 6. SYMMETRIC CIPHERS C = E(K2, E(K1, P))

CHAPTER 6. SYMMETRIC CIPHERS C = E(K2, E(K1, P)) CHAPTER 6. SYMMETRIC CIPHERS Multiple encryption is a technique in which an encryption algorithm is used multiple times. In the first instance, plaintext is converted to ciphertext using the encryption

More information

Crypto Library. Microchip Libraries for Applications (MLA) Copyright (c) 2012 Microchip Technology Inc. All rights reserved.

Crypto Library. Microchip Libraries for Applications (MLA) Copyright (c) 2012 Microchip Technology Inc. All rights reserved. Crypto Library Microchip Libraries for Applications (MLA) Copyright (c) 2012 Microchip Technology Inc. All rights reserved. MLA - Crypto Library Help Table of Contents 1 Crypto Library 6 1.1 Introduction

More information

1 Contents. Version of EnSilica Ltd, All Rights Reserved

1 Contents. Version of EnSilica Ltd, All Rights Reserved 1 Contents 1 Contents 2 2 Overview 3 3 Hardware Interface 4 4 Software Interface 5 4.1 Register Map 5 4.2 FIFO Data Format 6 4.3 Interrupts 7 5 Revision History 8 Version 2.6.8 2 of 8 2012 EnSilica Ltd,

More information

AES1. Ultra-Compact Advanced Encryption Standard Core AES1. General Description. Base Core Features. Symbol. Applications

AES1. Ultra-Compact Advanced Encryption Standard Core AES1. General Description. Base Core Features. Symbol. Applications General Description The AES core implements Rijndael encoding and decoding in compliance with the NIST Advanced Encryption Standard. Basic core is very small (less than 3,000 gates). Enhanced versions

More information

Block Cipher Modes of Operation

Block Cipher Modes of Operation Block Cipher Modes of Operation Luke Anderson luke@lukeanderson.com.au 23 rd March 2018 University Of Sydney Overview 1. Crypto-Bulletin 2. Modes Of Operation 2.1 Evaluating Modes 2.2 Electronic Code Book

More information

EECS 373 Design of Microprocessor-Based Systems

EECS 373 Design of Microprocessor-Based Systems EECS 373 Design of Microprocessor-Based Systems Branden Ghena University of Michigan Lecture 4: Memory-Mapped I/O, Bus Architectures September 11, 2014 Slides developed in part by Mark Brehob & Prabal

More information

OCB3 Block Specification

OCB3 Block Specification OCB3 Block Specification Version 1.0.07.04.2010 By Tariq Bashir Ahmad Supervisors: Guy Hutchison Professor Phillip Rogaway 1 1 Introduction and Overview OCB3 (Offset Code Book 3) is an authenticated encryption

More information

Content of this part

Content of this part UNIVERSITY OF MASSACHUSETTS Dept. of Electrical & Computer Engineering Introduction to Cryptography ECE 597XX/697XX Part 5 More About Block Ciphers Israel Koren ECE597/697 Koren Part.5.1 Content of this

More information

3 Symmetric Key Cryptography 3.1 Block Ciphers Symmetric key strength analysis Electronic Code Book Mode (ECB) Cipher Block Chaining Mode (CBC) Some

3 Symmetric Key Cryptography 3.1 Block Ciphers Symmetric key strength analysis Electronic Code Book Mode (ECB) Cipher Block Chaining Mode (CBC) Some 3 Symmetric Key Cryptography 3.1 Block Ciphers Symmetric key strength analysis Electronic Code Book Mode (ECB) Cipher Block Chaining Mode (CBC) Some popular block ciphers Triple DES Advanced Encryption

More information

EECS 373 Design of Microprocessor-Based Systems

EECS 373 Design of Microprocessor-Based Systems EECS 373 Design of Microprocessor-Based Systems Mark Brehob University of Michigan Lecture 5: Memory-mapped I/O review, APB, start interrupts. Mostly APB though Sept. 19 th 2018 1 Today Memory-mapped I/O

More information

EECS 373 Lab 3: Introduction to Memory Mapped I/O

EECS 373 Lab 3: Introduction to Memory Mapped I/O EECS 373 Lab 3: Introduction to Memory Mapped I/O In this lab we will learn: To develop custom peripheral hardware in the SmartFusion FPGA using the Libero CAD tools. The fundamentals of memory-mapped

More information

Advanced Encryption Standard and Modes of Operation. Foundations of Cryptography - AES pp. 1 / 50

Advanced Encryption Standard and Modes of Operation. Foundations of Cryptography - AES pp. 1 / 50 Advanced Encryption Standard and Modes of Operation Foundations of Cryptography - AES pp. 1 / 50 AES Advanced Encryption Standard (AES) is a symmetric cryptographic algorithm AES has been originally requested

More information

EECS 373 Midterm Winter 2013

EECS 373 Midterm Winter 2013 EECS 373 Midterm Winter 2013 Name: unique name: Sign the honor code: I have neither given nor received aid on this exam nor observed anyone else doing so. Scores: # Page Points 2 /15 3 /20 4 /12 5 /13

More information

Lecture 2B. RTL Design Methodology. Transition from Pseudocode & Interface to a Corresponding Block Diagram

Lecture 2B. RTL Design Methodology. Transition from Pseudocode & Interface to a Corresponding Block Diagram Lecture 2B RTL Design Methodology Transition from Pseudocode & Interface to a Corresponding Block Diagram Structure of a Typical Digital Data Inputs Datapath (Execution Unit) Data Outputs System Control

More information

Block Cipher Modes of Operation

Block Cipher Modes of Operation Block Cipher Modes of Operation Luke Anderson luke@lukeanderson.com.au 24th March 2016 University Of Sydney Overview 1. Crypto-Bulletin 2. Modes Of Operation 2.1 Evaluating Modes 2.2 Electronic Code Book

More information

EECS 373 Design of Microprocessor-Based Systems

EECS 373 Design of Microprocessor-Based Systems EECS 373 Design of Microprocessor-Based Systems Ron Dreslinski University of Michigan Lecture 4: Bit of assembly, Memory-mapped I/O, APB January 16, 2018 1 Admin HW2 Due Thursday. HW1 answers posted as

More information

EECS 373. Design of Microprocessor-Based Systems. Prabal Dutta University of Michigan. Announcements. Homework #2 Where was I last week?

EECS 373. Design of Microprocessor-Based Systems. Prabal Dutta University of Michigan. Announcements. Homework #2 Where was I last week? Announcements EECS 373 Homework #2 Where was I last week? Design of Microprocessor-Based Systems VLCS 14 MobiCom 14 HotWireless 14 Prabal Dutta University of Michigan Lecture 5: Memory and Peripheral Busses

More information

EECS 373 Design of Microprocessor-Based Systems

EECS 373 Design of Microprocessor-Based Systems EECS 373 Design of Microprocessor-Based Systems Ron Dreslinski University of Michigan Lecture 5: Memory-mapped I/O review, APB, Mostly APB though J January 18 th 2018 1 Administra,ve Midterm Exam: Monday,

More information

International Journal of Applied Sciences, Engineering and Management ISSN , Vol. 05, No. 02, March 2016, pp

International Journal of Applied Sciences, Engineering and Management ISSN , Vol. 05, No. 02, March 2016, pp Design of High Speed AMBA APB Master Slave Burst Data Transfer for ARM Microcontroller Kottu Veeranna Babu 1, B. Naveen Kumar 2, B.V.Reddy 3 1 M.Tech Embedded Systems Student, Vikas College of Engineering

More information

AES Core Specification. Author: Homer Hsing

AES Core Specification. Author: Homer Hsing AES Core Specification Author: Homer Hsing homer.hsing@gmail.com Rev. 0.1.1 October 30, 2012 This page has been intentionally left blank. www.opencores.org Rev 0.1.1 ii Revision History Rev. Date Author

More information

Block ciphers used to encode messages longer than block size Needs to be done correctly to preserve security Will look at five ways of doing this

Block ciphers used to encode messages longer than block size Needs to be done correctly to preserve security Will look at five ways of doing this Lecturers: Mark D. Ryan and David Galindo. Cryptography 2015. Slide: 74 Block ciphers used to encode messages longer than block size Needs to be done correctly to preserve security Will look at five ways

More information

EECS 373 Midterm 2 Fall 2018

EECS 373 Midterm 2 Fall 2018 EECS 373 Midterm 2 Fall 2018 Name: unique name: Sign the honor code: I have neither given nor received aid on this exam nor observed anyone else doing so. Nor did I discuss this exam with anyone after

More information

Ciphertext. data out. Plaintext. data out

Ciphertext. data out. Plaintext. data out Technology PRODUCT BRIEF IP cores for ASIC Features Implements (Rijndael) to NIST FIPS PUB 197 Plaintext data in Key in Ciphertext data in Key Expansion Decryption Ciphertext data out Plaintext data out

More information

Introduction to Cryptography. Lecture 3

Introduction to Cryptography. Lecture 3 Introduction to Cryptography Lecture 3 Benny Pinkas March 6, 2011 Introduction to Cryptography, Benny Pinkas page 1 Pseudo-random generator seed s (random, s =n) Pseudo-random generator G Deterministic

More information

Documentation. Design File Formats. Constraints Files. Verification. Slices 1 IOB 2 GCLK BRAM

Documentation. Design File Formats. Constraints Files. Verification. Slices 1 IOB 2 GCLK BRAM DES and DES3 Encryption Engine (MC-XIL-DES) May 19, 2008 Product Specification AllianceCORE Facts 10805 Rancho Bernardo Road Suite 110 San Diego, California 92127 USA Phone: (858) 385-7652 Fax: (858) 385-7770

More information

Secret Key Cryptography

Secret Key Cryptography Secret Key Cryptography General Block Encryption: The general way of encrypting a 64-bit block is to take each of the: 2 64 input values and map it to a unique one of the 2 64 output values. This would

More information

AvnetCore: Datasheet

AvnetCore: Datasheet AvnetCore: Datasheet CAN Controller with / FIFO Intended Use: Automotive Industry Engine Control Unit Sensors Version 1.0, July 2006 xcan_clk (>8 MHz) pclk reset_n APB Interrupts System Control APB Interface

More information

In this lecture, we will focus on two very important digital building blocks: counters which can either count events or keep time information, and

In this lecture, we will focus on two very important digital building blocks: counters which can either count events or keep time information, and In this lecture, we will focus on two very important digital building blocks: counters which can either count events or keep time information, and shift registers, which is most useful in conversion between

More information

VLSI ARCHITECTURE FOR NANO WIRE BASED ADVANCED ENCRYPTION STANDARD (AES) WITH THE EFFICIENT MULTIPLICATIVE INVERSE UNIT

VLSI ARCHITECTURE FOR NANO WIRE BASED ADVANCED ENCRYPTION STANDARD (AES) WITH THE EFFICIENT MULTIPLICATIVE INVERSE UNIT VLSI ARCHITECTURE FOR NANO WIRE BASED ADVANCED ENCRYPTION STANDARD (AES) WITH THE EFFICIENT MULTIPLICATIVE INVERSE UNIT K.Sandyarani 1 and P. Nirmal Kumar 2 1 Research Scholar, Department of ECE, Sathyabama

More information

P V Sriniwas Shastry et al, Int.J.Computer Technology & Applications,Vol 5 (1),

P V Sriniwas Shastry et al, Int.J.Computer Technology & Applications,Vol 5 (1), On-The-Fly AES Key Expansion For All Key Sizes on ASIC P.V.Sriniwas Shastry 1, M. S. Sutaone 2, 1 Cummins College of Engineering for Women, Pune, 2 College of Engineering, Pune pvs.shastry@cumminscollege.in

More information

Ref: AMBA Specification Rev. 2.0

Ref: AMBA Specification Rev. 2.0 AMBA Ref: AMBA Specification Rev. 2.0 1 Outline Overview AHB APB Test methodology SoC Design Lab Shao-Yi Chien 2 Outline Overview AHB APB Test methodology SoC Design Lab Shao-Yi Chien 3 BUS Brief In a

More information

Using block ciphers 1

Using block ciphers 1 Using block ciphers 1 Using block ciphers DES is a type of block cipher, taking 64-bit plaintexts and returning 64-bit ciphetexts. We now discuss a number of ways in which block ciphers are employed in

More information

EECS 373 Midterm 2 Exam Winter 2018

EECS 373 Midterm 2 Exam Winter 2018 EECS 373 Midterm 2 Exam Winter 2018 Name: SOLUTION unique name: Sign the honor code: I have neither given nor received aid on this exam nor observed anyone else doing so. Scores: Problem # Points 1 /15

More information

CoreAHBtoAPB3 v3.1. Handbook

CoreAHBtoAPB3 v3.1. Handbook CoreAHBtoAPB3 v3.1 Handbook CoreAHBtoAPB3 v3.1 Handbook Table of Contents Introduction... 3 Core Overview... 3 Key Features... 3 Supported Microsemi FPGA Families... 3 Core Version... 4 Supported Interfaces...

More information

FPGA Can be Implemented Using Advanced Encryption Standard Algorithm

FPGA Can be Implemented Using Advanced Encryption Standard Algorithm FPGA Can be Implemented Using Advanced Encryption Standard Algorithm Shahin Shafei Young Researchers and Elite Club, Mahabad Branch, Islamic Azad University, Mahabad, Iran Email:Shahin_shafei@yahoo.com

More information

page 1 Introduction to Cryptography Benny Pinkas Lecture 3 November 18, 2008 Introduction to Cryptography, Benny Pinkas

page 1 Introduction to Cryptography Benny Pinkas Lecture 3 November 18, 2008 Introduction to Cryptography, Benny Pinkas Introduction to Cryptography Lecture 3 Benny Pinkas page 1 1 Pseudo-random generator Pseudo-random generator seed output s G G(s) (random, s =n) Deterministic function of s, publicly known G(s) = 2n Distinguisher

More information

Advanced Encryption Standard / Rijndael IP Core. Author: Rudolf Usselmann

Advanced Encryption Standard / Rijndael IP Core. Author: Rudolf Usselmann Advanced Encryption Standard / Rijndael IP Core Author: Rudolf Usselmann rudi@asics.ws www.asics.ws Rev. 1.1 November 12, 2002 Revision History Rev. Date Author Description 1.0 11/9/02 Rudolf Usselmann

More information

CAESAR Hardware API. Ekawat Homsirikamol, William Diehl, Ahmed Ferozpuri, Farnoud Farahmand, Panasayya Yalla, Jens-Peter Kaps, and Kris Gaj

CAESAR Hardware API. Ekawat Homsirikamol, William Diehl, Ahmed Ferozpuri, Farnoud Farahmand, Panasayya Yalla, Jens-Peter Kaps, and Kris Gaj CAESAR Hardware API Ekawat Homsirikamol, William Diehl, Ahmed Ferozpuri, Farnoud Farahmand, Panasayya Yalla, Jens-Peter Kaps, and Kris Gaj Cryptographic Engineering Research Group George Mason University

More information

ECE 646 Lecture 8. Modes of operation of block ciphers

ECE 646 Lecture 8. Modes of operation of block ciphers ECE 646 Lecture 8 Modes of operation of block ciphers Required Reading: I. W. Stallings, "Cryptography and Network-Security," 5 th and 6 th Edition, Chapter 6 Block Cipher Operation II. A. Menezes, P.

More information

CoreAPB3 v4.1. Handbook

CoreAPB3 v4.1. Handbook CoreAPB3 v4.1 Handbook CoreAPB3 v4.1 Handbook Table of Contents Introduction... 3 Core Overview... 3 Key Features... 5 Supported Microsemi FPGA Families... 5 Core Version... 5 Supported Interfaces... 5

More information

ENGI 8868/9877 Computer and Communications Security III. BLOCK CIPHERS. Symmetric Key Cryptography. insecure channel

ENGI 8868/9877 Computer and Communications Security III. BLOCK CIPHERS. Symmetric Key Cryptography. insecure channel (a) Introduction - recall symmetric key cipher: III. BLOCK CIPHERS k Symmetric Key Cryptography k x e k y yʹ d k xʹ insecure channel Symmetric Key Ciphers same key used for encryption and decryption two

More information

CANmodule-III. Version Datasheet

CANmodule-III. Version Datasheet Datasheet CANmodule-III Version 2.2.5 INICORE INC. 5600 Mowry School Road Suite 180 Newark, CA 94560 t: 510 445 1529 f: 510 656 0995 e: info@inicore.com www.inicore.com 2 0 0 2-2 0 0 5, I N I C O R E,

More information

A VHDL 8254 Timer core

A VHDL 8254 Timer core An www.opencores.org Project hlefevre@opencores.org Revision History Revision Date Author Description 0.1 3 Aug 2008 H LeFevre Initial Release of source files 0.5 4 Aug 2008 H LeFevre Add info about Timer

More information

AES as A Stream Cipher

AES as A Stream Cipher > AES as A Stream Cipher < AES as A Stream Cipher Bin ZHOU, Kris Gaj, Department of ECE, George Mason University Abstract This paper presents implementation of advanced encryption standard (AES) as a stream

More information

EECS 373 Midterm Winter 2016

EECS 373 Midterm Winter 2016 EECS 373 Midterm Winter 2016 Name: unique name: Sign the honor code: I have neither given nor received aid on this exam nor observed anyone else doing so. Nor did I discuss this exam with anyone after

More information

EECS 373 Midterm Winter 2012

EECS 373 Midterm Winter 2012 EECS 373 Midterm Winter 2012 Name: unique name: Sign the honor code: I have neither given nor received aid on this exam nor observed anyone else doing so. Nor did I discuss this exam with anyone after

More information

CANmodule-IIx. Version 2.7.0

CANmodule-IIx. Version 2.7.0 Datasheet CANmodule-IIx Version 2.7.0 INICORE INC. 5600 Mowry School Road Suite 180 Newark, CA 94560 t: 510 445 1529 f: 510 656 0995 e: info@inicore.com www.inicore.com C O P Y R I G H T 2 0 0 2-2 0 0

More information

EECS 373 Design of Microprocessor-Based Systems

EECS 373 Design of Microprocessor-Based Systems EECS 373 Design of Microprocessor-Based Systems Prabal Dutta University of Michigan Lecture 6: AHB-Lite, Interrupts (1) September 18, 2014 Slides"developed"in"part"by"Mark"Brehob" 1" Today" Announcements"

More information

Implementation of Full -Parallelism AES Encryption and Decryption

Implementation of Full -Parallelism AES Encryption and Decryption Implementation of Full -Parallelism AES Encryption and Decryption M.Anto Merline M.E-Commuication Systems, ECE Department K.Ramakrishnan College of Engineering-Samayapuram, Trichy. Abstract-Advanced Encryption

More information

Ming Ming Wong Jawad Haj-Yahya Anupam Chattopadhyay

Ming Ming Wong Jawad Haj-Yahya Anupam Chattopadhyay Hardware and Architectural Support for Security and Privacy (HASP 18), June 2, 2018, Los Angeles, CA, USA Ming Ming Wong Jawad Haj-Yahya Anupam Chattopadhyay Computing and Engineering (SCSE) Nanyang Technological

More information

EECS 373 Design of Microprocessor-Based Systems

EECS 373 Design of Microprocessor-Based Systems EECS 373 Design of Microprocessor-Based Systems Branden Ghena University of Michigan Today Memory-Mapped I/O Example Bus with Memory-Mapped I/O Bus Architectures AMBA APB Lecture 4: Memory-Mapped I/O,

More information

Fundamentals of Computer Security

Fundamentals of Computer Security Fundamentals of Computer Security Spring 2015 Radu Sion Ciphers 2005-15 Portions copyright by Matt Bishop and Wikipedia. Used with permission Overview m 3 m 2 m 1 cipher c i Bob Alice cipher -1 m 1 m 2

More information

CoreSPI v5.0. Handbook

CoreSPI v5.0. Handbook CoreSPI v5.0 Handbook Table of Contents Introduction... 5 Key Features... 5 Core Version... 6 Supported Interfaces... 6 Utilization and Performance... 6 1 - Design Description... 7 Verilog/VHDL Parameters...

More information

Architectural design proposal for real time clock for wireless microcontroller unit

Architectural design proposal for real time clock for wireless microcontroller unit Architectural design proposal for real time clock for wireless microcontroller unit Muhammad Nor Azwan Mohd Alias 1, *, and Shaiful Nizam Mohyar 1 1 School of Microelectronic Engineering, University Malaysia

More information

Introduction to cryptology (GBIN8U16)

Introduction to cryptology (GBIN8U16) Introduction to cryptology (GBIN8U16) Finite fields, block ciphers Pierre Karpman pierre.karpman@univ-grenoble-alpes.fr https://www-ljk.imag.fr/membres/pierre.karpman/tea.html 2018 01 31 Finite fields,

More information

APB Free ware, 2015 Fen Logic Ltd.

APB Free ware, 2015 Fen Logic Ltd. APB Free ware, 205 Fen Logic Ltd. The ARM APB interface is used by many IP providers. In this directory you will find various APB related code examples. The docs directory has a copy of the ARM APB AMBA

More information

CSE509: (Intro to) Systems Security

CSE509: (Intro to) Systems Security CSE509: (Intro to) Systems Security Fall 2012 Radu Sion Ciphers 2005-12 Portions copyright by Matt Bishop. Used with permission Ciphers Overview Naïve Usage Types of Ciphers Systems Security September

More information

Understanding Cryptography A Textbook for Students and Practitioners by Christof Paar and Jan Pelzl

Understanding Cryptography A Textbook for Students and Practitioners by Christof Paar and Jan Pelzl Understanding Cryptography A Textbook for Students and Practitioners by Christof Paar and Jan Pelzl www.crypto-textbook.com Chapter 5 More About Block Ciphers ver. November 26, 2010 Last modified 10-2-17

More information

FPGA CAN BE IMPLEMENTED BY USING ADVANCED ENCRYPTION STANDARD ALGORITHM

FPGA CAN BE IMPLEMENTED BY USING ADVANCED ENCRYPTION STANDARD ALGORITHM FPGA CAN BE IMPLEMENTED BY USING ADVANCED ENCRYPTION STANDARD ALGORITHM P. Aatheeswaran 1, Dr.R.Suresh Babu 2 PG Scholar, Department of ECE, Jaya Engineering College, Chennai, Tamilnadu, India 1 Associate

More information

Peripheral Test Block

Peripheral Test Block Peripheral Test Block Revision: r0p0 Technical Reference Manual Copyright 2005 ARM Limited. All rights reserved. ARM DDI 0364A Peripheral Test Block Technical Reference Manual Copyright 2005 ARM Limited.

More information

Introduction to Modern Cryptography. Lecture 2. Symmetric Encryption: Stream & Block Ciphers

Introduction to Modern Cryptography. Lecture 2. Symmetric Encryption: Stream & Block Ciphers Introduction to Modern Cryptography Lecture 2 Symmetric Encryption: Stream & Block Ciphers Stream Ciphers Start with a secret key ( seed ) Generate a keying stream i-th bit/byte of keying stream is a function

More information

High Level Synthesis of Cryptographic Hardware. Jeremy Trimble ECE 646

High Level Synthesis of Cryptographic Hardware. Jeremy Trimble ECE 646 High Level Synthesis of Cryptographic Hardware Jeremy Trimble ECE 646 High Level Synthesis Synthesize (FPGA) hardware using software programming languages: C / C++, Domain specific Languages ( DSL ) Typical

More information

FPGA Implementation of High Speed AES Algorithm for Improving The System Computing Speed

FPGA Implementation of High Speed AES Algorithm for Improving The System Computing Speed FPGA Implementation of High Speed AES Algorithm for Improving The System Computing Speed Vijaya Kumar. B.1 #1, T. Thammi Reddy.2 #2 #1. Dept of Electronics and Communication, G.P.R.Engineering College,

More information

ECE 545 Lecture 8b. Hardware Architectures of Secret-Key Block Ciphers and Hash Functions. George Mason University

ECE 545 Lecture 8b. Hardware Architectures of Secret-Key Block Ciphers and Hash Functions. George Mason University ECE 545 Lecture 8b Hardware Architectures of Secret-Key Block Ciphers and Hash Functions George Mason University Recommended reading K. Gaj and P. Chodowiec, FPGA and ASIC Implementations of AES, Chapter

More information

Some Aspects of Block Ciphers

Some Aspects of Block Ciphers Some Aspects of Block Ciphers Palash Sarkar Applied Statistics Unit Indian Statistical Institute, Kolkata India palash@isical.ac.in CU-ISI Tutorial Workshop on Cryptology, 17 th July 2011 Palash Sarkar

More information

05 - WLAN Encryption and Data Integrity Protocols

05 - WLAN Encryption and Data Integrity Protocols 05 - WLAN Encryption and Data Integrity Protocols Introduction 802.11i adds new encryption and data integrity methods. includes encryption algorithms to protect the data, cryptographic integrity checks

More information

Network Security Essentials Chapter 2

Network Security Essentials Chapter 2 Network Security Essentials Chapter 2 Fourth Edition by William Stallings Lecture slides by Lawrie Brown Encryption What is encryption? Why do we need it? No, seriously, let's discuss this. Why do we need

More information

Chapter 8. Encipherment Using Modern Symmetric-Key Ciphers

Chapter 8. Encipherment Using Modern Symmetric-Key Ciphers Chapter 8 Encipherment Using Modern Symmetric-Key Ciphers Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 8.1 Chapter 18 Objectives To show how modern standard

More information

CoreGPIO v3.1. Handbook

CoreGPIO v3.1. Handbook CoreGPIO v3.1 Handbook Table of Contents Introduction...5 Core Overview... 5 Key Features... 5 Supported Families... 5 Core Version... 6 Supported Interfaces... 6 Device Utilization and Performance...

More information

Sharing Resources Between AES and the SHA-3 Second Round Candidates Fugue and Grøstl

Sharing Resources Between AES and the SHA-3 Second Round Candidates Fugue and Grøstl Sharing Resources Between AES and the SHA-3 Second Round Candidates Fugue and Grøstl Kimmo Järvinen Department of Information and Computer Science Aalto University, School of Science and Technology Espoo,

More information

EECS 373 Practice Midterm & Homework #2 Fall 2011

EECS 373 Practice Midterm & Homework #2 Fall 2011 Exam #: EECS 373 Practice Midterm & Homework #2 Fall 2011 Name: Uniquename: Sign the honor code: I have neither given nor received aid on this exam nor observed anyone else doing so. Scores: Problem #

More information

The CoreConnect Bus Architecture

The CoreConnect Bus Architecture The CoreConnect Bus Architecture Recent advances in silicon densities now allow for the integration of numerous functions onto a single silicon chip. With this increased density, peripherals formerly attached

More information

Data Encryption Standard (DES)

Data Encryption Standard (DES) Data Encryption Standard (DES) Best-known symmetric cryptography method: DES 1973: Call for a public cryptographic algorithm standard for commercial purposes by the National Bureau of Standards Goals:

More information

CIS 6930/4930 Computer and Network Security. Topic 3.1 Secret Key Cryptography (Cont d)

CIS 6930/4930 Computer and Network Security. Topic 3.1 Secret Key Cryptography (Cont d) CIS 6930/4930 Computer and Network Security Topic 3.1 Secret Key Cryptography (Cont d) 1 Principles for S-Box Design S-box is the only non-linear part of DES Each row in the S-Box table should be a permutation

More information

Chapter 3 Block Ciphers and the Data Encryption Standard

Chapter 3 Block Ciphers and the Data Encryption Standard Chapter 3 Block Ciphers and the Data Encryption Standard Last Chapter have considered: terminology classical cipher techniques substitution ciphers cryptanalysis using letter frequencies transposition

More information

Introduction to Cryptography. Lecture 3

Introduction to Cryptography. Lecture 3 Introduction to Cryptography Lecture 3 Benny Pinkas March 6, 2011 Introduction to Cryptography, Benny Pinkas page 1 Pseudo-random generator seed s (random, s =n) Pseudo-random generator G Deterministic

More information

CANmodule-IIIx. Version Datasheet

CANmodule-IIIx. Version Datasheet Datasheet CANmodule-IIIx Version 3.0.0 INICORE INC. 5600 Mowry School Road Suite 180 Newark, CA 94560 t: 510 445 1529 f: 510 656 0995 e: info@inicore.com www.inicore.com C O P Y R I G H T 2 0 0 2-2 0 1

More information

CIS 4360 Secure Computer Systems Symmetric Cryptography

CIS 4360 Secure Computer Systems Symmetric Cryptography CIS 4360 Secure Computer Systems Symmetric Cryptography Professor Qiang Zeng Spring 2017 Previous Class Classical Cryptography Frequency analysis Never use home-made cryptography Goals of Cryptography

More information

Lecture 6: Symmetric Cryptography. CS 5430 February 21, 2018

Lecture 6: Symmetric Cryptography. CS 5430 February 21, 2018 Lecture 6: Symmetric Cryptography CS 5430 February 21, 2018 The Big Picture Thus Far Attacks are perpetrated by threats that inflict harm by exploiting vulnerabilities which are controlled by countermeasures.

More information

ECE596C: Handout #7. Analysis of DES and the AES Standard. Electrical and Computer Engineering, University of Arizona, Loukas Lazos

ECE596C: Handout #7. Analysis of DES and the AES Standard. Electrical and Computer Engineering, University of Arizona, Loukas Lazos ECE596C: Handout #7 Analysis of DES and the AES Standard Electrical and Computer Engineering, University of Arizona, Loukas Lazos Abstract. In this lecture we analyze the security properties of DES and

More information

Memory-Mapped SHA-1 Coprocessor

Memory-Mapped SHA-1 Coprocessor 19-5870; Rev 0; 5/11 Memory-Mapped SHA-1 Coprocessor General Description The coprocessor with 64-byte RAM is a synthesizable register transfer level (RTL) implementation of the FIPS 180-3 Secure Hash Algorithm

More information

Bus Matrix Synthesis Based On Steiner Graphs for Power Efficient System on Chip Communications

Bus Matrix Synthesis Based On Steiner Graphs for Power Efficient System on Chip Communications Bus Matrix Synthesis Based On Steiner Graphs for Power Efficient System on Chip Communications M.Jasmin Assistant Professor, Department Of ECE, Bharath University, Chennai,India ABSTRACT: Power consumption

More information

SPI 3-Wire Master (VHDL)

SPI 3-Wire Master (VHDL) SPI 3-Wire Master (VHDL) Code Download Features Introduction Background Port Descriptions Clocking Polarity and Phase Command and Data Widths Transactions Reset Conclusion Contact Code Download spi_3_wire_master.vhd

More information

MCMASTER UNIVERSITY EMBEDDED SYSTEMS

MCMASTER UNIVERSITY EMBEDDED SYSTEMS MCMASTER UNIVERSITY EMBEDDED SYSTEMS Computer Engineering 4DS4 Lecture Revision of Digital Systems Amin Vali January 26 Course material belongs to DrNNicolici Field programmable gate arrays (FPGAs) x x

More information

A High-Performance VLSI Architecture for Advanced Encryption Standard (AES) Algorithm

A High-Performance VLSI Architecture for Advanced Encryption Standard (AES) Algorithm A High-Performance VLSI Architecture for Advanced Encryption Standard (AES) Algorithm N. M. Kosaraju, M. Varanasi & Saraju P. Mohanty VLSI Design and CAD Laboratory Homepage: http://www.vdcl.cse.unt.edu

More information

CS 161 Computer Security. Week of September 11, 2017: Cryptography I

CS 161 Computer Security. Week of September 11, 2017: Cryptography I Weaver Fall 2017 CS 161 Computer Security Discussion 3 Week of September 11, 2017: Cryptography I Question 1 Activity: Cryptographic security levels (20 min) Say Alice has a randomly-chosen symmetric key

More information

EECS 373 Practice Midterm / Homework #3 Fall 2014

EECS 373 Practice Midterm / Homework #3 Fall 2014 Exam #: EECS 373 Practice Midterm / Homework #3 Fall 2014 Name: Uniquename: Sign the honor code: I have neither given nor received aid on this exam nor observed anyone else doing so. Scores: Problem #

More information

CoreMDIO_APB v2.0. Handbook

CoreMDIO_APB v2.0. Handbook CoreMDIO_APB v2.0 Handbook Revision History Date Revision Change August 2015 1 Initial release Confidentiality Status This is a non-confidential document. 2 CoreMDIO_APB v2.0 Handbook Table of Contents

More information

RFID A1 Module User Manual V1.183

RFID A1 Module User Manual V1.183 RFID A1 Module User Manual V1.183 Table of Contents 1 Introduction... 4 1.1 Device Overview... 4 1.2 Pinout... 5 1.3 Application... 6 2 Electrical Characteristics... 7 2.1 Test Conditions... 7 2.2 Absolute

More information

Lecture 1 Applied Cryptography (Part 1)

Lecture 1 Applied Cryptography (Part 1) Lecture 1 Applied Cryptography (Part 1) Patrick P. C. Lee Tsinghua Summer Course 2010 1-1 Roadmap Introduction to Security Introduction to Cryptography Symmetric key cryptography Hash and message authentication

More information

1 Achieving IND-CPA security

1 Achieving IND-CPA security ISA 562: Information Security, Theory and Practice Lecture 2 1 Achieving IND-CPA security 1.1 Pseudorandom numbers, and stateful encryption As we saw last time, the OTP is perfectly secure, but it forces

More information