UM0586 User manual. STM32 Cryptographic Library. Introduction
|
|
- Julie Hopkins
- 8 years ago
- Views:
Transcription
1 User manual STM32 Cryptographic Library Introduction This manual describes the API of the STM32 cryptographic library (STM32-CRYP-LIB) that supports the following cryptographic algorithms: AES-128, AES-192, AES-256 bits. Supported modes are: ECB (Electronic Codebook Mode) CBC (Cipher-Block Chaining) with support for ciphertext stealing CTR (CounTer Mode) CCM (Counter with CBC-MAC) GCM (Galois Counter Mode) CMAC KEY WRAP ARC4 DES, TripleDES. Supported modes are: ECB (Electronic Codebook Mode) CBC (Cipher-Block Chaining) HASH functions with HMAC support: MD5 SHA-1 SHA-224 SHA-256 Random engine based on DRBG-AES-128 RSA signature functions with PKCS#1v1.5 ECC (Elliptic Curve Cryptography): Key generation Scalar multiplication (the base for ECDH) ECDSA These cryptographic algorithms can run in the series STM32F1, STM32 L1, STM32F2, STM32F4, STM32F0 and STM32F3 with hardware enhancement accelerators. September 2013 DocID14989 Rev 4 1/131
2 Contents UM0586 Contents 1 Terminology STM32 cryptographic library package presentation Architecture Package organization Libraries Project Utilities DES and Triple-DES algorithms Description DES library functions DES_DDD_Encrypt_Init function DES_DDD_Encrypt_Append function DES_DDD_Encrypt_Finish function DES_DDD_Decrypt_Init function DES_DDD_Decrypt_Append function DES_DDD_Decrypt_Finish function TDES library functions TDES_TTT_Encrypt_Init function TDES_TTT_Encrypt_Append function TDES_TTT_Encrypt_Finish function TDES_TTT_Decrypt_Init function TDES_TTT_Decrypt_Append function TDES_TTT_Decrypt_Finish function DES with ECB mode example AES algorithm Description AES library functions (ECB, CBC and CTR) AES_AAA_Encrypt_Init function AES_AAA_Encrypt_Append function AES_AAA_Encrypt_Finish function AES_AAA_Decrypt_Init function /131 DocID14989 Rev 4
3 Contents AES_AAA_Decrypt_Append function AES_AAA_Decrypt_Finish function AES GCM library functions AES_GCM_Encrypt_Init function AES_GCM_Header_Append function AES_GCM_Encrypt_Append function AES_GCM_Encrypt_Finish function AES_GCM_Decrypt_Init function AES_GCM_Decrypt_Append function AES_GCM_Decrypt_Finish function AES KeyWrap library functions AES_KeyWrap_Encrypt_Init function AES_KeyWrap_Encrypt_Append function AES_KeyWrap_Encrypt_Finish function AES_KeyWrap_Decrypt_Init function AES_KeyWrap_Decrypt_Append function AES_KeyWrap_Decrypt_Finish function AES CMAC library functions AES_CMAC_Encrypt_Init function AES_CMAC_Encrypt_Append function AES_CMAC_Encrypt_Finish function AES_CMAC_Decrypt_Init function AES_CMAC_Decrypt_Append function AES_CMAC_Decrypt_Finish function AES CCM library functions AES_CCM_Encrypt_Init function AES_CCM_Header_Append function AES_CCM_Encrypt_Append function AES_CCM_Encrypt_Finish function AES_CCM_Decrypt_Init function AES_CCM_Decrypt_Append function AES_CCM_Decrypt_Finish function AES CBC enciphering and deciphering example ARC4 algorithm Description DocID14989 Rev 4 3/131
4 Contents UM ARC4 library functions ARC4_Encrypt_Init function ARC4_Encrypt_Append function ARC4_Encrypt_Finish function ARC4_Decrypt_Init function ARC4_Decrypt_Append function ARC4_Decrypt_Finish function ARC4 example RNG algorithm Description RNG library functions RNGreseed function RNGinit function RNGfree function RNGgenBytes function RNGgenWords function RNG example HASH algorithm Description HASH library functions HHH_Init function HHH_Append function HHH_Finish function HMAC_HHH_Init function HMAC_HHH_Append function HMAC_HHH_Finish function HASH SHA1 example RSA algorithm Description RSA library functions RSA_PKCS1v15_Sign function RSA_PKCS1v15_Verify function RSA Signature generation/verification example /131 DocID14989 Rev 4
5 Contents 9 ECC algorithm Description ECC library functions ECCinitEC function ECCfreeEC function ECCinitPoint function ECCfreePoint function ECCsetPointCoordinate function ECCgetPointCoordinate function ECCgetPointFlag function ECCsetPointFlag function ECCcopyPoint function ECCinitPrivKey function ECCfreePrivKey function ECCsetPrivKeyValue function ECCgetPrivKeyValue function ECCscalarMul function ECCsetPointGenerator function ECDSAinitSign function ECDSAfreeSign function ECDSAsetSignature function ECDSAgetSignature function ECDSAverify function ECCvalidatePubKey function ECCkeyGen function ECDSAsign function ECC example STM32 encryption library settings Configuration parameters STM32_CryptoLibraryVersion Cryptographic library performance and memory requirements Symmetric key algorithms performance results Software optimized for speed Hardware enhanced DocID14989 Rev 4 5/131
6 Contents UM Authenticated encryption algorithms performance results Software optimized for speed Hardware enhanced AES key wrap results Software optimized for speed Hardware enhanced HASH and HMAC algorithm results Software optimized for speed Hardware enhanced RSA results ECC results Revision history /131 DocID14989 Rev 4
7 List of tables List of tables Table 1. DES algorithm functions (DDD = ECB or CBC) Table 2. DES ECB algorithm functions Table 3. DES_DDD_Encrypt_Init Table 4. DESDDDctx_stt data structure Table 5. SKflags_et mflags Table 6. DES_DDD_Encrypt_Append Table 7. DES_DDD_Encrypt_Finish Table 8. DES_DDD_Decrypt_Init Table 9. DES_DDD_Decrypt_Append Table 10. DES_DDD_Decrypt_Finish Table 11. TDES algorithm functions (TTT = ECB or CBC) Table 12. TDES ECB algorithm functions Table 13. TDES_TTT_Encrypt_Init Table 14. TDESTTTctx_stt data structure Table 15. TDES_TTT_Encrypt_Append Table 16. TDES_TTT_Encrypt_Finish Table 17. TDES_TTT_Decrypt_Init Table 18. TDES_TTT_Decrypt_Append Table 19. TDES_TTT_Decrypt_Finish Table 20. AES algorithm functions (AAA = ECB, CBC or CTR) Table 21. AES ECB algorithm functions Table 22. AES_AAA_Encrypt_Init Table 23. AESAAActx_stt data structure Table 24. AES_AAA_Encrypt_Append Table 25. AES_AAA_Encrypt_Finish Table 26. AES_AAA_Decrypt_Init Table 27. AES_AAA_Decrypt_Append Table 28. AES_AAA_Decrypt_Finish Table 29. AES GCM algorithm functions Table 30. AES_GCM_Encrypt_Init Table 31. AESGCMctx_stt data structure Table 32. AES_GCM_Header_Append Table 33. AES_GCM_Encrypt_Append Table 34. AES_GCM_Encrypt_Finish Table 35. AES_GCM_Decrypt_Init Table 36. AES_GCM_Decrypt_Append Table 37. AES_GCM_Decrypt_Finish Table 38. AES KeyWrap algorithm functions Table 39. AES_KeyWrap_Encrypt_Init Table 40. AES_KeyWrap_Encrypt_Append Table 41. AES_KeyWrap_Encrypt_Finish Table 42. AES_KeyWrap_Decrypt_Init Table 43. AES_KeyWrap_Decrypt_Append Table 44. AES_KeyWrap_Decrypt_Finish Table 45. AES CMAC algorithm functions Table 46. AES_CMAC_Encrypt_Init Table 47. AESCMACctx_stt data structure Table 48. AES_CMAC_Encrypt_Append DocID14989 Rev 4 7/131
8 List of tables UM0586 Table 49. AES_CMAC_Encrypt_Finish Table 50. AES_CMAC_Decrypt_Init Table 51. AES_CMAC_Decrypt_Append Table 52. AES_CMAC_Decrypt_Finish Table 53. AES CCM algorithm functions Table 54. AES_CCM_Encrypt_Init Table 55. AESCCMctx_stt data structure Table 56. AES_CCM_Header_Append Table 57. AES_CCM_Encrypt_Append Table 58. AES_CCM_Encrypt_Finish Table 59. AES_CCM_Decrypt_Init Table 60. AES_CCM_Decrypt_Append Table 61. AES_CCM_Decrypt_Finish Table 62. ARC4 algorithm functions Table 63. ARC4_Encrypt_Init Table 64. ARC4_Encrypt_Append Table 65. ARC4ctx_stt data structure Table 66. ARC4_Encrypt_Finish Table 67. ARC4_Decrypt_Init Table 68. ARC4_Decrypt_Append Table 69. ARC4_Decrypt_Finish Table 70. RNG algorithm functions Table 71. RNGreseed Table 72. RNGreInput_stt struct reference Table 73. RNGstate_stt struct reference Table 74. RNGinit Table 75. RNGstate_stt struct reference Table 76. RNGfree Table 77. RNGgenBytes Table 78. RNGgenWords Table 79. HASH algorithm functions (HHH = MD5, SHA1, SHA224 or SHA256) Table 80. HASH SHA1 algorithm functions Table 81. HHH_Init Table 82. HASHctx_stt struct reference Table 83. HashFlags_et mflags Table 84. HHH_Append Table 85. HHH_Finish Table 86. HMAC_HHH_Init Table 87. HMACctx_stt struct reference Table 88. HMAC_HHH_Append Table 89. HMAC_HHH_Finish Table 90. RSA algorithm functions Table 91. RSA_PKCS1v15_Sign function Table 92. RSAprivKey_stt data structure Table 93. membuf_stt data structure Table 94. RSA_PKCS1v15_Verify function Table 95. RSApubKey_stt data structure Table 96. ECC algorithm functions Table 97. ECCinitEC function Table 98. EC_stt data structure Table 99. ECCfreeEC function Table 100. ECCinitPoint function /131 DocID14989 Rev 4
9 List of tables Table 101. ECpoint_stt data structure Table 102. ECCfreePoint function Table 103. ECCsetPointCoordinate function Table 104. ECCgetPointCoordinate function Table 105. ECCgetPointFlag function Table 106. ECCsetPointFlag function Table 107. ECCcopyPoint function Table 108. ECCinitPrivKey function Table 109. ECCprivKey_stt data structure Table 110. ECCfreePrivKey function Table 111. ECCsetPrivKeyValue function Table 112. ECCgetPrivKeyValue function Table 113. ECCscalarMul function Table 114. ECCsetPointGenerator function Table 115. ECDSAinitSign function Table 116. ECDSAfreeSign function Table 117. ECDSAsetSignature function Table 118. ECDSAgetSignature function Table 119. ECDSAverify function Table 120. ECCvalidatePubKey function Table 121. ECCkeyGen function Table 122. ECDSAsign function Table 123. Library build options Table 124. STM32_CryptoLibraryVersion Table 125. Performance of symmetric key encryption algo. optimized for speed Table 126. Code size required by symmetric key encryption algo Table 127. Symmetric key encrypt. algo. performance with HW acceleration Table 128. Code size for symmetric key encryption algo. with HW acceleration Table 129. Clock cycles for authenticated encryption algorithms optimized for speed Table 130. Code size for authenticated encryption algorithms optimized for speed Table 131. Clock cycles for authenticated encryption algorithms & HW acceleration Table 132. Code size for authenticated encryption algorithm & HW acceleration Table 133. AES Key Wrap/Unwrap in software Table 134. Code size for AES key wrap/unwrap in software Table 135. AES key wrap/unwrap with HW acceleration Table 136. Code size for AES key wrap/unwrap with HW acceleration Table 137. Clock cycles for HASH and HMAC algorithms optimized for speed Table 138. Clock cycles for HASH and HMAC algorithms with SW acceleration Table 139. Clock cycles required by HASH/HMAC algorithms with HW acceleration Table 140. Code size required by HASH/HMAC algorithms Table 141. RSA performance with optimization for speed Table 142. Code size required by RSA algorithms Table 143. Number of cycles for ECC operations with for speed optimization Table 144. Code size for ECC operations with speed optimization Table 145. Document revision history DocID14989 Rev 4 9/131
10 List of figures UM0586 List of figures Figure 1. Block diagram of a common cipher Figure 2. STM32 cryptographic library architecture Figure 3. STM32 cryptographic library package organization Figure 4. Project folder organization Figure 5. DES DDD(*) flowchart Figure 6. TDES TTT(*) flowchart Figure 7. AES AAA(*) flowchart Figure 8. AES GCM flowchart Figure 9. AES_KeyWrap flowchart Figure 10. AES_CMAC flowchart Figure 11. AES_CCM flowchart Figure 12. ARC4 flowchart Figure 13. RNG flowchart Figure 14. Hash HHH flowchart Figure 15. RSA flowchart Figure 16. ECC Sign flowchart Figure 17. ECC Verify flowchart Figure 18. ECC key generator flowchart /131 DocID14989 Rev 4
11 Terminology 1 Terminology Encryption is a branch of cryptographic science. It is the transformation that converts data to illegible data, with the view of making it secure. The following block diagram (see Figure 1) shows a commonly used encryption system structure. Figure 1. Block diagram of a common cipher Cipher key Plaintext Cipher Ciphertext MS32844V1 The following terms are used throughout this document: Cipher: a suite of transformations that converts plaintext to ciphertext and ciphertext to plaintext, using the cipher key: transformation from plaintext to ciphertext is called enciphering or encryption transformation from ciphertext to plaintext is called deciphering or decryption Cipher key: a private key that is used by the cipher to perform cryptographic operations. The cipher key size is the important element that determines the security level of the encryption algorithm. Plaintext: raw data to be encrypted. In the case of an encryption, it is the input of the cipher, In the case of a decryption, it is the output of the cipher. Ciphertext: converted data. result of plaintext encryption. Symmetric cipher: cipher that uses a single key for enciphering and deciphering Asymmetric cipher: cipher that uses two keys, one for enciphering and the other for deciphering. DocID14989 Rev 4 11/131
12 STM32 cryptographic library package presentation UM STM32 cryptographic library package presentation 2.1 Architecture The library is built around a modular programming model ensuring: independencies between the components building the main application easy porting on a large product range use of integrated firmware components for other applications with minimum changes to common code. The following figure provides a global view of the STM32 cryptographic library usage and interaction with other firmware components. Figure 2. STM32 cryptographic library architecture Customer application/examples Middleware STM32 Cryptographic Library (object code only (1),(2) ) AES HASH Others Components CTR CCM SHA-1 MD5 Common Hardware abstraction layer (HAL) Note: Note: Note: 1. For algorithms that are not supported by the HW Cryptographic peripheral, only the firmware version will be available when enabling HW acceleration. 2. HW acceleration is only available for STM32F21x and STM32F41x devices. For other devices, all cryptographic algorithms are implemented in firmware. 3. CRC peripheral is used. The HAL controls the STM32 device registers and features based on two main libraries: CMSIS layer: Core Peripheral Access Layer. STM32xx Device Peripheral Access Layer. STM32 standard peripheral driver. STM32 cryptographic library: As presensented in Figure 2, the STM32 cryptographic library is based on modular archictecture that means new algorithms can be added 12/131 DocID14989 Rev 4
13 STM32 cryptographic library package presentation without any impact on the current implementation. To provide flexibility for cryptographic functions, each algorithm can be compiled with different options to manage the memory and execution speed. Chapter 11 is dedicated to the performance evaluation of the cryptographic library for the STM32 microcontroller series. This analysis targets the STM32F4xx family in particular as the series STM32F41x includes some cryptographic accelerators. Application layer: The application layer consists of a set of examples covering all available algorithms with template projects for the most common development tools. Even without the appropriate hardware evaluation board, this layer allows you to rapidly get started with a brand new STM32 cryptographic library. 2.2 Package organization The library is supplied in a zip file. The extraction of the zip file generates one folder, STM32_Cryptographic_Lib_VX.Y.Z, which contains the following subfolders: Figure 3. STM32 cryptographic library package organization Note: VX.Y.Z refers to the library version, ex. V1.0.0 The STM32 cryptographic library package consists of three main folders: Libraries, Projects and Utilities. DocID14989 Rev 4 13/131
14 STM32 cryptographic library package presentation UM Libraries This folder contains two subfolders, CMSIS files and STM32 cryptographic library, followed by drivers for STM32 Standard Peripheral. CMSIS subfolder: contains STM32F0xx, STM32F2xx, STM32F4xx, STM32F10x, STM32F30x, STM32F37x and STM32L1xx CMSIS files STM32_Cryptographic_library: contains two subfolders: binary and inc binary: contains five STM32 cryptographic libraries for each Development Toolchain, in the EWARM and MDK-ARM subfolders: a) EWARM: Contains eight STM32 crytographic libraries compiled with IAR toolchain with high speed optimization: M4_CryptoHW_2_0_6.a: STM32 Cryptographic Library for STM32F41x families. M4_CryptoFW_RngHW_2_0_6.a: STM32 Cryptographic Library Firmware with Hardware RNG pheripheral for STM32F4xx families. M4_CryptoFW_2_0_6.a: STM32 Cryptographic Library Firmware for STM32F40x families. M3_CryptoHW_2_0_6.a: STM32 Cryptographic Library for STM32F21x families. M3_CryptoFW_RngHW_2_0_6.a: STM32 Cryptographic Library Firmware with Hardware RNG pheripheral for STM32F20x families. M3_CryptoFW_2_0_6.a: STM32 Cryptographic Library Firmware for STM32F10x and STM32F3xx. M3_CryptoFW_L1xx_2_0_6.a: STM32 Cryptographic Library Firmware for STM32L1xx families. M0_CryptoFW_2_0_6.a: STM32 Cryptographic Library Firmware for STM32F0xx families. b) MDK-ARM: Contains eight STM32 crytographic libraries compiled with Keil toolchain 4.70 with optimization level 3(-O 3): M4_CryptoHW_2_0_6.lib: STM32 Cryptographic Library for STM32F41x families. M4_CryptoFW_RngHW_2_0_6. lib: STM32 Cryptographic Library Firmware with Hardware RNG pheripheral for STM32F4xx families. M4_CryptoFW_2_0_6. lib: STM32 Cryptographic Library Firmware for STM32F40x families. M3_CryptoHW_2_0_6. lib: STM32 Cryptographic Library for STM32F21x families. M3_CryptoFW_RngHW_2_0_6. lib: STM32 Cryptographic Library Firmware with Hardware RNG pheripheral for STM32F20x families. M3_CryptoFW_2_0_6. lib: STM32 Cryptographic Library Firmware for STM32F10x and STM32F3xx. M3_CryptoFW_L1xx_2_0_6. lib: STM32 Cryptographic Library Firmware for STM32L1xx families. M0_CryptoFW_2_0_6. lib: STM32 Cryptographic Library Firmware for STM32F0xx families. inc: contains all header files used by STM32 cryptographic library The remaining folders contain standard drivers for STM32 standard peripherals. 14/131 DocID14989 Rev 4
15 STM32 cryptographic library package presentation Project This folder contains dedicated subfolders of STM32_Cryptographic_Examples that contain sets of examples by algorithms as presented in Figure 4. We provide a project template for EWARM, MDK-ARM tool chain for each STM32 series STM32F0xx, STM32F2xx, STM324xx, STM3210, STM32F30x, STM32F37x and STM32L1xx. Figure 4. Project folder organization Utilities Note: This folder contains the abstraction layer that allows interaction with the human interface resources (buttons, LEDs, LCD and COM ports (USARTs)) available on STMicroelectronics evaluation boards. All examples provided in this package are independant of external hardware. DocID14989 Rev 4 15/131
16 DES and Triple-DES algorithms UM DES and Triple-DES algorithms 3.1 Description The data encryption standard (DES) is a symmetric cipher algorithm that can process data blocks of 64 bits under the control of a 64-bit key. The DES core algorithm uses 56 bits for enciphering and deciphering, and 8 bits for parity, so the DES cipher key size is 56 bits. The DES cipher key size has become insufficient to guarantee algorithm security, thus the Triple-DES (TDES) has been devised to expand the key from 56 bits to 168 bits (56 3) while keeping the same algorithm core. The Triple-DES is a suite of three DES in series, making three DES encryptions with three different keys. The STM32 cryptographic library includes the functions required to support DES and Triple- DES modules to perform encryption and decryption using the following modes: ECB (Electronic Codebook Mode) CBC (Cipher-Block Chaining) These modes can run with the STM32F1, STM32L1, STM32F20x, STM32F05x, STM32F40x, STM32F37x and the STM32F30x series using a software algorithm implementation. You can optimize the performance by using pure hardware accelerators in the STM32F21x and STM32F41x devices. For DES and Triple-DES library settings, refer to Section 10: STM32 encryption library settings. For DES and Triple-DES library performance and memory requirements, refer to Section 11: Cryptographic library performance and memory requirements. 16/131 DocID14989 Rev 4
17 DES and Triple-DES algorithms 3.2 DES library functions Table 1 describes the encryption library s DES functions. Table 1. DES algorithm functions (DDD = ECB or CBC) Function name DES_DDD_Encrypt_Init DES_DDD_Encrypt_Append DES_DDD_Encrypt_Finish DES_DDD_Decrypt_Init DES_DDD_Decrypt_Append DES_DDD_Decrypt_Finish Description Initialization for DES Encryption in DDD mode DES Encryption in DDD mode DES Encryption Finalization of DDD mode Initialization for DES Decryption in DDD mode DES Decryption in DDD mode DES Decryption Finalization in DDD mode DDD represents the mode of operation of the DES algorithm, it is either ECB or CBC. For example, if you want to use ECB mode as a DES algorithm, you can use the following functions: Table 2. DES ECB algorithm functions Function name DES_ECB_Encrypt_Init DES_ECB_Encrypt_Append DES_ECB_Encrypt_Finish DES_ECB_Decrypt_Init DES_ECB_Decrypt_Append DES_ECB_Decrypt_Finish Description Initialization for DES Encryption in ECB mode DES Encryption in ECB mode DES Encryption Finalization of ECB mode Initialization for DES Decryption in ECB mode DES Decryption in ECB mode DES Decryption Finalization in ECB mode Figure 5 describes the DES algorithm. DocID14989 Rev 4 17/131
18 DES and Triple-DES algorithms UM0586 Figure 5. DES DDD(*) flowchart Encryption Decryption Begin Begin DES Encryption Initialization API DES_DDD _Encrypt _Init DES De cryption Initialization API DES_DDD _De crypt _Init DES_SUCCESS - DES_ERR_BAD_CONTEXT (used only with CBC) - DES_ERR_BAD_PARAMETER DES_SUCCESS - DES_ERR_BAD_CONTEXT (used only with CBC) - DES_ERR_BAD_PARAMETER DES Encryption API DES_DDD_Encrypt_Append DES De cryption API DES _ DDD _Decrypt_ Append DES_SUCCESS - DES_ERR_BAD_PARAMETER - DES_ERR_BAD_INPUT_SIZE - DES_ERR_BAD_OPERATION - DMA_BAD_ADDRESS - DMA_ERR_TRANSFER DES_SUCCESS - DES_ERR_BAD_PARAMETER - DES_ERR_BAD_INPUT_SIZE - DES_ERR_BAD_OPERATION - DMA_BAD_ADDRESS - DMA_ERR_TRANSFER DES Encryptio n Finalization API DES _ DDD _ Encrypt _ Finish DES De cryption Finalization API DES_ DDD_ Decrypt_ Finish DES_SUCCESS DES_ERR_BAD_PARAMETER DES_SUCCESS DES_ERR_BAD_PARAMETER End End MS30067V1 18/131 DocID14989 Rev 4
19 DES and Triple-DES algorithms DES_DDD_Encrypt_Init function Function name DES_DDD_Encrypt_Init (1) Table 3. DES_DDD_Encrypt_Init int32_t DES_DDD_Encrypt_Init ( DESDDDctx_stt * P_pDESDDDctx, const uint8_t * P_pKey, const uint8_t * P_pIv ) Initialization for DES Encryption in DDD mode [in, out] *P_pDESDDDctx: DES DDD context [in] *P_pKey: Buffer with the Key [in] *P_pIv: Buffer with the IV (2) DES_SUCCESS : Operation Successful DES_ERR_BAD_PARAMETER: At least one parameter is a NULL pointer DES_ERR_BAD_CONTEXT: Context not initialized with valid values, see note 2 below (This return value is only used with CBC algorithm) 1. DDD is ECB or CBC 2. In ECB: IV is not used, so the value of P_pIv is not checked or used. In CBC: IV size must be already written inside the fields of P_pDESCBCctx. The IV size must be at least 1 and at most 16 to avoid the DES_ERR_BAD_CONTEXT return. Note: 1. P_pDESDDDctx.mFlags must be set prior to calling this function. Default value is E_SK_DEFAULT. See SKflags_et for details. 2. P_pDESCBCctx.mIvSize must be set with the size of the IV (default CRL_DES_BLOCK) prior to calling this function. DESDDDctx_stt data structure Structure type for public key. Table 4. DESDDDctx_stt data structure Field name uint32_t mcontextid SKflags_et mflags const uint8_t * pmkey const uint8_t * pmiv int32_t mivsize uint32_t amiv[2] uint32_t amexpkey[32] Description Unique ID of this context. Not used in current implementation 32 bit mflags, used to perform keyschedule see SKflags_et mflags Pointer to original key buffer Pointer to original initialization vector buffer Size of the initialization vector in bytes Temporary result/iv Expanded DES key SKflags_et mflags Enumeration of allowed flags in a context for symmetric key operations. DocID14989 Rev 4 19/131
20 DES and Triple-DES algorithms UM0586 Table 5. SKflags_et mflags Field name E_SK_DEFAULT E_SK_DONT_PERFORM_K EY_SCHEDULE E_SK_USE_DMA E_SK_FINAL_APPEND E_SK_OPERATION_COMP LETED E_SK_NO_MORE_APPEND _ALLOWED E_SK_NO_MORE_HEADER _APPEND_ALLOWED E_SK_APPEND_DONE Description User Flag: No flag specified. This is the default value for this flag User Flag: Forces the initialization to not perform key schedule. The classic example is where the same key is used on a new message. In this case redoing key scheduling is a waste of computation. User Flag: Used when there is a HW engine for DES. It specifies whether DMA or CPU should transfer data. It is common to always use the DMA, except when DMA is very busy or input data is very small. User Flag: Must be set in some modes before final Append call occurs. Internal Flag: Checks that the Finish function has been called. Internal Flag: Set when the last append has been called. Used where the append is called with an InputSize not multiple of the block size, which means that is the last input. Internal Flag: only for authenticated encryption modes. It is set when the last header append has been called. Used where the header append is called with an InputSize not multiple of the block size, which means that is the last input. Internal Flag: not used in this algorithm 20/131 DocID14989 Rev 4
21 DES and Triple-DES algorithms DES_DDD_Encrypt_Append function Table 6. DES_DDD_Encrypt_Append Function name DES_DDD_Encrypt_Append (1) int32_t DES_DDD_Encrypt_Append( DESDDDctx_stt * P_pDESDDDctx, const uint8_t * P_pInputBuffer, int32_t P_inputSize, uint8_t * P_pOutputBuffer, int32_t * P_pOutputSize) DES Encryption in DDD mode [in] *P_pDESDDDctx: DES DDD, already initialized, context [in] *P_pInputBuffer: Input buffer [in] P_inputSize: Size of input data expressed in bytes [out] *P_pOutputBuffer: Output buffer [out] *P_pOutputSize Size: Pointer to integer that will contain the size of written output data, expressed in bytes DES_SUCCESS: Operation Successful DES_ERR_BAD_PARAMETER: At least one parameter is a NULL pointer DES_ERR_BAD_INPUT_SIZE: the P_inputSize is not a multiple of CRL_DES_BLOCK or less than 8 DMA_BAD_ADDRESS: Input or output buffer addresses are not word aligned DMA_ERR_TRANSFER: Error occurred in the DMA transfer DES_ERR_BAD_OPERATION: Append not allowed 1. DDD is ECB or CBC. Note: This function can be called multiple times, provided that P_inputSize is a multiple of DES_DDD_Encrypt_Finish function Table 7. DES_DDD_Encrypt_Finish Function name DES_DDD_Encrypt_Finish (1) int32_t DES_DDD_Encrypt_Finish ( DESDDDctx_stt * P_pDESDDDctx, uint8_t * P_pOutputBuffer, int32_t * P_pOutputSize ) DES Encryption Finalization of DDD mode [in,out] *P_pDESDDDctx: DES DDD, already initialized, context [out] *P_pOutputBuffer: Output buffer [out] *P_pOutputSize: Pointer to integer that will contain the size of written output data, expressed in bytes DES_SUCCESS: Operation Successful DES_ERR_BAD_PARAMETER: At least one parameter is a NULL pointer 1. DDD is ECB or CBC. Note: This function won't write output data, thus it can be skipped.it is kept for API compatibility. DocID14989 Rev 4 21/131
22 DES and Triple-DES algorithms UM DES_DDD_Decrypt_Init function Function name DES_DDD_Decrypt_Init (1) Table 8. DES_DDD_Decrypt_Init int32_t DES_DDD_Decrypt_Init ( DESDDDctx_stt * P_pDESDDDctx, const uint8_t * P_pKey, const uint8_t * P_pIv ) Initialization for DES Decryption in DDD Mode [in,out] *P_pDESDDDctx: DES DDD context [in] *P_pKey: Buffer with the Key [in] *P_pIv: Buffer with the IV (2) DES_SUCCESS: Operation Successful DES_ERR_BAD_PARAMETER: At least one parameter is a NULL pointer DES_ERR_BAD_CONTEXT: Context not initialized with valid values, see note 2 below (This return value is only used with CBC algorithm) 1. DDD is ECB or CBC 2. In ECB: IV is not used, so the value of P_pIv is not checked or used. In CBC: IV size must be already written inside the fields of P_pDESCBCctx. The IV size must be at least 1 and at most 16 to avoid the DES_ERR_BAD_CONTEXT return. Note: 1. P_pDESDDDctx.mFlags must be set before calling this function. Default value is E_SK_DEFAULT. See SKflags_et for details. 2. P_pDESCBCctx.mIvSize must be set with the size of the IV (default CRL_DES_BLOCK) prior to calling this function. 22/131 DocID14989 Rev 4
23 DES and Triple-DES algorithms DES_DDD_Decrypt_Append function Table 9. DES_DDD_Decrypt_Append Function name DES_DDD_Decrypt_Append (1) int32_t DES_DDD_Decrypt_Append ( DESDDDctx_stt * P_pDESDDDctx, const uint8_t * P_pInputBuffer, int32_t P_inputSize, uint8_t * P_pOutputBuffer, int32_t * P_pOutputSize ) DES Decryption in DDD mode [in] *P_pDESDDDctx: DES DDD, already initialized, context [in] *P_pInputBuffer: Input buffer [in] P_inputSize: Size of input data expressed in bytes [out] *P_pOutputBuffer: Output buffer [out] *P_pOutputSize Size: Pointer to integer that will contain the size of written output data, expressed in bytes DES_SUCCESS: Operation Successful DES_ERR_BAD_PARAMETER: At least one parameter is a NULL pointer DES_ERR_BAD_INPUT_SIZE: P_inputSize is not a multiple of CRL_DES_BLOCK or less than 8 DMA_BAD_ADDRESS: Input or output buffer addresses are not word aligned DMA_ERR_TRANSFER: Error occurred in the DMA transfer DES_ERR_BAD_OPERATION: Append not allowed 1. DDD is ECB or CBC Note: This function can be called multiple times, provided that P_inputSize is a multiple of DES_DDD_Decrypt_Finish function Table 10. DES_DDD_Decrypt_Finish Function name DES_DDD_Decrypt_Finish (1) int32_t DES_ECB_Decrypt_Finish ( DESDDDctx_stt * P_pDESECBctx, uint8_t * P_pOutputBuffer, int32_t * P_pOutputSize ) DES Decryption Finalization of DDD Mode [in,out] *P_pDESDDDctx: DES DDD, already initialized, context [out] *P_pOutputBuffer: Output buffer [out] *P_pOutputSize: Pointer to integer that will contain the size of written output data, expressed in bytes DES_SUCCESS: Operation Successful DES_ERR_BAD_PARAMETER: At least one parameter is a NULL pointer 1. DDD is ECB or CBC Note: This function won't write output data, thus it can be skipped.it is kept for API compatibility. DocID14989 Rev 4 23/131
24 DES and Triple-DES algorithms UM TDES library functions Table 11 describes the encryption library s TDES functions.below Table 11. TDES algorithm functions (TTT = ECB or CBC) Function name TDES_TTT_Encrypt_Init TDES_TTT_Encrypt_Append TDES_TTT_Encrypt_Finish TDES_TTT_Decrypt_Init TDES_TTT_Decrypt_Append TDES_TTT_Decrypt_Finish Description Initialization for TDES Encryption in TTT mode TDES Encryption in TTT mode TDES Encryption Finalization of TTT mode Initialization for TDES Decryption in TTT mode TDES Decryption in TTT mode TDES Decryption Finalization in TTT mode TTT represents the mode of operations of the TDES algorithm. The following modes of operation can be used for TDES algorithm: ECB CBC Figure 6 describes the TDES algorithm: For example, if you want to use ECB mode as a TDES algorithm, you can use the following functions: Table 12. TDES ECB algorithm functions Function name TDES_ECB_Encrypt_Init TDES_ECB_Encrypt_Append TDES_ECB_Encrypt_Finish TDES_ECB_Decrypt_Init TDES_ECB_Decrypt_Append TDES_ECB_Decrypt_Finish Description Initialization for TDES Encryption in ECB mode TDES Encryption in ECB mode TDES Encryption Finalization of ECB mode Initialization for TDES Decryption in ECB mode TDES Decryption in ECB mode TDES Decryption Finalization in ECB mode 24/131 DocID14989 Rev 4
25 DES and Triple-DES algorithms Figure 6. TDES TTT(*) flowchart Encryption Decryption Begin Begin TDES Encryption Initialization API TDES_TTT_Encrypt_Init TDES Decryption Initialization API TDES_TTT_ De crypt _Init TDES_SUCCESS - TDES_ERR_BAD_CONTEXT (used only with CBC) - TDES_ERR_BAD_PARAMETER TDES_SUCCESS - TDES_ERR_BAD_CONTEXT (used only with CBC) - TDES_ERR_BAD_PARAMETER TDES Encryption API TDES_TTT_Encrypt_Append TDES Decryption API TDES_TTT_ Decrypt_ Append TDES_SUCCESS - TDES_ERR_BAD_PARAMETER - TDES_ERR_BAD_INPUT_SIZE - TDES_ERR_BAD_OPERATION - DMA_BAD_ADDRESS - DMA_ERR_TRANSFER TDES_SUCCESS - TDES_ERR_BAD_PARAMETER - TDES_ERR_BAD_INPUT_SIZE - TDES_ERR_BAD_OPERATION - DMA_BAD_ADDRESS - DMA_ERR_TRANSFER TDES Encryption Finalization API TDES_TTT_ Encrypt_Finish TDES Decryption Finalization API TDES_TTT_ Decrypt_ Finish TDES_SUCCESS TDES_ERR_BAD_PARAMETER TDES_SUCCESS TDES_ERR_BAD_PARAMETER End End MS30068V1 DocID14989 Rev 4 25/131
26 DES and Triple-DES algorithms UM TDES_TTT_Encrypt_Init function Function name TDES_TTT_Encrypt_Init (1) Table 13. TDES_TTT_Encrypt_Init int32_t TDES_DDD_Encrypt_Init ( TDESTTTctx_stt * P_pTDESTTTctx, const uint8_t * P_pKey, const uint8_t * P_pIv ) Initialization for TDES Encryption in DDD Mode [in,out] *P_pTDESDDDctx: TDES TTT context [in] *P_pKey: Buffer with the Key [in] *P_pIv: Buffer with the IV (2) TDES_SUCCESS: Operation Successful TDES_ERR_BAD_PARAMETER: At least one parameter is a NULL pointer TDES_ERR_BAD_CONTEXT: Context not initialized with valid values, see note 2 below (This return value is only used with CBC algorithm) 1. TTT is ECB or CBC 2. In ECB: IV is not used, so the value of P_pIv is not checked or used. In CBC: IV size must be already written inside the fields of P_pTDESCBCctx. The IV size must be at least 1 and at most 16 to avoid the TDES_ERR_BAD_CONTEXT return. Note: 1. P_pTDESTTTctx.mFlags must be set prior to calling this function. Default value is E_SK_DEFAULT. See SKflags_et for details. 2. P_pTDESCBCctx.mIvSize must be set with the size of the IV (default CRL_TDES_BLOCK) prior to calling this function. TDESTTTctx_stt data structure Structure type for public key. Table 14. TDESTTTctx_stt data structure Field name uint32_t mcontextid SKflags_et mflags const uint8_t * pmkey const uint8_t * pmiv int32_t mivsize uint32_t amiv[2] uint32_t amexpkey[96] Description Unique ID of this context. Not used in current implementation 32 bit mflags, used to perform keyschedule, see SKflags_et mflags Pointer to original Key buffer Pointer to original Initialization Vector buffer Size of the Initialization Vector in bytes Temporary result/iv Expanded TDES key 26/131 DocID14989 Rev 4
27 DES and Triple-DES algorithms TDES_TTT_Encrypt_Append function Table 15. TDES_TTT_Encrypt_Append Function name TDES_TTT_Encrypt_Append (1) int32_t TDES_TTT_Encrypt_Append( TDESTTTctx_stt * P_pTDESTTTctx, const uint8_t * P_pInputBuffer, int32_t P_inputSize, uint8_t * P_pOutputBuffer, int32_t * P_pOutputSize) TDES Encryption in TTT mode [in] *P_pTDESTTTctx: TDES TTT, already initialized, context [in] *P_pInputBuffer: Input buffer [in] P_inputSize: Size of input data expressed in bytes [out] *P_pOutputBuffer: Output buffer [out] *P_pOutputSize Size: Pointer to integer that will contain the size of written output data, expressed in bytes TDES_SUCCESS: Operation Successful TDES_ERR_BAD_PARAMETER: At least one parameter is a NULL pointer TDES_ERR_BAD_INPUT_SIZE: the P_inputSize is not a multiple of CRL_DES_BLOCK or less than 8 DMA_BAD_ADDRESS: Input/output buffer address not word aligned DMA_ERR_TRANSFER: Error occurred in the DMA transfer TDES_ERR_BAD_OPERATION: Append not allowed 1. TTT is ECB or CBC Note: This function can be called multiple times, provided that P_inputSize is a multiple of TDES_TTT_Encrypt_Finish function Table 16. TDES_TTT_Encrypt_Finish Function name TDES_TTT_Encrypt_Finish (1) int32_t TDES_TTT_Encrypt_Finish ( TDESTTTctx_stt * P_pTDESTTTctx, uint8_t * P_pOutputBuffer, int32_t * P_pOutputSize ) TDES Encryption Finalization of TTT mode [in,out] *P_pTDESTTTctx: TDES TTT, already initialized, context [out] *P_pOutputBuffer: Output buffer [out] *P_pOutputSize: Pointer to integer that will contain the size of written output data, expressed in bytes TDES_SUCCESS: Operation Successful TDES_ERR_BAD_PARAMETER: At least one parameter is NULL pointer 1. TTT is ECB or CBC Note: This function won't write output data, thus it can be skipped.it is kept for API compatibility. DocID14989 Rev 4 27/131
SPC5-CRYP-LIB. SPC5 Software Cryptography Library. Description. Features. SHA-512 Random engine based on DRBG-AES-128
SPC5 Software Cryptography Library Data brief SHA-512 Random engine based on DRBG-AES-128 RSA signature functions with PKCS#1v1.5 ECC (Elliptic Curve Cryptography): Key generation Scalar multiplication
More informationAN3270 Application note
Application note Using the STM8L16x AES hardware accelerator Introduction The purpose of cryptography is to protect sensitive data to avoid it being read by unauthorized persons. There are many algorithms
More informationPulse Secure, LLC. January 9, 2015
Pulse Secure Network Connect Cryptographic Module Version 2.0 Non-Proprietary Security Policy Document Version 1.1 Pulse Secure, LLC. January 9, 2015 2015 by Pulse Secure, LLC. All rights reserved. May
More informationTable of Contents. Bibliografische Informationen http://d-nb.info/996514864. digitalisiert durch
1 Introduction to Cryptography and Data Security 1 1.1 Overview of Cryptology (and This Book) 2 1.2 Symmetric Cryptography 4 1.2.1 Basics 4 1.2.2 Simple Symmetric Encryption: The Substitution Cipher...
More informationAccellion Secure File Transfer Cryptographic Module Security Policy Document Version 1.0. Accellion, Inc.
Accellion Secure File Transfer Cryptographic Module Security Policy Document Version 1.0 Accellion, Inc. December 24, 2009 Copyright Accellion, Inc. 2009. May be reproduced only in its original entirety
More informationAN3365 Application note
Application note Secure socket layer (SSL) for STM32F217xx microcontroller 1 Introduction STM32F217xx microcontrollers feature a complete 10/100 Ethernet MAC, supporting MII and RMII to interface the PHY,
More informationSecure Network Communications FIPS 140 2 Non Proprietary Security Policy
Secure Network Communications FIPS 140 2 Non Proprietary Security Policy 21 June 2010 Table of Contents Introduction Module Specification Ports and Interfaces Approved Algorithms Test Environment Roles
More informationKeyStone Architecture Security Accelerator (SA) User Guide
KeyStone Architecture Security Accelerator (SA) User Guide Literature Number: SPRUGY6B January 2013 Release History www.ti.com Release Date Description/Comments SPRUGY6B January 2013 Added addition engine
More informationFIPS 140-2 Non- Proprietary Security Policy. McAfee SIEM Cryptographic Module, Version 1.0
FIPS 40-2 Non- Proprietary Security Policy McAfee SIEM Cryptographic Module, Version.0 Document Version.4 December 2, 203 Document Version.4 McAfee Page of 6 Prepared For: Prepared By: McAfee, Inc. 282
More informationSecureDoc Disk Encryption Cryptographic Engine
SecureDoc Disk Encryption Cryptographic Engine FIPS 140-2 Non-Proprietary Security Policy Abstract: This document specifies Security Policy enforced by SecureDoc Cryptographic Engine compliant with the
More informationNorthrop Grumman M5 Network Security SCS Linux Kernel Cryptographic Services. FIPS Security Policy Version 2.42. www.northropgrumman.
Northrop Grumman M5 Network Security SCS Linux Kernel Cryptographic Services FIPS Security Policy Version 2.42 www.northropgrumman.com/m5/ SCS Linux Kernel Cryptographic Services Security Policy Version
More informationRSA BSAFE. Crypto-C Micro Edition for MFP SW Platform (psos) Security Policy. Version 3.0.0.1, 3.0.0.2 October 22, 2012
RSA BSAFE Crypto-C Micro Edition for MFP SW Platform (psos) Security Policy Version 3.0.0.1, 3.0.0.2 October 22, 2012 Strong encryption technology for C/C++ developers Contact Information See our Web sites
More informationAN11241. AES encryption and decryption software on LPC microcontrollers. Document information
AES encryption and decryption software on LPC microcontrollers Rev. 1 25 July 2012 Application note Document information Info Content Keywords AES, encryption, decryption, FIPS-197, Cortex-M0, Cortex-M3
More informationSymantec Corporation Symantec Enterprise Vault Cryptographic Module Software Version: 1.0.0.2
Symantec Corporation Symantec Enterprise Vault Cryptographic Module Software Version: 1.0.0.2 FIPS 140 2 Non Proprietary Security Policy FIPS Security Level: 1 Document Version: 1.1 Prepared for: Prepared
More informationNXP & Security Innovation Encryption for ARM MCUs
NXP & Security Innovation Encryption for ARM MCUs Presenters Gene Carter- International Product Manager, NXP Semiconductors Gene is responsible for marketing of the ARM7 and Cortex-M3 microcontrollers.
More informationBootloader with AES Encryption
...the world's most energy friendly microcontrollers Bootloader with AES Encryption AN0060 - Application Note Introduction This application note describes the implementation of a bootloader capable of
More informationWaspmote Encryption Libraries. Programming guide
Waspmote Encryption Libraries Programming guide Index Document version: v4.3-01/2015 Libelium Comunicaciones Distribuidas S.L. INDEX 1. General Concepts... 4 2. Integrity... 7 2.1. Waspmote Libraries...7
More informationAdvanced Encryption Standard (AES) User's Guide
Advanced Encryption Standard (AES) User's Guide Version 1.00 BETA For use with AES versions 1.6 and above Date: 11-Feb-2015 11:23 All rights reserved. This document and the associated software are the
More informationMessage Authentication Codes
2 MAC Message Authentication Codes : and Cryptography Sirindhorn International Institute of Technology Thammasat University Prepared by Steven Gordon on 28 October 2013 css322y13s2l08, Steve/Courses/2013/s2/css322/lectures/mac.tex,
More informationOverview of Cryptographic Tools for Data Security. Murat Kantarcioglu
UT DALLAS Erik Jonsson School of Engineering & Computer Science Overview of Cryptographic Tools for Data Security Murat Kantarcioglu Pag. 1 Purdue University Cryptographic Primitives We will discuss the
More informationSafeguarding Data Using Encryption. Matthew Scholl & Andrew Regenscheid Computer Security Division, ITL, NIST
Safeguarding Data Using Encryption Matthew Scholl & Andrew Regenscheid Computer Security Division, ITL, NIST What is Cryptography? Cryptography: The discipline that embodies principles, means, and methods
More informationAN3307 Application note
Application note Guidelines for obtaining IEC 60335 Class B certification for any STM32 application Introduction The role of safety has become very important for electronics applications. The level of
More informationAn Introduction to Cryptography as Applied to the Smart Grid
An Introduction to Cryptography as Applied to the Smart Grid Jacques Benoit, Cooper Power Systems Western Power Delivery Automation Conference Spokane, Washington March 2011 Agenda > Introduction > Symmetric
More informationAN3307 Application note
Application note Guidelines for obtaining IEC 60335 Class B certification for any STM32 application Introduction The role of safety has become very important for electronics applications. The level of
More informationz/os Cryptographic Services - ICSF Best Practices
z/os Cryptographic Services - ICSF Best Practices Steven R. Hart, CISSP IBM Thursday, August 7, 2014: 8:30 AM-9:30 AM Session Number 15775 Insert Custom Session QR if Desired. Topics Cryptography Basics
More informationAVR1318: Using the XMEGA built-in AES accelerator. 8-bit Microcontrollers. Application Note. Features. 1 Introduction
AVR1318: Using the XMEGA built-in AES accelerator Features Full compliance with AES (FIPS Publication 197, 2002) - Both encryption and decryption procedures 128-bit Key and State memory XOR load option
More informationAN3998 Application note
Application note PDM audio software decoding on STM32 microcontrollers 1 Introduction This application note presents the algorithms and architecture of an optimized software implementation for PDM signal
More informationTransitions: Recommendation for Transitioning the Use of Cryptographic Algorithms and Key Lengths
NIST Special Publication 800-131A Transitions: Recommendation for Transitioning the Use of Cryptographic Algorithms and Key Lengths Elaine Barker and Allen Roginsky Computer Security Division Information
More informationSECUDE AG. FinallySecure Enterprise Cryptographic Module. FIPS 140-2 Security Policy
SECUDE AG FinallySecure Enterprise Cryptographic Module (SW Version: 1.0) FIPS 140-2 Security Policy Document Version 2.4 04/22/2010 Copyright SECUDE AG, 2010. May be reproduced only in its original entirety
More informationNetwork Security. Security Attacks. Normal flow: Interruption: 孫 宏 民 hmsun@cs.nthu.edu.tw Phone: 03-5742968 國 立 清 華 大 學 資 訊 工 程 系 資 訊 安 全 實 驗 室
Network Security 孫 宏 民 hmsun@cs.nthu.edu.tw Phone: 03-5742968 國 立 清 華 大 學 資 訊 工 程 系 資 訊 安 全 實 驗 室 Security Attacks Normal flow: sender receiver Interruption: Information source Information destination
More informationCryptography and Network Security Chapter 15
Cryptography and Network Security Chapter 15 Fourth Edition by William Stallings Lecture slides by Lawrie Brown Chapter 15 Electronic Mail Security Despite the refusal of VADM Poindexter and LtCol North
More informationNetwork Security. Modes of Operation. Steven M. Bellovin February 3, 2009 1
Modes of Operation Steven M. Bellovin February 3, 2009 1 Using Cryptography As we ve already seen, using cryptography properly is not easy Many pitfalls! Errors in use can lead to very easy attacks You
More informationUM1680 User manual. Getting started with STM32F429 Discovery software development tools. Introduction
User manual Getting started with STM32F429 Discovery software development tools Introduction This document describes the software environment and development recommendations required to build an application
More informationVMware, Inc. VMware Java JCE (Java Cryptographic Extension) Module
VMware, Inc. VMware Java JCE (Java Cryptographic Extension) Module Software Version: 1.0 FIPS 140-2 Non-Proprietary Security Policy F I P S S E C U R I T Y L E V E L 1 D O C U M E N T V E R S I O N : 1.0
More informationIT Networks & Security CERT Luncheon Series: Cryptography
IT Networks & Security CERT Luncheon Series: Cryptography Presented by Addam Schroll, IT Security & Privacy Analyst 1 Outline History Terms & Definitions Symmetric and Asymmetric Algorithms Hashing PKI
More informationColdFire Security SEC and Hardware Encryption Acceleration Overview
Freescale Semiconductor Application Note Document Number: AN2788 Rev. 1, 05/2008 ColdFire Security SEC and Hardware Encryption Acceleration Overview by: Melissa Hunter MSG Applications This application
More informationChapter 11 Security+ Guide to Network Security Fundamentals, Third Edition Basic Cryptography
Chapter 11 Security+ Guide to Network Security Fundamentals, Third Edition Basic Cryptography What Is Steganography? Steganography Process of hiding the existence of the data within another file Example:
More informationFIPS 140-2 Documentation: Security Policy 05/06/2015 11:21 AM. Windows CE and Windows Mobile Operating System. Abstract
Windows CE and Windows Mobile Operating System Microsoft Windows CE, Windows Mobile, and Windows Embedded Handheld Enhanced Cryptographic Provider (RSAENH) (5.00.911762, 5.01.01603, 5.04.17228, 5.05.19202,
More informationSymantec Mobility: Suite Server Cryptographic Module
FIPS 140-2 Non-Proprietary Security Policy Symantec Mobility: Suite Server Cryptographic Module Software Version 1.0 Document Version 1.4 February 10, 2016 Prepared For: Prepared By: Symantec Corporation
More informationCommunication Security for Applications
Communication Security for Applications Antonio Carzaniga Faculty of Informatics University of Lugano March 10, 2008 c 2008 Antonio Carzaniga 1 Intro to distributed computing: -server computing Transport-layer
More informationAWS Encryption SDK. Developer Guide
AWS Encryption SDK Developer Guide AWS Encryption SDK: Developer Guide Copyright 2016 Amazon Web Services, Inc. and/or its affiliates. All rights reserved. Amazon's trademarks and trade dress may not be
More informationNIST Cryptographic Algorithm Validation Program (CAVP) Certifications for Freescale Cryptographic Accelerators
Freescale Semiconductor White Paper Document Number: FSLNISTCAVP Rev. 1.7, 03/2015 NIST Cryptographic Algorithm Validation Program (CAVP) Certifications for Freescale Cryptographic Accelerators This document
More informationEDA385 Embedded Systems Design. Advanced Course
EDA385 Embedded Systems Design. Advanced Course Encryption for Embedded Systems Supervised by Flavius Gruian Submitted by Ahmed Mohammed Youssef (aso10ayo) Mohammed Shaaban Ibraheem Ali (aso10mib) Orges
More informationChapter 6 Electronic Mail Security
Cryptography and Network Security Chapter 6 Electronic Mail Security Lectured by Nguyễn Đức Thái Outline Pretty Good Privacy S/MIME 2 Electronic Mail Security In virtually all distributed environments,
More informationPerformance Investigations. Hannes Tschofenig, Manuel Pégourié-Gonnard 25 th March 2015
Performance Investigations Hannes Tschofenig, Manuel Pégourié-Gonnard 25 th March 2015 1 Motivation In we tried to provide guidance for the use of DTLS (TLS) when used in
More informationNetwork Security. Computer Networking Lecture 08. March 19, 2012. HKU SPACE Community College. HKU SPACE CC CN Lecture 08 1/23
Network Security Computer Networking Lecture 08 HKU SPACE Community College March 19, 2012 HKU SPACE CC CN Lecture 08 1/23 Outline Introduction Cryptography Algorithms Secret Key Algorithm Message Digest
More informationModule 1: e- Learning
Module 1: e- Learning SECTION 1: OVERVIEW... 2 PRIMER ON INFORMATION TECHNOLOGY, IS INFRASTRUCTURE AND EMERGING TECHNOLOGIES (12%) E-LEARNING... 2 Objective Objective:... 2 Task Statements... 2 Knowledge
More informationKaseya US Sales, LLC Virtual System Administrator Cryptographic Module Software Version: 1.0
Kaseya US Sales, LLC Virtual System Administrator Cryptographic Module Software Version: 1.0 FIPS 140-2 Non-Proprietary Security Policy FIPS Security Level: 1 Document Version: 1.0 Prepared for: Prepared
More information13135 Lee Jackson Memorial Hwy., Suite 220 Fairfax, VA 22033 United States of America
VMware, Inc. VMware Kernel Cryptographic Module Software Version: 1.0 FIPS 140-2 Non-Proprietary Security Policy FIPS Security Level: 1 Document Version: 1.0 Prepared for: Prepared by: VMware, Inc. 3401
More informationUM1790 User manual. Getting started with STM32L053 discovery kit software development tools. Introduction
User manual Getting started with STM32L053 discovery kit software development tools Introduction This document describes the software environment recommendations required to build an application using
More informationNortel Networks, Inc. VPN Client Software (Software Version: 7_11.101) FIPS 140-2 Non-Proprietary Security Policy
Nortel Networks, Inc. VPN Client Software (Software Version: 7_11.101) FIPS 140-2 Non-Proprietary Security Policy Level 1 Validation Document Version 0.5 Prepared for: Prepared by: Nortel Networks, Inc.
More informationCerticom Security for Government Suppliers developing client-side products to meet the US Government FIPS 140-2 security requirement
certicom application notes Certicom Security for Government Suppliers developing client-side products to meet the US Government FIPS 140-2 security requirement THE PROBLEM How can vendors take advantage
More informationLecture 9: Application of Cryptography
Lecture topics Cryptography basics Using SSL to secure communication links in J2EE programs Programmatic use of cryptography in Java Cryptography basics Encryption Transformation of data into a form that
More informationSTM32 F-2 series High-performance Cortex-M3 MCUs
STM32 F-2 series High-performance Cortex-M3 MCUs STMicroelectronics 32-bit microcontrollers, 120 MHz/150 DMIPS with ART Accelerator TM and advanced peripherals www.st.com/mcu STM32 F-2 series The STM32
More informationAnnouncement. Final exam: Wed, June 9, 9:30-11:18 Scope: materials after RSA (but you need to know RSA) Open books, open notes. Calculators allowed.
Announcement Final exam: Wed, June 9, 9:30-11:18 Scope: materials after RSA (but you need to know RSA) Open books, open notes. Calculators allowed. 1 We have learned Symmetric encryption: DES, 3DES, AES,
More informationGuide to Data Field Encryption
Guide to Data Field Encryption Contents Introduction 2 Common Concepts and Glossary 3 Encryption 3 Data Field Encryption 3 Cryptography 3 Keys and Key Management 5 Secure Cryptographic Device 7 Considerations
More informationUM1969 User manual. Getting started with STM32F746G discovery software development tools. Introduction
UM1969 User manual Getting started with STM32F746G discovery software development tools Introduction This document describes the software environment recommendations, required to build an application using
More informationMicrosoft Windows Server 2008 R2 Cryptographic Primitives Library (bcryptprimitives.dll) Security Policy Document
Microsoft Windows Cryptographic Primitives Library (bcryptprimitives.dll) Security Policy Document Microsoft Windows Server 2008 R2 Cryptographic Primitives Library (bcryptprimitives.dll) Security Policy
More informationDesigning Hash functions. Reviewing... Message Authentication Codes. and message authentication codes. We have seen how to authenticate messages:
Designing Hash functions and message authentication codes Reviewing... We have seen how to authenticate messages: Using symmetric encryption, in an heuristic fashion Using public-key encryption in interactive
More information[SMO-SFO-ICO-PE-046-GU-
Presentation This module contains all the SSL definitions. See also the SSL Security Guidance Introduction The package SSL is a static library which implements an API to use the dynamic SSL library. It
More informationFIPS 140-2 Security Policy
FIPS 140-2 Security Policy BlackBerry Cryptographic Library for Secure Work Space Version 1.0 Document Version 1.2 BlackBerry Security Certifications, Research In Motion 2013 BlackBerry Limited. All rights
More informationSecurity Policy. Trapeze Networks
MP-422F Mobility Point Security Policy Trapeze Networks August 14, 2009 Copyright Trapeze Networks 2007. May be reproduced only in its original entirety [without revision]. TABLE OF CONTENTS 1. MODULE
More informationVASCO Data Security International, Inc. DIGIPASS GO-7. FIPS 140-2 Non-Proprietary Cryptographic Module Security Policy
VASCO Data Security International, Inc. DIGIPASS GO-7 FIPS 140-2 Non-Proprietary Cryptographic Module Security Policy Security Level: 2 Version: 1.7 Date: August 12, 2015 Copyright VASCO Data Security
More informationGetting started with software and firmware environments for the STM32F0DISCOVERY kit
User manual Getting started with software and firmware environments for the STM32F0DISCOVERY kit Introduction This document describes the software, firmware environment and development recommendations
More informationCisco VPN Internal Service Module for Cisco ISR G2
Data Sheet Cisco VPN Internal Service Module for Cisco ISR G2 Compact Versatile High-Performance VPN Module The Cisco VPN Internal Service Module (VPN ISM) is a module for the Cisco Integrated Services
More informationSecure File Transfer Appliance Security Policy Document Version 1.9. Accellion, Inc.
Secure File Transfer Appliance Security Policy Document Version 1.9 Accellion, Inc. November 11, 2010 Copyright Accellion, Inc. 2010. May be reproduced only in its original entirety [without revision].
More informationHP LTO-6 Tape Drive Level 1 Security Policy
HP LTO-6 Tape Drive Level 1 Security Policy Version: 8 Revision Date: 1 October 2013 Hewlett Packard Company Copyright 2013 Hewlett-Packard Company This document may be freely reproduced and distributed
More informationUM1734 User manual. STM32Cube USB device library. Introduction
User manual STM32Cube USB device library Introduction STMCube initiative was originated by STMicroelectronics to ease developers life by reducing development efforts, time and cost. STM32Cube covers STM32
More informationAthena Smartcard Inc. IDProtect Key with LASER PKI FIPS 140-2 Cryptographic Module Security Policy. Document Version: 1.0 Date: April 25, 2012
Athena Smartcard Inc. IDProtect Key with LASER PKI FIPS 140-2 Cryptographic Module Security Policy Document Version: 1.0 Date: April 25, 2012 Athena Smartcard Inc. Public Material may be reproduced only
More informationPackage PKI. July 28, 2015
Version 0.1-3 Package PKI July 28, 2015 Title Public Key Infrastucture for R Based on the X.509 Standard Author Maintainer Depends R (>= 2.9.0),
More informationWindows Server 2003 Enhanced Cryptographic Provider (RSAENH)
Windows Server 2003 Enhanced Cryptographic Provider (RSAENH) (Windows Server 2003 SP2) FIPS 140-2 Documentation: Security Policy July 02, 2008 Abstract This document specifies the non-proprietary security
More informationMOTOROLA MESSAGING SERVER SERVER AND MOTOROLA MYMAIL DESKTOP PLUS MODULE OVERVIEW. Security Policy REV 1.3, 10/2002
Security Policy MOTOROLA MESSAGING SERVER SERVER AND MOTOROLA MYMAIL DESKTOP PLUS ENCRYPTION DLL CRYPTOGRAPHIC MODULE REV 1.3, 10/2002 CONTENTS Module Overview... 1 Scope of Document... 2 Terms and Definitions...
More informationWindows Server 2003 Enhanced Cryptographic Provider (RSAENH)
Windows Server 2003 Enhanced Cryptographic Provider (RSAENH) (Windows Server 2003 SP2) FIPS 140-2 Documentation: Security Policy September 20, 2007 Abstract This document specifies the non-proprietary
More informationNetwork Security Essentials Chapter 7
Network Security Essentials Chapter 7 Fourth Edition by William Stallings Lecture slides by Lawrie Brown Chapter 7 Electronic Mail Security Despite the refusal of VADM Poindexter and LtCol North to appear,
More informationETSI TS 102 176-2 V1.2.1 (2005-07)
TS 102 176-2 V1.2.1 (2005-07) Technical Specification Electronic Signatures and Infrastructures (ESI); Algorithms and Parameters for Secure Electronic Signatures; Part 2: Secure channel protocols and algorithms
More informationXML Encryption Syntax and Processing. Duan,Limiao 07,12,2006
XML Encryption Syntax and Processing Duan,Limiao 07,12,2006 Agenda Introduction Encryption Overview and Examples - An XML Element - XML Element Content (Elements) - XML Element Content (Character Data)
More informationHow To Attack A Block Cipher With A Key Key (Dk) And A Key (K) On A 2Dns) On An Ipa (Ipa) On The Ipa 2Ds (Ipb) On Pcode)
Cryptography and Network Security Chapter 6 Fifth Edition by William Stallings Lecture slides by Lawrie Brown (with edits by RHB) Chapter 6 Block Cipher Operation Many savages at the present day regard
More informationSecurity Policy for Oracle Advanced Security Option Cryptographic Module
Security Policy for Oracle Advanced Security Option Cryptographic Module Version 1.0 September 1999 Prepared by Oracle Corporation A. Scope of Document This document describes the security policy for the
More informationChapter 8. Network Security
Chapter 8 Network Security Cryptography Introduction to Cryptography Substitution Ciphers Transposition Ciphers One-Time Pads Two Fundamental Cryptographic Principles Need for Security Some people who
More informationMOTOROLA ACCOMPLI 009 PERSONAL COMMUNICATOR MODULE OVERVIEW SCOPE OF DOCUMENT. Security Policy REV 1.2, 10/2002
Security Policy MOTOROLA ACCOMPLI 009 PERSONAL COMMUNICATOR ENCRYPTION SERVICES MODULE REV 1.2, 10/2002 CONTENTS Module Overview... 1 Scope of Document... 1 Terms and Definitions... 2 Security Level...
More informationSkyRecon Cryptographic Module (SCM)
SkyRecon Cryptographic Module (SCM) FIPS 140-2 Documentation: Security Policy Abstract This document specifies the security policy for the SkyRecon Cryptographic Module (SCM) as described in FIPS PUB 140-2.
More informationFIPS 140 2 Non Proprietary Security Policy: Kingston Technology DataTraveler DT4000 Series USB Flash Drive
FIPS 140 2 Non Proprietary Security Policy Kingston Technology Company, Inc. DataTraveler DT4000 G2 Series USB Flash Drive Document Version 1.8 December 3, 2014 Document Version 1.8 Kingston Technology
More informationSecurity Policy for FIPS 140 2 Validation
BitLocker Windows OS Loader Security Policy for FIPS 140 2 Validation BitLocker Windows OS Loader (winload) in Microsoft Windows 8.1 Enterprise Windows Server 2012 R2 Windows Storage Server 2012 R2 Surface
More informationGCM-SIV: Full Nonce Misuse-Resistant Authenticated Encryption at Under One Cycle per Byte. Yehuda Lindell Bar-Ilan University
GCM-SIV: Full Nonce Misuse-Resistant Authenticated Encryption at Under One Cycle per Byte Shay Gueron Haifa Univ. and Intel Yehuda Lindell Bar-Ilan University Appeared at ACM CCS 2015 How to Encrypt with
More informationUM1727 User manual. Getting started with STM32 Nucleo board software development tools. Introduction
User manual Getting started with STM32 Nucleo board software development tools Introduction The STM32 Nucleo board (NUCLEO-F030R8, NUCLEO-F072RB, NUCLEO-F103RB, NUCLEO-F302R8, NUCLEO-F401RE, NUCLEO-L152RE)
More informationCRYPTOGRAPHY AND NETWORK SECURITY
CRYPTOGRAPHY AND NETWORK SECURITY PRINCIPLES AND PRACTICE SIXTH EDITION William Stallings International Edition contributions by Mohit P Tahiliani NITK Surathkal PEARSON Boston Columbus Indianapolis New
More informationSecure Sockets Layer (SSL ) / Transport Layer Security (TLS) Network Security Products S31213
Secure Sockets Layer (SSL ) / Transport Layer Security (TLS) Network Security Products S31213 UNCLASSIFIED Example http ://www. greatstuf f. com Wants credit card number ^ Look at lock on browser Use https
More informationFIPS 140-2 Security Policy 3Com Embedded Firewall PCI Cards
FIPS 140-2 Security Policy 3Com Embedded Firewall PCI Cards 3Com Corporation 5403 Betsy Ross Drive Santa Clara, CA 95054 USA February 24, 2006 Revision Version 0.4 Page 1 of 15 1. Introduction The following
More information1720 - Forward Secrecy: How to Secure SSL from Attacks by Government Agencies
1720 - Forward Secrecy: How to Secure SSL from Attacks by Government Agencies Dave Corbett Technical Product Manager Implementing Forward Secrecy 1 Agenda Part 1: Introduction Why is Forward Secrecy important?
More informationNational Security Agency Perspective on Key Management
National Security Agency Perspective on Key Management IEEE Key Management Summit 5 May 2010 Petrina Gillman Information Assurance (IA) Infrastructure Development & Operations Technical Director National
More informationSMPTE Standards Transition Issues for NIST/FIPS Requirements v1.1
SMPTE Standards Transition Issues for NIST/FIPS Requirements v1.1 Contents 2010.8.23 DRM inside, Taehyun Kim ETRI, Kisoon Yoon 1 Introduction NIST (National Institute of Standards and Technology) published
More informationHaswell Cryptographic Performance
White Paper Sean Gulley Vinodh Gopal IA Architects Intel Corporation Haswell Cryptographic Performance July 2013 329282-001 Executive Summary The new Haswell microarchitecture featured in the 4 th generation
More informationARCHIVED PUBLICATION
ARCHIVED PUBLICATION The attached publication, FIPS Publication 46-3 (reaffirmed October 25, 1999), was withdrawn on May 19, 2005 and is provided here only for historical purposes. For related information,
More informationEfficient Framework for Deploying Information in Cloud Virtual Datacenters with Cryptography Algorithms
Efficient Framework for Deploying Information in Cloud Virtual Datacenters with Cryptography Algorithms Radhika G #1, K.V.V. Satyanarayana *2, Tejaswi A #3 1,2,3 Dept of CSE, K L University, Vaddeswaram-522502,
More informationEncryption Libraries
Encryption Libraries Index Document version: v0.1-11/2012 Libelium Comunicaciones Distribuidas S.L. INDEX 1. General Concepts...4 2. Integrity...9 2.1. Waspmote Libraries...9 2.1.1. Waspmote Hash Files...9
More informationMatrixSSL Developer s Guide
MatrixSSL Developer s Guide This document discusses developing with MatrixSSL. It includes instructions on integrating MatrixSSL into an application and a description of the configurable options for modifying
More informationNetwork Security. Chapter 3 Symmetric Cryptography. Symmetric Encryption. Modes of Encryption. Symmetric Block Ciphers - Modes of Encryption ECB (1)
Chair for Network Architectures and Services Department of Informatics TU München Prof. Carle Network Security Chapter 3 Symmetric Cryptography General Description Modes of ion Data ion Standard (DES)
More informationChapter 17. Transport-Level Security
Chapter 17 Transport-Level Security Web Security Considerations The World Wide Web is fundamentally a client/server application running over the Internet and TCP/IP intranets The following characteristics
More informationCryptographic and Security Testing Laboratory. Deputy Laboratory Director, CST Laboratory Manager
Cryptographic and Security Testing Laboratory Deputy Laboratory Director, CST Laboratory Manager About our Cryptographic and Security Testing Laboratory Bringing together a suite of conformance testing
More informationThe Misuse of RC4 in Microsoft Word and Excel
The Misuse of RC4 in Microsoft Word and Excel Hongjun Wu Institute for Infocomm Research, Singapore hongjun@i2r.a-star.edu.sg Abstract. In this report, we point out a serious security flaw in Microsoft
More information