codecamp

密码学 签名方案简介

简介

这一章,我们将研究签名方案,签名方案也称为数字签名。一个附加在文件上的传统手写签名用来确定需要对该文件负责的某个人。日常生活中需要使用签名,例如写信、从银行通过计算机网络传输。这一一章,我们将研究一些签 名方案,但是首先我们讨论传统签名与数字签名的一一些基本差异。 首先是签署文件的问题。在传统签名模式中,手写签名是所签署文件的物理部分。然而,数字签名没有物理地附加在所签文件上,因此签名算法必须以某种形式将签名“绑”到所签文件上。 第二个是签名验证的问题。-一个传统的签名通过比较其他已认证的签名来验证当前签名的真伪。例如,当某人在使用信用卡购物时签名,售货员需要对销售单上的签名与信用卡背面的签名比较以便验证该人的签名。当然,这不是很安全的方法,因为要伪造-一个 人的签名还是相对容易的。数字签名却能通过一个公开的验证算法对它进行确认。这样,“任何人”都能验证一-个数字签名。安全数字签名方案的使用能阻止伪造签名的可能性。

定义

签名方案的安全性需求

  • 唯密文攻击
  • 已知消息攻击
  • 选择消息攻击
  • 完全破译
  • 选择性伪造
  • 存在性伪造
密码学 ElGamal密码代码实现
密码学 DSA算法
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

第六章 公钥密码学和离散对数

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }