电子招标投标系统是一个以网络技术为基础,招标、投标、评标、合同等业务全过程实现数字化、网络化、高度集成化的系统,它能提高国内厂商的竞争意识与生存能力,为国内厂商的提供更多参与国际竞争的机会,让他们更多了解国际市场行情和国际技术标准、国际竞争方式,能提高国内厂商的国际竞争水平,提高国内企业的整体水平,提高国产设备在国际市场的竞争能力。但由于建设工程的标底巨大,怎样保证招标人、投标人在一个公开公正公平的系统环境中进行招投标活动是电子招标系统实施的关键。因此在招标文件、投标文件的传递过程中如何防止泄密、保证文件在传递过程中一致性是系统的重中之重。

为此在分析比较当前较为流行的加密算法的基础上,针对建设工程施工电子招标系统的实际应用,提出了对于电子招标系统的两种不同的加密方案。

一、加密体系

数据加密作为一项基本技术是所有通信安全的基石。网络安全的实现很大程度上依赖于各种密码学算法,包括对网络通道上传输的数据进行加密、解密处理以及散列处理等。

如果加密算法的保密性是基于保持算法的秘密,这种加密算法称为受限制的算法。受限制的算法有很多缺陷:首先,大的或经常变幻的用户组织不能使用它们,因为如果一个用户离开了这个组
织,其他的用户就必须改换另外不同的算法。如果有人无意间暴露了这个秘密,所有人都必须改变他们的算法。另外,受限制的加密算法不可能进行质量控制或标准化。每个用户组织必须有他们自己的唯一算法。这样的组织不可能采用流行的硬件或软件产品,因为窃听者可以买到这些流行产品并学习算法,于是用户不得不自己编写算法并予以实现,如果这个组织中没有好的密码学家,那么他们就无法知道他们是否拥有安全的算法。

加密算法是用于加密和解密的数学函数,通常情况下,有两个相关的函数:一个用作加密,另一个用作解密。

加密和解密的算法分为对称算法和不对称算法。

1、对称加密算法

对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。

常用的对称加密算法有:DES算法,3DES算法,TDEA算法,Blowfish算法,RC5算法,IDEA算法。

2、非对称加密算法

非对称加密算法(asymmetric cryptographic algorithm)又名“公开密钥加密算法”,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。对称加密体制中只有一种密钥,并且是非公开的,如果要解密就得让对方知道密钥。所以保证其安全性就是保证密钥的安全,而非对称加密体制有两种密钥,其中一个是公开的,这样就可以不需要像对称密码那样传输对方的密钥了。

常用的加密算法有:RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)。

二、如何加密电子招标系统

密码学除了提供机密性外,通常还有以下作用:

(1)鉴别 消息的接收者应该能够确认消息的来源,入侵者不可能伪装成他人;

(2)完整性 消息的接受者应该能够验证消息在传送过程中没有被修改,入侵者不可能用假消息代替合法消息;

(3)抗抵赖 发送者事后不可能虚假地否认他发送的消息。

这些功能是通过计算机进行安全交流敏感信息的至关重要的需求。针对电子招标系统的要求,提出以下方案。

1、方案一:文件进行加密处理

由于非对称算法比对称算法更难破解,同时由于解密密钥是不公开的,因此方案一中,我们设想在电子招标系统中的招标人、投标人、招标办三方采用各自的数字证书对招标文件和投标文件进行加密处理。

CA即Certification Authoritie8,作为第三方CA能保证数字证书的身份确认,对使用数字证书的用户提供一个中介证明。另外在流程中用私钥加密的部分,其实就是通常所说的数字签名,它能保证所得的加密文件确实由某个用户发出,公钥加密就确定了只有持有私钥的用户才能解密该加密包。在该方案中酌数字证书存储采用了iKey(iKey是由RainBow公司提供的具有IC芯片的智能读卡器)。

2、方案二:非对称算法与对称算法结合

采用非对称算法与对称算法结合的方式,在此方案中只需招标办向CA申请数字证书,对称加密的密钥拆分成两个,分别由招标办(key1)和投标人(key2)形成。

此方案中用于对称加密的密钥通过非对称加密算法进行保护,确保对称加密的密钥不泄露,同时对称加密的密钥是招标办和投标人两方持有的,保证了现场开标的公正性。

在上述两个方案中,都满足了整个电子招标系统所需的公开公平公正的原则。方案一应该是加密与身份确认最严格的系统,但是处理速度较慢,而且参与三方均需向CA中心申请数字证书。方案=在加密与身份确认上较方案一弱,但是该方案处理速度快,并且只有一方需向CA中心申请数字证书。另外安全接口层(SSL)建立服务器和浏览器之间的安全对话使用的就是方案二的工作方式。

3、基于.NET的加密实现

.NET将原来独立的非托管的win32 Crypto API库和SDK合并到一个框架中,这对于程序开发人员非常有利。它将CryptoAPI改编进.NET相应的名字空间中。使密码服务摆脱了SDK平台的神秘性,变成了简单的.NET名字空间的使用。由于随着整个框架组件一起共享,密码服务更容易实现了。

.NET Fnunework有3个密码命名空间:

(1)System. Security. Cryptography——包含完成所有加密任务的核心类。

(2)System. Security. Cryptography.Xml——包含可结合使用System. Security.Cryptography类,对Xml文档部分内容进行加密和签名的类。

(3)System. Security. CrypLography. X509CertiflcaLes——包含允许检索证书信息的类。

System.Security.Cryptography中的核心加密类分为3层。

第一层是一组抽象类,它们表示加密算法的类型,用于完成特定的加密任务,包括A8ymmetricAlgorithm(表示非对称加密)、SymmetricAlgorithm(表示对称加密)、HashAlgorithm(表示散列的生成和检验)。第二层包含表示特定加密算法的类,均由加密基类派生而来。如DES算法类由SymmetricAlgorithm派生而来。第三层就是一组加密实现方案。每种实现类都由算法类派生而来。如.NET Framework只提供了DES一个实现类(DESCryp-toServieeProvider)。具体的类方法可参见Microsoft MSDN。

如果加密密钥长度较大时,需由高加密包支持。WindowsXP和WindoWs.Net Server不需要其他安装,Windows 2000需安装Service Pack 2或安装Windows 2000 High Encryption Pack,Windows NT 4.0需安装Sp6a,WindOW8 98或ME可以通过安装IE5.5来获取高加密包的支持。

小知识之.NET

.NET是 Microsoft XML Web services 平台。XML Web services 允许应用程序通过 Internet 进行通讯和共享数据,而不管所采用的是哪种操作系统、设备或编程语言。Microsoft .NET 平台提供创建 XML Web services 并将这些服务集成在一起之所需。对个人用户的好处是无缝的、吸引人的体验。