在整数中,离散对数(英语:discretelogarithm)是一种基于同余运算和原根的一种对数运算。
普遍大家都认为公钥密码体制是迪菲(w.diffie)和赫尔曼(e.hellman)发明的,可鲜为人知的是,默克勒(r.c.merkle)甚至在他俩之前的1975年就提出了类似的思想,尽管其文章是于1978年发表的,但投稿比较早。因此,公钥密码体制的创始人应该是他们三人。当然,他们三人只是提出了一种关于公钥密码体制与数字签名的思想,而没有真正实现。不过,他们确实是实现了一种体现公钥密码体制思想、基于离散对数问题的、在不安全的通道上进行密钥形成与交换的新技术。
迪菲(w.diffie)和赫尔曼(e.hellman)先约定公共的q=2739·(7149-1)/6+1和g=7。
迪菲选随机数a,并计算7a(modq),且将其送给赫尔曼(注:a不能向外泄漏);
赫尔曼将收到
7a=127402180119973946824269244334322849749382042586931621654557735290322914679095998681860978813046&595166455458144280588076766033781。
赫尔曼选随机数b,并计算7b(modq),且将其送给迪菲(注:b不能向外泄漏);
迪菲将收到
7b=180162285287453124447828348367998950159670&466953466973130251&2173405995377205847595817691062538069210165184866236213793&4026803049。
此时迪菲和赫尔曼都能计算出密钥7ab(modq),但别人不太容易算出,因为别人不知道a和b。有兴趣的读者不妨将此作为一个练习,试着计算出7ab(modq)的值。