Размер шифра в открытом SSL в Linux C - PullRequest
0 голосов
/ 09 января 2020

Я очень новичок в OpenSSL EVP_ * Интерфейсы на Linux. И, к сожалению, разработчики OpenSSL не имеют очень хорошей документации.

Я использую интерфейс EVP_ * на Linux C для шифрования и дешифрования с помощью aes_cbc_256.

В этом Размер ключа составляет 256 бит, IV - 128 бит, а размер блока - 16B / 128 бит.

Ожидание означает, что размер зашифрованного текста равен размеру обычного текста, если данные находятся в Блок выровнен. Но вместо этого следует следующая формулировка -> output_size = input_size + (block_size - (input_size% block_size))

Это следующие результаты теста, которые я получил, где случаи 2 и 3 - это те, которые я не понял как :

Случай 2 : output_size = 48, который я получаю, но я не понимаю, если данные выровнены, почему в одном и том же отступе?

Случай 3 : output_size = 32, но я получаю 64


CASE 1 (PT не выровнять по размеру блока):

aakash@aakash-VirtualBox: / unit_test $ ./test

открытый текст: 31

0000 - аа аа аа аа аа аа аа аа -аа аа аа аа аа аа аа ааа ................

0010 - аа аа аа аа аа аа аа аа аа аа аа аа аа аа аа аа аа. .............

ключ: 32

0000 - 01 23 45 67 89 01 23 45-67 89 01 23 45 67 89 01. # Например. . # Например .. # Например ..

0010 - 01 23 45 67 89 01 23 45-67 89 01 23 45 67 89 01. # Например: # Например .. # Например ..

IV: 16

0000 - 01 23 45 67 89 01 23 45-67 89 01 23 45 67 89 01. # Например .. # Например .. # Например ..

Длина теста шифра: 32

0000 - 54 e c e9 2 c 80 a7 9f 79-6f 10 a5 d0 a7 1d ea 5a T .., ... yo ...... Z

0010 - f8 0a 3f b2 2 c c5 a4 16-b0 48 5b d c 5 c 62 91 50 ..?., .... H [. \ BP

Расшифровано текст:

0000 - аа аа аа аа аа аа аа аа-аа аа аа аа аа аа аа аа ................

0010 - аа аа аа аа аа аа аа-а-а-а-а-а-а-а-а-а-а ............…

открытый текст: 63

0000 - аа аа аа аа аа аа аа-а-а-а-а-а-а-а-а-а-а-а-а ................

0010 - аа аа аа аа аа аа аа аа аа-аа аа аа аа аа аа аа аа ................

0020 - аа аа аа аа аа аа аа аа-аа аа аа аа аа аа аа аа аа ... .............

0030 - аа аа аа аа аа аа аа-а-а-а-а-а-а-а-а-а-а-а-я ............…

ключ: 32

0000 - 01 23 45 67 89 01 23 45-67 89 01 23 45 67 89 01. # Например: # Например .. # Например ..

0010 - 01 23 45 67 89 01 23 45-67 89 01 23 45 67 89 01. # Напр. # Напр. # Напр.

iv: 16

0000 - 01 23 45 67 89 01 23 45 -67 89 01 23 45 67 89 01. # Например .. # Например .. # Например ..

Длина теста шифра: 64

0000 - 54 e c e9 2 c 80 a7 9f 79-6f 10 a5 d0 a7 1d ea 5a T .., ... yo ...... Z

0010 - 78 9d b0 6b 88 дБ 0d 5 c -6e 56 df 63 32 18 f2 f0 x..k ... \ nV.c2 ...

0020 - 83 18 ff 1d ae 1a 23 96-7 c 82 93 2e 99 a2 a4 30. ..... #. | ...... 0

0030 - 21 cb db 35 fd cd 7e d8-a3 d3 67 47 ee 0f 86 80! .. 5 .. ~ ... gG ....

Расшифрованный текст:

0000 - аа аа аа аа аа аа аа-аа-а-а-а-а-а-а-а-а-а-я .......... ......

0010 - аа аа аа аа аа аа аа-а-а-а-а-а-а-а-а-а-а-я ................

0020 - аа аа аа аа аа аа аа-а-а-а-а-а-а-а-а-а-а-а ................

0030 - аа аа аа аа aa aa aa aa-aa aa aa aa aa aa ............…


CASE 2 (PT соответствует размеру блока):

aakash@aakash-VirtualBox: ~ / unit_test $ ./tes t

открытый текст: 32

0000 - аа аа аа аа аа аа аа-аа аа аа аа аа аа аа аа ............... .

0010 - аа аа аа аа аа аа аа аа-аа аа аа аа аа аа аа ................

ключ: 32

0000 - 01 23 45 67 89 01 23 45-67 89 01 23 45 67 89 01. # Например .. # Например .. # Например ..

0010 - 01 23 45 67 89 01 23 45-67 89 01 23 45 67 89 01. # Например .. # Например .. # Например ..

iv: 16

0000 - 01 23 45 67 89 01 23 45-67 89 01 23 45 67 89 01. # Например .. # Например .. # Например ..

Длина теста шифра: 48

0000 - 54 e c e9 2 c 80 a7 9f 79-6f 10 a5 d0 a7 1d ea 5a T .., ... йо ...... Z

0010 - 78 9d b0 6b 88 дБ 0d 5 c -6e 56 df 63 32 18 f2 f0 x..k ... \ nV.c2 ...

0020 - fe b2 cf 26 e7 55 94 52-d1 7d 76 62 b6 e9 3a 31 ... &. UR} vb ..: 1

