шифрование массива симметричным ключом

скажем, у меня есть массив символов, который я хочу зашифровать с помощью симметричного ключа. Я попытался провести некоторое исследование и обнаружил, что могу использовать функцию rc4_encrypt для шифрования и дешифрования (я нашел эту функцию на странице руководства crypto(3). Я пытаюсь сделать что-то вроде этого:

char* myData = malloc(sizeof(char)*256);
//some code that fill the contain of the array
//encrypt myData
printf("encrypted array: %s", myData);
//decrypt myData
printf("decrypted array: %s", myData);

однако я не знаю, как использовать эту функцию rc4_encrypt для шифрования и расшифровки массива. Должен ли я что-то включать? Может кто-нибудь помочь мне? Спасибо


person eldwin h    schedule 16.08.2013    source источник
comment
... чью библиотеку RC4 вы используете? (чтобы мы могли посмотреть документацию).   -  person Jacob Pollack    schedule 16.08.2013
comment
Наверняка в документации по функции rc4_encrypt объясняется, как ее использовать.   -  person Barmar    schedule 16.08.2013
comment
@jacobpollack Я нашел эту функцию здесь linux.die.net/man/3/crypto   -  person eldwin h    schedule 16.08.2013
comment
@eldwinh, нашел кое-что, что может быть полезно. Увидеть ниже.   -  person Jacob Pollack    schedule 16.08.2013
comment
Использование RC4 сопряжено с опасностью. Для новых проектов на C я бы рекомендовал вместо этого AES в openssl. Прежде чем приступить к разработке, постарайтесь понять такие вещи, как режимы блоков и режимы заполнения.   -  person Maarten Bodewes    schedule 16.08.2013
comment
@owlstead, ну это школьное задание. Я пытаюсь провести некоторое исследование, но это единственная функция, которую я нашел. Можете ли вы указать документацию вашей рекомендации? вы имеете в виду что-то вроде этого?wiki.openssl.org/index.php/   -  person eldwin h    schedule 16.08.2013
comment
В качестве теста попробуйте зашифровать с помощью AES в режиме CBC и дополнении PKCS#7 с помощью openssl. В Интернете должно быть много примеров для этого, вот очень простой. Не забывайте читать страницы руководства. Заполнение PKCS(7) включено по умолчанию для этих функций более высокого уровня.   -  person Maarten Bodewes    schedule 16.08.2013


Ответы (1)


Должен ли я что-то включать?

В 99% случаев ответ на этот вопрос — да. В этом конкретном случае это не исключение - да, вы делаете.

Может кто-нибудь помочь мне?

Я могу подтолкнуть вас в правильном направлении. В результате быстрого поиска в Google я нашел это. Это пример реализации RC4 с использованием собственной реализации шифра. Я не уверен, под какой лицензией он выпущен, поэтому будьте осторожны при его использовании, однако в нем есть все необходимое для изучения и реализации собственных функций шифрования RC4 на C.

person Jacob Pollack    schedule 16.08.2013
comment
так вы говорите, что я должен реализовать свою собственную функцию шифрования? Я думаю, что в библиотеке linux или c есть встроенная функция шифрования des или aes или rc4. - person eldwin h; 16.08.2013