tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

aes_ctr_tests_source.txt (6824B)


      1 #
      2 # From NIST Special Publication 800-38A; 2001 Edition ;
      3 # "Recommendation for Block Cipher Modes of Operation: Methods and Techniques"
      4 # Morris Dworkin
      5 # Appendix F Example Vectors for Modes of Operation of the AES
      6 #
      7 # In this appendix, three examples are provided for each of the modes in this recommendation with
      8 # the AES algorithm [2] as the underlying block cipher: one example is given for each of the
      9 # allowed key sizes (128, 192, and 256 bits). Some intermediate results are presented. For the five
     10 # confidentiality modes, examples are provided for both encryption and decryption. Examples are
     11 # provided for 1-bit, 8-bit, and 128 bit CFB. The plaintext for all but two of these examples is
     12 # equivalent to the following string of hexadecimal characters, formatted into four 128 bit blocks:
     13 #
     14 #     6bc1bee22e409f96e93d7e117393172a 
     15 #     ae2d8a571e03ac9c9eb76fac45af8e51 
     16 #     30c81c46a35ce411e5fbc1191a0a52ef 
     17 #     f69f2445df4f9b17ad2b417be66c3710. 
     18 #
     19 # For the example of 1-bit CFB, the plaintext is the first 16 bits in the above string; for the example
     20 # of 8-bit CFB, the plaintext is the first 18 octets in the above string. All strings are presented in
     21 # hexadecimal notation, except in the example of 1-bit CFB, where the plaintext and ciphertext
     22 # segments are single bits.
     23 #
     24 #
     25 #  F.5 CTR Example Vectors
     26 
     27 Test="F.5.1 CTR-AES128.Encrypt"
     28 Type=Encrypt
     29 Key=2b7e151628aed2a6abf7158809cf4f3c
     30 Init. Counter=f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
     31 Block #1={
     32 Input Block=f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
     33 Output Block=ec8cdf7398607cb0f2d21675ea9ea1e4
     34 Plaintext=6bc1bee22e409f96e93d7e117393172a
     35 Ciphertext=874d6191b620e3261bef6864990db6ce
     36 }
     37 Block #2={
     38 Input Block=f0f1f2f3f4f5f6f7f8f9fafbfcfdff00
     39 Output Block=362b7c3c6773516318a077d7fc5073ae
     40 Plaintext=ae2d8a571e03ac9c9eb76fac45af8e51
     41 Ciphertext=9806f66b7970fdff8617187bb9fffdff
     42 }
     43 Block #3={
     44 Input Block=f0f1f2f3f4f5f6f7f8f9fafbfcfdff01
     45 Output Block=6a2cc3787889374fbeb4c81b17ba6c44
     46 Plaintext=30c81c46a35ce411e5fbc1191a0a52ef
     47 Ciphertext=5ae4df3edbd5d35e5b4f09020db03eab
     48 }
     49 Block #4={
     50 Input Block=f0f1f2f3f4f5f6f7f8f9fafbfcfdff02
     51 Output Block=e89c399ff0f198c6d40a31db156cabfe
     52 Plaintext=f69f2445df4f9b17ad2b417be66c3710
     53 Ciphertext=1e031dda2fbe03d1792170a0f3009cee
     54 }
     55 
     56 Test="F.5.2 CTR-AES128.Decrypt"
     57 Type=Decrypt
     58 Key=2b7e151628aed2a6abf7158809cf4f3c
     59 Init. Counter=f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
     60 Block #1={
     61 Input Block=f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
     62 Output Block=ec8cdf7398607cb0f2d21675ea9ea1e4
     63 Ciphertext=874d6191b620e3261bef6864990db6ce
     64 Plaintext=6bc1bee22e409f96e93d7e117393172a
     65 Block #2={
     66 Input Block=f0f1f2f3f4f5f6f7f8f9fafbfcfdff00
     67 Output Block=362b7c3c6773516318a077d7fc5073ae
     68 Ciphertext=9806f66b7970fdff8617187bb9fffdff
     69 Plaintext=ae2d8a571e03ac9c9eb76fac45af8e51
     70 }
     71 Block #3={
     72 Input Block=f0f1f2f3f4f5f6f7f8f9fafbfcfdff01
     73 Output Block=6a2cc3787889374fbeb4c81b17ba6c44
     74 Ciphertext=5ae4df3edbd5d35e5b4f09020db03eab
     75 Plaintext=30c81c46a35ce411e5fbc1191a0a52ef
     76 }
     77 Block #4={
     78 Input Block=f0f1f2f3f4f5f6f7f8f9fafbfcfdff02
     79 Output Block=e89c399ff0f198c6d40a31db156cabfe
     80 Ciphertext=1e031dda2fbe03d1792170a0f3009cee
     81 Plaintext=f69f2445df4f9b17ad2b417be66c3710
     82 }
     83 
     84 Test="F.5.3 CTR-AES192.Encrypt"
     85 Type=Encrypt
     86 Key=8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b
     87 Init. Counter=f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff 
     88 Block #1={
     89 Input Block=f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff 
     90 Output Block=717d2dc639128334a6167a488ded7921 
     91 Plaintext=6bc1bee22e409f96e93d7e117393172a 
     92 Ciphertext=1abc932417521ca24f2b0459fe7e6e0b
     93 }
     94 Block #2={
     95 Input Block=f0f1f2f3f4f5f6f7f8f9fafbfcfdff00 
     96 Output Block=a72eb3bb14a556734b7bad6ab16100c5 
     97 Plaintext=ae2d8a571e03ac9c9eb76fac45af8e51 
     98 Ciphertext=090339ec0aa6faefd5ccc2c6f4ce8e94
     99 }
    100 Block #3={
    101 Input Block=f0f1f2f3f4f5f6f7f8f9fafbfcfdff01 
    102 Output Block=2efeae2d72b722613446dc7f4c2af918 
    103 Plaintext=30c81c46a35ce411e5fbc1191a0a52ef 
    104 Ciphertext=1e36b26bd1ebc670d1bd1d665620abf7
    105 }
    106 Block #4={
    107 Input Block=f0f1f2f3f4f5f6f7f8f9fafbfcfdff02 
    108 Output Block=b9e783b30dd7924ff7bc9b97beaa8740 
    109 Plaintext=f69f2445df4f9b17ad2b417be66c3710 
    110 Ciphertext=4f78a7f6d29809585a97daec58c6b050
    111 }
    112 
    113 Test="F.5.4 CTR-AES192.Decrypt"
    114 Type="Decrypt"
    115 Key=8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b
    116 Init. Counter=f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff 
    117 Block #1={
    118 Input Block=f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff 
    119 Output Block=717d2dc639128334a6167a488ded7921 
    120 Ciphertext=1abc932417521ca24f2b0459fe7e6e0b
    121 Plaintext=6bc1bee22e409f96e93d7e117393172a
    122 } 
    123 Block #2={
    124 Input Block=f0f1f2f3f4f5f6f7f8f9fafbfcfdff00 
    125 Output Block=a72eb3bb14a556734b7bad6ab16100c5 
    126 Ciphertext=090339ec0aa6faefd5ccc2c6f4ce8e94
    127 Plaintext=ae2d8a571e03ac9c9eb76fac45af8e51
    128 } 
    129 Block #3 
    130 Input Block=f0f1f2f3f4f5f6f7f8f9fafbfcfdff01 
    131 Output Block=2efeae2d72b722613446dc7f4c2af918 
    132 Ciphertext=1e36b26bd1ebc670d1bd1d665620abf7
    133 Plaintext=30c81c46a35ce411e5fbc1191a0a52ef
    134 }
    135 Block #4 
    136 Input Block=f0f1f2f3f4f5f6f7f8f9fafbfcfdff02 
    137 Output Block=b9e783b30dd7924ff7bc9b97beaa8740 
    138 Ciphertext=4f78a7f6d29809585a97daec58c6b050
    139 Plaintext=f69f2445df4f9b17ad2b417be66c3710 
    140 }
    141 
    142 Test="F.5.5 CTR-AES256.Encrypt"
    143 Type=Encrypt
    144 Key=603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4
    145 Init. Counter=f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
    146 Block #1={
    147 Input Block=f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
    148 Output Block=0bdf7df1591716335e9a8b15c860c502
    149 Plaintext=6bc1bee22e409f96e93d7e117393172a
    150 Ciphertext=601ec313775789a5b7a7f504bbf3d228
    151 }
    152 Block #2={
    153 Input Block=f0f1f2f3f4f5f6f7f8f9fafbfcfdff00
    154 Output Block=5a6e699d536119065433863c8f657b94
    155 Plaintext=ae2d8a571e03ac9c9eb76fac45af8e51
    156 Ciphertext=f443e3ca4d62b59aca84e990cacaf5c5
    157 }
    158 Block #3={
    159 Input Block=f0f1f2f3f4f5f6f7f8f9fafbfcfdff01
    160 Output Block=1bc12c9c01610d5d0d8bd6a3378eca62
    161 Plaintext=30c81c46a35ce411e5fbc1191a0a52ef
    162 Ciphertext=2b0930daa23de94ce87017ba2d84988d
    163 }
    164 Block #4={
    165 Input Block=f0f1f2f3f4f5f6f7f8f9fafbfcfdff02
    166 Output Block=2956e1c8693536b1bee99c73a31576b6
    167 Plaintext=f69f2445df4f9b17ad2b417be66c3710
    168 Ciphertext=dfc9c58db67aada613c2dd08457941a6
    169 }
    170 
    171 Test="F.5.6 CTR-AES256.Decrypt"
    172 Type=Decrypt
    173 Key=603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4
    174 Init. Counter=f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff 
    175 Block #1={
    176 Input Block=f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff 
    177 OutputBlock=0bdf7df1591716335e9a8b15c860c502 
    178 Ciphertext=601ec313775789a5b7a7f504bbf3d228
    179 Plaintext=6bc1bee22e409f96e93d7e117393172a 
    180 }
    181 Block #2={
    182 Input Block=f0f1f2f3f4f5f6f7f8f9fafbfcfdff00 
    183 OutputBlock=5a6e699d536119065433863c8f657b94 
    184 Ciphertext=f443e3ca4d62b59aca84e990cacaf5c5 
    185 Plaintext=ae2d8a571e03ac9c9eb76fac45af8e51 
    186 }
    187 Block #3={
    188 Input Block=f0f1f2f3f4f5f6f7f8f9fafbfcfdff01 
    189 OutputBlock=1bc12c9c01610d5d0d8bd6a3378eca62 
    190 Ciphertext=2b0930daa23de94ce87017ba2d84988d 
    191 Plaintext=30c81c46a35ce411e5fbc1191a0a52ef 
    192 }
    193 Block #4={
    194 Input Block=f0f1f2f3f4f5f6f7f8f9fafbfcfdff02 
    195 OutputBlock=2956e1c8693536b1bee99c73a31576b6 
    196 Ciphertext=dfc9c58db67aada613c2dd08457941a6 
    197 Plaintext=f69f2445df4f9b17ad2b417be66c3710
    198 }