Ашық кілтті криптожүйенің барлық айқындамасы бірбағыттағы функцияны қолдануда негізделген (one way functions). Бірақта бұл функция класын нақты математикалық көзқарас жақтан анықтама беру қиын болып табылады. Бірбағытты функцияны келесі әдістермен анықтауға болады.
X және Y – еркін көптік. Функция f(X) -> Y, бірбағытты болып табылады, егерде барлық х-ке, Х кіруші, f(x) функциясын шешу өте оңай, және сол уақыттағы y-тің көпшілігі, Y-ке кіруші, x санының кез-келген мәнің қабылдайды, X-ке кіруші, онда f(x) = y өте қиын болып келеді
Диффи-Хеллмана кілтінің таралу жүйесінің әдісі. Криптографиялық жүйелерде әрбір қолданушы қосағы хабарламаны шифрлеу және кері шифрлеу үшін жасырын кілтті қолдану. Осындай тектес жүйелердің ең алғашқысы Диффи-Хеллмана жүйесі болып табылады. Ол 1976 жылы өнделген, ол дискреттік тапсырмалар логарифімінде құрылған.
Қадам бойынша кілттерді алмастыру процедурасын қарастырайық.
1. Алғашқыда Алекс және Юстас N және G мәндері жайлы келісімге келеді (ережеге сай осы мән барлық жүйе қолданушыларына үлгілі болып келеді.)
2. Содан кейін Алекс үлкен X бүтін санын таңдап және XX =G^X MOD N есептейді. Сәйкесінше Юстас Y санын таңдайды, ол YY = G^Y MOD N есептейді.
Осыдан кейін Алекс және Юстас XX және YY мәліметтерімен алмасады.(Бұл канал бойынша берілетін барлық мәліметтер қакүнем-Мюллермен алынуы мүмкін) X және Y сандарын Алекс және Юстас құпияда сақтайды
Осы К саны хабарламаларды шифрлеуге арналған кілт болып табылады.
Ашық кілтті жүйелердің қалай қолданылатынын қарастырайық.
Пайдаланушы Алексте екі алгоритм бар: Е шифрлеу үшін және D хабарламаларды кері шифрлеу үшін. Бұл жағдайда Е алгоритмі көпшілікке қол жетерлік етіп жасалынады, мысалы, кілттер каталогын қолдану арқылы, ал D алгоритмін Алекс жасырын сақтайды. Егер Юстас немесе Мюллер қарияның өзі Алекске хабарлама жібергісі келсе, ол кілттер каталогында Е алгоритмін іздейді және оны жіберілетін ақпаратты шифрлеу үшін қолданады. Ал хабарламаны және оны жіберілетін ақпаратты шифрлеу үшін қолданады. Ал хабарламаны тек Алекс қана кері шифрлей алады, себебі D алгоритмі тек онда ғана бар.
Шамасы, E және D мына шартты қанағаттандыруы керек: D(E(M)) = M, кез келген M хабарламасы үшін.
Қайтадан, дәстүрлі криптожүйелер үшін сияқты E және D нәтижелі алгоритмдерді алу қажет. Бұл жадайда E алгоритмі өз бойында қара жүрісті функцияны білдіруі керек, яғни E алгоритмін білу D алгоритмін жүзеге асыру үшін жеткілікті болмауы керек.
Ашық кілтті жүйелер егер тек қара жүрісті бір бағыттағы функция таңдалса ғана жүзеге асырылуы мүмкін. Бұл жағдайда бір бағытталғандықтың дәлелдері жоқ екенін әрқашан есте сақтаған жөн. Өз кезегінде бірбағытталған функцияға кандидаттар таңдағанда мұқият тестілеудің нәтижелерімен қуаттанған белгілі сақтықты сақтаған жөн.