这个工作看起来很简单,它仅仅用到非常基本的知识,但是这项工作的意义很大,二十多年来一直广泛的被使用,虽然它的安全性最近也受到了考验,很多情形已经不安全。
1979年Shamir提出秘密共享算法,就是门限方案,他把秘密D分成n个秘密碎片D_1,…,D_n,其中知道任意k个碎片都可以很容易的恢复D,用熵(度量不确定性)函数H来表示,值为零,即任意知道k个碎片时D的不确定性为零,也就是说D被完全确定。
任意知道少于k个秘密碎片,就如同一个秘密碎片不知道时是一样的,也就是说秘密D是完全不确定的,这就是秘密共享方案,或者叫门限方案。
Shamir给出了这个方案用有限域上线性方程组来实现的一种方法。
1982年也是一个重要的概念,是Goldwasser、Micali提出了概率加密算法,每一位安全性都得到了证明,同时又证明基于二次剩余假设,所以安全性还等价于大整数分解;二次剩余假设是:
已知A和N,由X^2=A(modN)求出所有的X,即求模N的所有平方根问题,是一个很难的问题。
基于这样的假设,可以做出一系列的密码方案,他们的概率加密方案在下面。
就是除了选择两个大素数p,q,计算N=pq以外,还选择一个s,选择这个s使得s对N的Jacobi符号是1,但s是modN的二次非剩余。
于是s,N是Goldwasser-Micali概率加密系统的公开密钥,p,q是系统的秘密密钥。
明文是二进制形式,设为m=m_1…m_n,每个m_i=0或1,则密文为E_1…E_n,这里E_i等于B_i的平方modN,如果m_i是0的话;如果m_i是1的话,就等于s乘以B_i的平方modN,这里B_i是任选的n个随机数。
从密文产生的过程中可以看出,解密是很简单的,只需要计算E_i是modN的二次剩余还是二次非剩余。
这个密码系统也有一个致命的弱点,就是密文扩展太大。
为了实现这种方案,就需要对它进行研究,比如说递归实现等等。
我们这里仅仅提出概念。
1982年Shamir利用LLL—算法攻破了Merkle-Hellman一次背包密码算法,后来一般的低密度一次背包密码都可攻破,即凡是密度小于0.645的一次背包都可以攻破,这是背包密码后来很少有人再去做的原因。
但近年来还是有人继续研究背包密码。
1986年Goldwasser,Micali等提出了零知识证明协议,并基于二次剩余假设提出了一个具体的零知识证明协议,零知识证明协议包含证明者P和验证者V两方,假设P得到了一个定理,刚才我已经在前面解释过,P宣布了比如说他有大整数的有效分解方法,他要让验证者V相信他确实有大整数的有效分解方法,但P又不想泄漏有关分解方法的任何信息给验证者V,验证的方法如下:
V随便选择一个大整数,比如说N等于pq,是两个4k+3型的大素数的乘积(这个选择可以是任何用户的RSA公钥中的大整数N),为了能够证明P具有分解N的能力,V首先选择X计算它模N的四次方,余数叫做Y,即计算Y满足Y=X^4(modN)。
V将Y交给P,并要求P计算出X模N的平方,就是算出Y模N的平方根。
已经证明算出Y模N的平方根,而且还要从所有平方根中选出唯一的模N的二次剩余的那个,是等价于大整数N的分解的。
所以只要P具有分解N的能力,就必然能有效的算出Y模N的平方根。
验证者这个过程是可以多次重复的。
因为如果就一次的话,可能P的机遇很好,有可能碰出,但经过这样多次的实验,P的运气好的概率是很小的,几乎就是零。
在这个过程中,P没有告诉V他的大整数具体分解的方法,也没有告诉V大整数被分解的结果。
这里列出了以后新的发展和新的概念,比如说1990年门限密码学提出,另外1990年又提出差分攻击,1993年提出了线性攻击,这两种攻击都是针对对称密码算法;1993年美国政府宣布了托管加密标准,这个标准在1994年2月份政府采用,这个标准在国际上引起了很多的争议,比如说两个用户之间通信他们是合法的通信,你如果也去监听的话,你怀疑他做了非法交易去监听,就侵犯了人家的隐私权,在美国非常讲究人权的国家,他这样做引起了很多的议论和争议。
1996年有一个新的概念提出,就是代理签名,一个公司的总经理,他因为有事出差,不能完成公司的签名,或者是公司很忙,不能出差去外地完成某个签名,这些情况下他都要找一个人做他的代理,这个代理人来帮他完成他的签字。
传统来说把他的印章带去就可以,但是在网上完成这个过程就需要提出具体的代理签名方案。
在2000年10月份,美国国家标准和技术协会通过在全球广泛征集公布了新的加密标准,就是AES,这么做的原因主要是由于它以前的数据加密标准DES不安全了,现在使用这样一个新的加密标准,就是AES;详细内容不再介绍了。
我们通过介绍这些东西有一些体会,有一些感想,比如说现在信息安全领域对密码算法的需求远远大于研究。
什么叫做需求远远大于研究?
就是信息安全需求是很大的,但是我们没有相应的安全手段去保证,没有安全的工具供我们使用;第二我们感到要想做一个好的信息安全的产品,就是说开发信息安全产品,必须有密码学与信息安全专家参与,比如说有些密码算法的隐患你不知道,很难保证你使用的是安全的情形,可能正好是不安全的情形;第三关于这个方向应该是一个长远的发展课题,因为安全的问题是永恒的;第四突破性的发展必须依赖于突破性的理论工作,IT行业不景气,很大程度上不景气的原因,决定于密码学研究的相对滞后,很多需要的密码理论成果没有,比如说现在移动通信网络的安全问题,它需要算法数据量小,还要安全性好,需要加密认证,因为手机和一台电脑是不可比的,不论是存储数量和速度,所以需要我们大家去研究适合于各种场合使用的密码算法,需要大家共同去努力。
我们非常想强调的就是不是你能做什么,而是你能安全的做到什么。
就是说一件事情,不是说我能把框架搭起来,能在表面上看似你能做到什么我也能做到,这是不够的。
我们需要能安全的做到那样,这应该成为今后我们要考虑的问题,我们大家要重视的问题。
这就是我要介绍的一些基本的事实,我不想介绍我们这里详细情况,可以简单的介绍几句我们上海交大在密码学与信息安全方面所做的工作,这方面我们主要的长处是在公钥密码、数字签名、密钥托管、门限密码学等,上述这些方向的研究应该处于国际先进或者是领先的水平,我们欢迎大家对这些方向感兴趣的一起来交流、共同探讨一些问题,当然其他的问题我们也可以来交流,我就先讲这些,谢谢大家。
谢海光
各位老师,各位同学,刚才曹老师就密码学与信息安全基本的问题做了很好的阐述,使得我们在短短的一段时间当中,对整个密码学研究的节奏,整个现在的特点有了很多的认识,网上有很多的问题,我们先把这些问题求教于曹老师。
首先大家都说有这样的问题,众所周知曹老师在密码学的建树很多,但是不知道曹老师最引以自豪的工作,特别是对密码学的贡献,最引以自豪的工作是哪些?
曹珍富
我刚才说到公钥密码,这是现代安全最核心的,因为你不管进行什么样的安全活动,都要约定密钥,认证消息和身份。
当前使用的RSA有很多的漏洞,主要的漏洞就是不能等价于大整数分解,它的强度不能够证明。
如果对RSA进行改造,使其安全性等价于大整数的分解,这个体制就是优于它的,这样的方案我们已经得到了;第二就是基于大整数的RSA密码在很多时候,由诸如像小加密指数攻击,或者是小私钥指数攻击,主要的出发点是利用它的一维性,我们变成多维性能有效的对抗这些攻击,所以多维RSA也是安全的,这方面我们也做了。
这些算法都可以相应的拿来做签名,拿来做门限签名,拿来做门限密钥托管。
密钥托管方案就是这样,就是我们两个人通信有一个密钥,那个密钥是要交给托管机构托管,如果第三方想得到我们的通信,他可能会买通托管机构,从而获得我们的通信的内容,虽然是法律授权可以这样做,但是他这样做没有人能发现,而且我们做商业秘密谈判,第三方企业花钱买通托管机构,把我们谈话的内容都截给他,不仅侵犯了隐私权,也窃取了商业机密,这样的做法很不合适,就是说我们的密钥不能直接交给一个托管机构,而应该是交给很多的机构,不是说密钥本身交给很多机构,是把这个密钥变成一些密钥碎片,交给很多机构,这些机构没有一个机构拥有全部的密钥,要求K个才能监听我们两个人的通信,而不是说其中一个或者是两个,哪怕少一个也完全不能监听我们的消息。
谢海光
强度是多少?
曹珍富
你可以选择K=5。
如果你选择五个,觉得可能他们联合作案的可能性较大,你也可以选择十个,按照你安全的需要选择具体的K值,可以变得大一些,也可以变得小一些,还得要求每次都是K个人来监听,不能说一次监听以后,监听机构可以获得两个用户间的密钥,因为这样就成了“一次监听永久监听”了。
这样的话,监听机构找K个人就把密钥信息获得,下面不用K个人就可以监听到了。
我们的方案是:
实现了每次都必须K个人来,K个人来不能把自己的秘密给监听机构,监听机构只能得到K个人中每个人自己“监听”的消息。
所以这些人来不是直接把密钥碎片给监听机构。
谢海光
大家听了以后觉得有点明白,在业内的人,在有些非信息安全、密码学的人可能对公钥、密钥基本的内容不太清楚,而这又是非常关键的,是否曹老师简单介绍一下公钥、密钥之间的关系。
曹珍富
公钥密码是迪非-赫尔曼提出来的概念,它的意思就是加密密钥与解密密钥分开,加密密钥公开,所以也叫公钥;解密密钥保密,也叫私钥。
传统的密码不是这样的,传统密码的加密与解密用同一个密钥,密钥需要严格保密,密码算法被称为私钥密码算法。
谢海光
传统密码的密钥只有我们两个人知道,第三者得不到,如果得到就能解开。
曹珍富
是的,这是对称的。
但对称密码本身使用是很不方便的,例如事先要约定密钥和管理很多密钥。
公钥密码就是针对这个,将加密密钥公开,大家都可像电话号码一样公开在电话号码本里面,任何人翻开查到你的名字都可以找到密钥,因而可以给你发送加密消息,只有你能解得开,因为对应的解密密钥在你手里。
当然,通常要求加密、解密是非常快的;从公开的加密密钥找到保密的解密密钥是不能够找到的。
什么叫做不能够找到?
这是计算的问题,就是从加密密钥找到解密密钥的问题是一个比较复杂的架构,最好是NP问题或NPC问题。
如果满足了这些条件,这样一个公钥密码算法就已经被找到。
谢海光
这样公钥和密钥等于吻合在一起。
曹珍富
等于两个,公钥公开用于加密,密钥保密用于解密。
谢海光
还有一个问题,请问专家对于最近上市的指纹认证有什么看法,是否会取代传统的密码身份的认证?
曹珍富
指纹认证肯定是一个方向,因为它结合了一些生物信息在里面,只有这样好多东西解决起来会容易一些,但是仅用指纹识别是不够的,应该跟密码算法同时使用,这是我个人的看法,只有同时使用,它的安全性才会得到保障。
这最主要是用来做防伪,防止信息伪造,由于个人的指纹是不变的,指纹信息放进去肯定是一个方向,这是我过去曾经坚持希望做的,但是我在这一块至今研究的很少,我想应该是这样的。
谢海光
那么曹老师根据你的见解,你发现或者是你认为指纹是否会取代传统的密码身份的认证?
曹珍富
不会。
指纹仅仅是用来做防伪的一个中间环节,它不能够做加密和防复制,像前面提到的密码学是不能被取代的。
谢海光
为什么不能加密?
曹珍富
指纹怎么能加密,只能做识别用,就是识别这个东西是真的还是假的,是不是你的,它不能够做其他的用处。
就是它本身识别还要跟密码算法结合。
谢海光
指纹信息就更多了,包括生物信息等等,这些信息肯定更加复杂,这些信息再转换为算法,就更加难以破译?
曹珍富
指纹图象采集也可以变成数字,可以变成数字信息。
谢海光
从这个意义上讲是一样的。
曹珍富
仅靠这个东西不能用来完成密码所能做的,就是仅仅靠它来识别还可能被别人伪造、复制、改变,所以还要进行不可否认性等等的动作,这些动作需要密码算法保障的。
谢海光
下面还有一个问题,请问专家对于最近上市指纹认证是刚才说的,关于上市指纹,他说还有眼睛虹膜的识别,我们再推而广之,除了眼睛虹膜,还有什么方法?
曹珍富
这个我了解很少,但是从人体提取一些不变的信息,提取个人独有的特征做识别,作为一个人的身份信息是一个方向。
谢海光
我们交大有没有这方面的研究?
曹珍富
我不是很了解。
可能很少。
谢海光
有同学对AES听得非常认真,但是曹老师一下就过去了,是否关于AES再做一个解释?
曹珍富
AES是分组算法,我自己做得很少,那样的算法在网上都有现成的,包括源码都有,大家得到非常容易。
谢海光
是否给大家讲一点最基本的思想?
曹珍富
因为我对这个东西研究得很少,所以对它的思想我可能会说一些不是很准确的话,大家可以做一个参考。
比如说它加了一些二元多项式进去来加密,我不知道他这样做的用意,或者是他这样做的好处在什么地方。
这也是我没有将AES整个拿过来介绍的原因。
但是这个东西大家很容易得到,很容易搜索到。
谢海光
我们以后还有机会专门讲AES。
大家对交大的密码学与信息安全研究挺关注的,是否请曹老师把交大研究的情况,还有网上提的问题,关于中国密码学研究的情况?
曹珍富
可能会挂一漏万,因为这需要专门统计,专门认真做准备,我感觉到交大的情况很强。
首先有几块,像计算机系有一块,这一块以理论研究和应用开发为长处,这块专家很多,像陈克飞教授,他领导一个课题组,有很多人来做理论和开发。
谢海光
他们这一块主要的产品是什么?
曹珍富
像数字签名、数字印章,做无线PKI,就是用于无线通讯网上的公钥基础设施,他们都做了很多很多;还有一块就是谷大武教授,他在密码算法主要是分组密码和网络安全方面有一个梯队;还有一位教授叫卢宏涛,他在混沌密码和刚才大家感兴趣的那些信息隐藏、信息安全方面做了很多工作,所以如果找他介绍这块东西会更好;还有一块就是我这块,现在博士后有3位,博士生有9位,硕士生有16、17位,梯队大概有30个人,主要是来做密码学与信息安全,所有各个领域的理论,都几乎有同学在跟着我一起做。
我们这方面的成果也是很多的,像公钥密码算法,我们把它叫做现代密码算法;还有用来签名、识别,密钥管理、密钥托管这些成果是非常多的。
谢海光
一般产品的形态大概是什么样的?
曹珍富
我们也在考察想