Доброго всем...
Не так давно пришлось написать индивидуальное задание на тему: "Криптография. Схемы разделения секретов.". Поскольку информации по данной тематике в Сети не так много, решил опубликовать свои изыскания в этой области.
Исползование пороговых схем разделения секретов:
//////////////////////////////////////////////////////////////////////////
//
// Type definitions
//
typedef TBigInt TCurrentSecret;
typedef CSecretDivisionScheme< TCurrentSecret > TSecretDivisionScheme;
//------------------------------------------------------------------------
//
// Processing
//
TSecretDivisionScheme localSDS( cscrtAcriveGrade, cscrtComplexGrade );
TSecretDivisionScheme::TShadowMassive localShadowMassive;
localSDS.Execute(
TSecretDivisionScheme::eKarninGreeneHellman,
lSecret,
localShadowMassive );
TCurrentSecret lRestoredSecret;
localSDS.Restore(
TSecretDivisionScheme::eKarninGreeneHellman,
lRestoredSecret,
localShadowMassive );
Т.о. реализуется пороговая схема ( cscrtAcriveGrade, cscrtComplexGrade ).
Тестовый проект
здесь.
Примечание: были реализованы 2 схемы (векторная и KarninGreeneHellman), алгоритм Asmuth-Bloom не закончен в виду остутсвия детального описания...
P.S. буду рад критике...
"В древности люди учились для того, чтобы совершенствовать себя. Нынче учатся для того, чтобы удивить других." (с) Конфуций