posted @ 2013-01-26 23:21
01 2013 档案
摘要:最近浏览了一下国密办的官方网站,新公布了国密算法标准,其中有SM4算法,说明为原SMS4算法,既无线局域网标准的分组数据算法,可参考:http://www.oscca.gov.cn/News/201204/News_1228.htm公告说明,但不能下载标准文档 。 SM4为对称算法,密钥长度和分组长度均为128位。按原SMS4的标准描述:加密算法与密钥扩展算法都采用32轮非线性迭代结构。解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。 看了一下,算法中还描述了类似于DES算中的S盒变换。那如何来设计这个算法,在网上查询一下实现的代码还是满多的,按之前的经验
阅读全文
摘要:动态口令(OTP,One-Time Password)又称一次性密码,是使用密码技术实现的在客户端和服务器之间通过共享秘密的一种认证技术,是一种强认证技术,是增强目前静态口令认证的一种非常方便技术手段,是一种重要的双因素认证技术,动态口令认证技术包括客户端用于生成口令产生器的,动态令牌,是一个硬件设备,和用于管理令牌及口令认证的后台动态口令认证系统组成。一、OTP历史溯源 动态口令(OTP)有一个同名确不同翻译的前辈,一次性密码(OTP, One-Time Pad),也叫密电本,是一种应用于军事领域的谍报技术,即对通信信息使用预先约定的一次性密电本进行加密和解密,使用后的密电本部分丢弃不再使用
阅读全文
posted @ 2013-01-26 23:21
摘要:国密办已于去年公布国产商密算法SM3,http://www.oscca.gov.cn/News/201012/News_1199.htm,这给其应用和开发带来了方便,也见网上有许多实现的例子,出于一个项目开发需要,也试试其实现。 实现思路:完全从头来写不太适合如今开发时代,尤其是开源代码的大量使用。密码算法实现比较有名的就是:openssl,其体系庞大,使用也方便。但从学习与研究上来看,还是需要实现一个简化的代码,要小,适用于移植与嵌入。那就看看有没有更简洁的源代码库。在网上搜索一下,还找到个比较好的算法库,也不大,就是:Xyssl,好像是个法国人开发,管他是谁好用就行。 Xyssl实现了常用
阅读全文
posted @ 2013-01-26 23:20
摘要:国密SM2是非对称密码算法,是基于ECC算法的非对称算法。SM2算法标准公布于:http://www.oscca.gov.cn/News/201012/News_1197.htm,有兴趣的可下载学习。 国密SM2算法标准包括4个部分,第1部分为总则,主要介绍了ECC基本的算法描述,包括素数域和二元扩域两种算法描述,第2部分为数字签名算法,这个算法不同于ECDSA算法,其计算量大,也比ECDSA复杂些,也许这样会更安全吧,第3部分为密钥交换协议,与ECDH功能相同,但复杂性高,计算量加大,第4部分为公钥加密算法,使用ECC公钥进行加密和ECC私钥进行加密算法,其实现上是在ECDH上分散出流密钥,
阅读全文
posted @ 2013-01-26 23:19
摘要:// MakeCert.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <windows.h>DWORD MakeCert();void log(char *error_msg,int error_num);int _tmain(int argc, _TCHAR* argv[]){int t ;if( t= MakeCert() != 0)printf("Error Num:>d",t);return 0;}D
阅读全文
posted @ 2013-01-26 23:16
摘要:1、如果USB-KEY的驱动程序支持PKCS#11接口,则OpenSSL通过engine可以比较方便地访问USB-KEY。2、听说最新版本的OpenSSL 0.9.8i版本已经增WINDOWS CAPI的支持。因本人比较懒,就直接尝试了OpenSSL 0.9.8i版本。在网上参考了这个网站的信息http://markmail.org/message/hrrq3hhciz6vml6w#query:OPENSSL%20CryptoAPI%20ENGINE+page:1+mid:ufpkpzqtk5ohn5hz+state:results有兴趣的朋友可以去看看。好,现在开始工作。1、下载OpenSS
阅读全文
posted @ 2013-01-26 23:14
摘要:Q:有为usbkey写过csp的吗?请问如何实现用usbkey来保存证书?csp的CPSetKeyParam()需要注意什么?(MSDN上的没看懂)是否需要设定PK_CERTIFICATE这个参数?比如,需要将产生的证书存在D盘根目录下面(暂时代替usbkey),需要哪里设定?A:分别通过调用CryptSetKeyParam和CryptGetKeyParam来调用CSP实现的CPSetKeyParam和CPGetKeyParam当dwParam为KP_CERTIFICATE时,CPGetKeyParam的pbData就是证书的DER编码值。Q:使用usbkey时,弹出了一个输入pin码的框,这
阅读全文
posted @ 2013-01-26 23:13
摘要:CpSetKeyParam函数原型为:BOOL CPSetKeyParam(__inHCRYPTPROVhProv,__inHCRYPTKEYhKey,__inDWORDdwParam,__inBYTE*pbData,__inDWORDdwFlags);在MSDN中说到当参数dwParam为KP_CERTFICATE时,导入证书。KP_CERTIFICATEpbDatais the address of a buffer that contains the DER-encoded X.509 certificate. The public key in the certificate must
阅读全文
posted @ 2013-01-26 23:12
摘要:其实CSP主要是对容器里的密钥对操作的,和证书关系不大。容器里的密钥对有两种类型:一种是AT_KEYEXCHANGE,表示加密的密钥对,一种是AT_SIGNATURE表示签名的密钥对。由于美国的出口限制,在MS的CSP中加密的密钥对可以取的密钥最大长度通常会比签名的密钥对短。通常加密的密钥对只会用于加密,签名的密钥对只会用于签名,由于某些原因(例如产生证书请求),加密的密钥对也可以用于签名。我把AT_KEYEXCHANGE和AT_SIGNATURE看作是容器里的两个位置。在智能卡CSP中可以把证书写入容器中,和加密的密钥对对应的证书写到AT_KEYEXCHANGE位置中,和签名的密钥对对应的证
阅读全文
posted @ 2013-01-26 23:12
摘要:图为 RSA公开密钥算法的发明人,从左到右Ron Rivest, Adi Shamir, Leonard Adleman. 照片摄于1978年 RSA加密算法是最常用的非对称加密算法,CFCA在证书服务中离不了它。但是有不少新来的同事对它不太了解,恰好看到一本书中作者用实例对它进行了简化而生动的描述,使得高深的数学理论能够被容易地理解。我们经过整理和改写特别推荐给大家阅读,希望能够对时间紧张但是又想了解它的同事有所帮助。RSA是第一个比较完善的公开密钥算法,它既能用于加密,也能用于数字签名。RSA以它的三个发明者Ron Rivest, Adi Shamir, Leonard Adleman..
阅读全文
posted @ 2013-01-07 12:12
摘要:X509证书中RSA公钥的提取与载入 由于项目需要,我计划利用openssl开发一个基本的CA,实现证书的发放等功能。在项目模型中公私钥对是用户自己产生的,并且以16进制数的形似提交给CA。我们知道,通常利用openssl颁发证书时,公私钥对往往也是由openssl产生的,比如利用以下三个函数 RSA_generate_keyEVP_PKEY_assign_RSAX509_set_pubkey便可以轻松搞定从密钥产生到载入证书的过程,而提取证书公钥只需X509_get_pubkey如何将16进制形式的rsa公钥载证书的却没有相关介绍,经过几天的研究终于搞定了,贴出来与大家分享,我们可以利用下面
阅读全文
posted @ 2013-01-07 11:58
浙公网安备 33010602011771号