Расшифрованный текст:

0000 - aa aa аа аа аа аа аа-а-а-а-а-а-а-а-а-а-а-а-а ................

0010 - аа аа аа аа аа аа аа аа-аа аа аа аа аа аа аа ................

открытый текст: 64

0000 - аа аа аа аа аа аа аа аа аа аа аа аа аа аа аа аа аа ................

0010 - аа аа аа аа аа аа аа аа-аа аа аа аа аа аа аа аа аа ... .............

0020 - аа аа аа аа аа аа аа-а-а-а-а-а-а-а-а-а-а ... ....

0030 - а-а-а-а-а-а-а-а-а-а-а-а-а-а-а-а-я (я) ................

ключ: 32

0000 - 01 23 45 67 89 01 23 45-67 89 01 23 45 67 89 01. # Например .. # Например .. # Например ..

0010 - 01 23 45 67 89 01 23 45-67 89 01 23 45 67 89 01. # Напр. # Напр. # Напр.

iv: 16

0000 - 01 23 45 67 89 01 23 45-67 89 01 23 45 67 89 01 . # Например .. # Например .. # Например ..

Длина теста шифра: 80

0000 - 54 e c e9 2 c 80 a7 9f 79-6f 10 a5 d0 a7 1d ea 5a T .., ... yo ...... Z

0010 - 78 9d b0 6b 88 дБ 0d 5 c -6e 56 df 63 32 18 f2 f0 x. .k ... \ nV.c2 ...

0020 - 83 18 ff 1d ae 1a 23 96-7 c 82 93 2e 99 a2 a4 30 ...... #. |. ..... 0

0030 - 48 d1 0d 82 c7 57 cd 70-е изд 5f eb 99 59 0f 01 f9 H .... Wp _ .. Y ...

0040 - 2 c f c 2 c 1b a0 df 30 6a-30 49 48 7a 68 cc 37 24,., ... 0j0IHzh.7 $

Расшифрованный текст:

0000 - аа аа аа аа аа аа аа-а-а-а-а-а-а-а-а-а-а-а ................

0010 - аа аа аа аа аа аа аа-а-а-а-а-а-а-а-а-а-а-а-а ................

0020 - аа аа аа аа аа аа аа аа аа-аа аа аа аа аа аа аа ................

0030 - аа аа аа аа аа аа аа аа аа аа аа аа аа аа аа аа аа ........ ........


Случай 3 (PT соответствует размеру блока):

открытый текст: 16

0000 - aa aa aa aa aa aa aa-aa aa aa aa aa aa aa ................

ключ: 32

0000 - 01 23 45 67 89 01 23 45-67 89 01 23 45 67 89 01. # Напр. # Напр. # Напр.

0010 - 01 23 45 67 89 01 23 45-67 89 01 23 45 67 89 01. # Например .. # Например .. # Например ..

iv: 16

0000 - 01 23 45 67 89 01 23 45-67 89 01 23 45 67 89 01. # Например .. # Например .. # Пример ..

Длина теста шифра: 64

0000 - 54 e c e9 2 c 80 a7 9f 79-6f 10 a5 d0 a7 1d ea 5a T .., ... йо ...... Z

0010 - f8 4 c a8 0f fd fb db 79-62 8 c a7 f4 69 d9 47 4d .L ..... yb ... i.GM

0020 - 25 25 86 a3 05 4 c 5f 4d-d5 f8 6d dd 67 54 96 61 %% ... L_M..m.gT.a

0030 - f4 08 a4 78 42 c4 76 98-06 f6 ee 09 d9 07 12 10 ... xB.v .........

Расшифрованный текст:

0000 - аа аа аа аа аа аа аа аа-аа аа аа аа аа аа аа аа ................

0010 - 01 23 45 67 89 01 23 45-67 89 01 23 45 67 89 01. # Напр. # Напр. # Напр.

0020 - 01 23 45 67 89 01 23 45-67 89 01 23 45 67 89 01 . # Например .. # Например .. # Например ..

Кроме того, как отключить заполнение в интерфейсах EVP_ *? Эта функция мало помогает: EVP_CIPHER_CTX_set_padding (ctx, 0);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...