В общем вопрос не имеет отношения к asm, просто не знаю, где ещё можно поискать... А собственно надо выбрать достаточно надёжные, но не слишком замысловатые для реализации (для новичка в этой области), алгоритмы. Один для коррекции ошибок - уже после передаче данных через канал с помехами (естесственно, что эти данные должны остаться секретными). Второй - алгоритм хеширования для получения случайных ключей.
Новичкам "в этой области" крайне рекомендуется ознакомиться с теоретическими материалами, изложенными, например, в книге Шнайера "Прикладная криптография". Кодов с коррекцией ошибок придумано уже много, гугл рулит. Алгоритмов хеширования придумано тоже много, все зависит от требований. Какая требуется скорость, какого размера ключ и т.п.
Немножко разные уровни OSI. Какая разница корректору ошибок секретные данные он корректирует или нет? Reed–Solomon error correction
Это к тому, что в процессе коррекции не должна передаваться информация, по которой можно было бы определить, какий именно бит (0 или 1) находится в данной позиции. Коды Рида-Саломона, видимо, не подойдут. Ведь там сообщение кодируется перед передачей, а мне надо корректировать ошибки в уже имеющихся последовательностей битов.
Алгоритмы хеширования не занимаются генерацией случайных ключей ! Алгоритмы для коррекции ошибок не занимаются обеспечением секретности данных. Для этого сушествуют алгоритмы шифрования.
Ок, повторю условие задачи ещё раз. Ключи уже давно сгенерированы и находятся у каждой из сторон канала. Но эти ключи могут содержать ошибки, т.е. ключ Алисы имеет небольшие отличия от ключа Боба. Эти неверные биты нужно найти и удалить. Знаю только, что для этого используют итерационный алгоритм коррекции ошибок, но не знаю какие они бывают вообще. Процесс хеширования должен обеспечить увеличение секретности, на случай, если часть информации о ключе просачилась к злоумышленнику. Ладно, выберу что-нить из Шнайера.
Речь идет о симметричной криптографии. Коды Рида Соломона. Еще раз повторяю : Алгоритмы хеширования не занимаются обеспечением секретности данных.
Неправильная постановка задачи. Если передача ключей происходит по открытым каналам (т.к. может быть прослушанна 3-м лицом) то симметричные алгоритмы неприемлемы ... Выход только один использовать ассиметричную криптографию к примеру RSA.