Как в RC6 вводятся текст и ключ?
==================================

 Здравствуйте, у меня есть реализация rc5, на c++(утащил с гита). Взял, чтобы понять, что вообще происходит в этом блочном шифре.  

На гитхабе посмотрел разные реализации и rc5, и rc6. Так и не понимаю, как вообще должен быть введен текст?   

Знаю, что ключ, например, нужно вводить пользователю, а в виде текста? В виде hex'а? Или этот текст нужно будет ещё и переводить в hex в программе?  

Просто в с++ нет надстройки в своих библиотеках, чтобы сразу переводить текст в 16-ый вид. 

 Криптографические алгоритмы работают с бинарными данными.   

  

> как вообще должен быть введен текст

  

Как угодно. В виде строки, hex string, base64 encoded binary string, 32-bit word array и т.д.  

Это все потом преобразовать в бинарный формат. В случае строки, не забыв учесть кодировку, с которой закодирован текст. 

 Схема при которой пользователь вводит НЕЧТО с клавиатуры и это нечто расматривается как ключ шифрования - очень слабая схема и не выдерживает атак. Пользоватль ленив и глуп. И всегда будет стараться вводить пароли и ключи по 1-2 символа. С этим ничего не поделать. Поэтому если автор заинтересован чтобы поле ключей было более сложным - надо использовать во первых SALT в совокупности с паролем. И использовать функцию хеширования наподобие SHA1 чтобы получить более-менее сложый ключ. В некоторых случаях (сеансовые ключи) можно получить энтропию из внешнего мира (часы в микросекундах и текущее положение мышки на экрасне).  

  

Тоесть само наличие в схеме алгоритма RC5 еще не гарантирует что у тебя система надежна. Нужно чтобы ее использование было чистым и лишенным человеческого фактора.