3、信息密码面向对象编程接口设计与应用 3.1 信息密码面向对象编程接口设计 应用面向对象方法,对密码编程接口功能进行分析与封装设计,将有效提高编程速度。信息密码功能主要包括:l)创建密钥。该功能根据提供的密钥算法产生私钥体制下的会话密钥或公钥体制下的公共/私钥对。2)交换密钥。该功能包括交换公钥和交换会话密钥。交换公钥不需要加密可直接输出。交换会话密钥时必须通过对方的公钥进行加密输出。3)数据加密和数据解密。由于非对称加密算法速度慢,信息密码面向对象编程接口中的所有数据加密都使用对称算法。而公共/私人密钥算法则用以较少位数的数据加密,如对会话密钥或数字签名进行加密。数据解密利用会话密钥对密文解密。4)数字签名和签名认证。数字签名可用来验证数据是否是真正由签名方发送来的或数据在途中是否受到损坏。创建数字签名的第一步是计算签名数据的哈希值,然后用用户的私钥加密哈希值得到数字签名。由于私钥是秘密的,可以确保不知道密钥的人无法伪造数字签名。签名认证第一步用用户的公共密钥解密数字签名并计算哈希值,将收到的哈希值与自己计算的哈希值相比较来验证数字签名,由于只有真正的发送者才能创建匹配的哈希值,所以可以认证发送者的身份。在信息密码面向对象编程接口实现中,创建密码类,将上述四种密码功能作为该类的成员函数。密码类既可作成基类与应用程序一起进行编译,也可作为窗口类的派生类,将密码类作成动态库由应用程序调用。下面是采用第二种方法列出的密码类C 语言描述: Class CCryptography::CWnd { public: CString strSourceFile, CString strDestFile, CString strDescription; public: CCryptography::CCryptgraphy(Cstring sourcefile, Cstring destfile); BOOL CreateKeyContainer( ); //创建密钥库 BOOL EncryptFile( ); //密码文件 BOOL DecryptFile( ); //解密文件 BOOL SignaturetFile( ); //创建数字签名 BOOL VerifyFile( ); //验证数字签名 } 3.2 密码类在柔性加工单元信息安全中的应用 柔性加工单元是有多品种小批量生产特点的制造系统。单元通常按照客户定单组织生产。单元网络环境加快了单元与外界交互信息的速度,同时也带来了网络信息安全问题。柔性加工单元网络信息安全包括:1)交互信息加密。加工单元通过网上发布服务信息和表单的方式与客户取得联系。双方交互具有许多不希望第三方知道的敏感信息,如客户方要求的定货名称、数量和单位等信息,加工单元回复的产品设计、成本报价等信息;2)合同数字签名。加工单元与客户双方利用网络签定合同时,传统的手写签名或印签方法是不适用的。这时需要借助数字签名方法达到手写签名的不可否认、无法伪造和可仲裁的目的。下面是应用密码类密码应用程序的部分C 代码: 文件加密 {//定义密码类对象,调用密码类加密成员函数 ... CCryptography* m_crypto; m_crypto=new CCryptography(Sourcefile, Destfile); m_crypto->EncryptFile( ); ... } 4、全文总结 应用密码类编写密码应用程序明显提高了编程效率,而且也适应渐趋发展的面向对象编程方向。应用密码类动态库连接方式使应用程序与密码编程接口进一步分离,从而使增删密码类功能不十分影响应用程序。应用密码类的密码应用程序的密码速度虽比封装前稍慢,但其效果还是令人满意的。倘若密码几十兆字节的产品设计图纸肯定存在速度太慢的问题,此时可考虑将图纸分解密码。当然产品设计图纸的网络传输本身也存在速度太慢的问题。 |