Здесь многое будет зависеть от того, насколько серьезно вы имеете в виду тег «шифрование с открытым ключом».Вы действительно хотите шифрование с открытым ключом или просто учитываете эту возможность?
Если вы хотите использовать симметричное шифрование, получить 8 байтов вывода из 8 байтов ввода довольно просто: просто запустите3DES в режиме ECB (электронная кодовая книга), и это то, что вы получите.Основным недостатком ECB является то, что данный ввод всегда будет приводить к одному и тому же результату, поэтому, если ваши входы могут повторяться, злоумышленник сможет увидеть это повторение и заметить шаблон «зашифрованное значение X приводит к действию Y", даже если они не могут / не нарушают само шифрование вообще.Если вы можете жить с этим, 3DES / ECB, вероятно, ваш ответ.
Если вы не можете жить с этим, 3DES в режиме CFB, вероятно, следующий лучший.Это даст 16 байтов вывода из 8 байтов ввода (обратите внимание, что обычно он не удваивает размер ввода, а добавляет 8 байтов к размеру ввода).
3DES вряд ли кто-нибудь назвал бы передовым алгоритмом, но я бы сказал, что это все еще квалифицируется как «довольно надежное шифрование».Часть его слабости как алгоритма связана с его относительно небольшим размером блока, но это также сводит к минимуму расширение вывода.
Редактировать: Извините, я забыл о возможности открытого ключа.В большинстве криптографий с открытым ключом наименьший результат примерно равен размеру ключа.С шифрованием RSA это обычно будет означать минимум около 1024 бит (и часто значительно больше).Чтобы уменьшить результат, я бы, вероятно, использовал криптографию с эллиптической кривой, для которой ключ длиной ~ 200 бит достаточно защищен от известных атак.Это все равно будет больше, чем 3DES / CFB, но не так уж и сильно.