U_data 加密机开发文档
一、 设备开发背景
二、 设备原理
三、 U_data 加密机相关参数
四、 U_data 加密机密码说明
五、 U_data 相关 API 汇总
六、 错误列表
一、 设备开发背景
在信息时代,信息安全问题越来越重要。我们经常需要一种措施来保护我们的数
据,防止被一些别有用心的人所窃取或破坏。因此,在客观上就需要一种强有力的安
全措施来保护机密数据的安全。解决这个问题的方式很多,基本原理就是加密,但加
密分为真正的数据逐字加密和伪加密。传统加密软件,通常将密码与加解密算法写在
程序中。这样的加密强度可想而知,很容易被跟踪、破解。而 U_data 加密机将密码
与算法完全在硬件内实现,大大提高了文件的安全强度和加解密过程的可靠性,做到
加密数据安全绝对不可破解。
U_data 是专门为数据流加解密
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
的外围处理设备,密码永不出 key,加密算
法集成于芯片内部,加解密过程在硬件中完成,对 PC 端来说数据的加解密过程完全
透明,实现了绝对的安全。硬件稳定、可靠,采用国密认证芯片,集成高速智能内核,
绝非 PC 软件层面的算法实现。
“真加密”与“伪加密”------对于数据加密来说,安全级别自然是用户关注的基
本所在。一款真正的加密产品,如果安全级别不够高,甚至“伪加密”,致使我们的数
据在不知不觉中泄露,这对任何一个用户来说都会引起非常严重的后果。在判定安全
级别时,最主要的就是 “数据加密
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
”的
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
:就是通过 “是否对数据进行加密编
码”,可以将加密产品分为:两类: “真加密”、“伪加密”产品。1、“真加密”,是对原
始数据的每一位进行加密变换,输出编码密文进行存储。只有输入正确的密码,才可
以进行解密,获得原始数据!2、“伪加密”,没有对数据进行编码变换,完全是明文
存储,但是借助一些技巧,对数据进行隐藏或简单地对密码进行比对确认,这样的加
密,在找到文件一般就可以获得真实数据。通过以上分析,显而易见,理想的加密产
品一定是要真加密。U_Data 是一个专门对进出数据流加解密的加密机,数据在通过
这个“加密通道”的过程中,加密 /解密过程通过芯片集成的高强度加密算法自动完
成,算法密钥永不出硬件设备,保证密文的绝对安全。
二、 设备原理
1、加密过程:
加密时调用加密接口,每一次写 16KB 数据采用 U_data 去加密,然后读 16KB 数据形成
密文
2、解密过程:
解密时,写入 16KB 密文,经 U_data 解密,读出明文。不足 16KB 数据,在加密时补足
明文
PCPCPCPC
密文
U_datU_datU_datU_dataaaa加密机
(算法、密钥)
16KB,解密时去掉无用数据。(写入同时把文件的大小写在加密文件里面。在解密时,
获取加密文件中文件的大小,即可以知道最后包的大小。)
3、 U_data 为什么安全?
(1) 高性能专用加密芯片,加解密算法在硬件中运行,加解密算法、密钥永
不出硬件,实现了数据加解密
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
的绝对安全,加解密过程完全在硬件内完
成,上位机不存在加密算法,不存在密钥。其安全实现与常用的“加解密软
件”或硬件“伪加密”(只存密钥到硬件而在上位机实现加密算法,这样密钥
必出硬件,这样不可避免地存在先天漏洞)有着本质区别或者说是完全不同
的产品。
(2) U_data 加解密依靠硬件实现,其间完全杜绝了病毒、木马等非正常程序
的破坏、干扰,加密过程安全、稳定、可靠,有效避免数据处理过程中的损
坏、盗劫、畸变等情况发生。
(3) 与一般的带硬件的加密产品或软件加解密保护程序(如 XXX 保险箱、XXX 保
护盾等等)有何区别?
此类产品中基本是把密钥存放在硬件中,加解密时将密钥调入 PC 机实现
加解密运算,表面上看似必须要硬件支持,实际则是硬件在整个保护过程中作
用非常有限,几乎是不参与核心运算,而对密码的保护更是形同虚设,只起到
了一个密码存储作用,不管密码是否是加密存放,在每次加解密过程中它一定
会以明文的形式被暴露到设备之外,存在极大隐患。
类似各类软件形式的加解密保护产品,可以作为免费共享使用,加密的安
全性是无法经过推敲的,加密算法、数据密钥存在于同一介质之上,那么在理
论上就无法避免其漏洞的存在。
(4) 数据密码很重要,所以,使用者设置完数据密码后建议将其备份并保存
到安全地方,以备 U_data 丢失后的紧急处理。
密文
PCPCPCPC
明文
U_datU_datU_datU_dataaaa加密机
(算法、密钥)
三、 U_data 加密机相关参数
本设备适用于 WindowsMe 以上系统,免驱动即插即用,使用高速 USB2.0 保证数据处
理速度。
硬件加密算法:SM1、SSF33 算法
SM1 密钥长度为 32字节,加密解密,每一次 16K字节
国密 SM1 算法是由国家密码管理局编制的一种商用密码分组
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
对称算法。
该算法是国家密码管理部门审批的 SM1 分组密码算法 , 分组长度和密钥长度都为
128 比特,算法安全保密强度及相关软硬件实现性能与 AES 相当,该算法不公开,仅以 IP
核的形式存在于芯片中
SSF33 算法:密钥长度为 16字节,加密解密,每一次 16K字节。
硬件加密算法速度:
SM1 算法加解密 130 Mbps = 16.25MB/s
SSF33 算法加解密 170 Mbps = 21.25MB/s
实测加密解密速度: 4MB/s~5MB/s
四、 U_data 加密机密码说明
1、管理密码:管理 U_data 加密机。例如:设置用户密码、密钥密码等。(出厂初始管
理密码为:12345678)
2、用户密码:用户使用 U_data 加密机是必须提供的认证密码。(出厂初始用户密码为:
12345678)
3、数据密码:U_data 加密机内有 10 组原始数据密码,用户可任意选择其中 2组(这
样,客户可以通过排列组合得到足够多的数据密钥使用),被选中的两组将组合为
真正数据处理密钥,它将用来在硬件中对数据流处理时的算法密钥。(出厂初始数
据密码为:12345678)
注:本加密工具使用 10组数据密码中的 0 和 1 两组作为有效密钥,其他组数据
密钥为系统保留,供二次开发者使用。
4、管理工具:
输入 U_data 加密机序列号(插入 U_data 到 PC 机,点击对话框右端下来按钮会看
到改 U_data 的序列号)和对应的管理密码可以对 10 组数据密码和管理密码、用户密码
进行重新设置、修改。
五、 U_data 相关 API 汇总
DWORD FindDevice(unsigned long sn = 0);
***功能说明:
*** 此函数为 U_data 加密机初始化函数(查找相应 SN 的硬件加密设备),调用任何其
*** 他函数前请务必先调用此函数进行初始化工作。
***
***参数说明:
*** sn:加密机的序列号,标示一个特定的加密机;如果为 0,则表示连接到本机的第
*** 一个类似加密机的设备。
***
***返回值:
*** 该函数返回值如果为 0 则函数执行成功,如果不为为 0,则参考错误号列表。
***
DWORD getSN(map
&my_sn);
***功能说明:
*** 获取设备 SN 号。
***
***返回值:
*** 该函数返回值如果为 0 则函数执行成功。
***
DMADLL_API DWORD _DMA_API getSn(unsigned long *sn,int *c,int maxIndex );
***功能说明:
*** 获取设备 SN 号。
***参数说明:
*** sn[maxIndex]保存 sn 的数组,c 获得查找到的锁的数量,maxIndex,数组的最大下
*** 标。
***返回值:
*** 该函数返回值如果为 0 则函数执行成功。
***
DWORD encFile(TCHAR* src, TCHAR* dst);
***功能说明:
*** 该函数实现对文件的加密,只需提供加密源文件(未加密文件)路径与目的文件(加
*** 密后文件)的存储路径。
***
***参数说明:
*** src:加密源文件(未加密文件)路径。
*** dst:目的文件(加密后文件)路径。
***
***返回值:
*** 该函数返回值如果为 0 则函数执行成功。
***
DWORD decFile (TCHAR* src, TCHAR* dst);
***功能说明:
*** 该函数实现对文件的解密,只需提供解密源文件(加密后文件)路径与目的文件(解
*** 密后文件)的存储路径。
***
***参数说明:
*** src:解密源文件(加密后文件)路径。
*** dst:目的文件(解密后文件)路径。
***
***返回值:
*** 该函数返回值如果为 0 则函数执行成功。
***
DWORD enc(BYTE* src, BYTE* dst);
***功能说明:
*** 该函数实现对小于 16k 文件的加密,大文件可以以 16k 为单位拆分加密。
***
***参数说明:
*** src:16k 加密源文件(未加密文件)
*** dst:16k 目的文件(加密后文件)
***
***返回值:
*** 该函数返回值如果为 0 则函数执行成功。
***
DWORD dec(BYTE* src, BYTE* dst);
***功能说明:
*** 该函数实现对小于 16k 文件的解密,大文件可以以 16k 为单位拆分解密。
***参数说明:
*** src:16k 解密源文件(加密后文件)
*** dst:16k 目的文件(解密后文件)
***
***返回值:
*** 该函数返回值如果为 0 则函数执行成功。
***
DWORD setPsd (int set);
***功能说明:
*** 设置密码、加密算法的密码。
***参数说明:
*** set:前两位有意义。(有十个 8字节密的密码,通过 SET,去选择 2个字节做为加
*** 密算法的密码,如 set 为 21 表示,取加密算法密码的低 8字节的密码取第二个地
*** 址的密码做为密码,加密算法密码高八字节也为第三地址密码)
***返回值:
*** 该函数返回值如果为 0 则函数执行成功。
***
DWORD getfileProgress();
***功能说明:
*** 获取文件加密、解密的进度
***
***返回值
*** 该函数返回值如果为 0 则函数执行成功。
***
DWORD isEncrypted(TCHAR* src);
***功能说明:
*** 判断一个文件是不是加密的,如果是,则返回 0。
***
***返回值
*** 该函数返回值如果为 0 则函数执行成功。
***
DWORD WriteOtherData(PBYTE pWriteBuff,UINT32 nBuffSize,UINT32 *pnRetSize);
***参数说明
*** pWriteBuff:写入的数据(512 字节数据)。
*** nBuffSize:写入数据长度(512 字节数据)。
*** pnRetSize :如果返回 512,表明正确写入 512 字节数据。
***
***返回值:
*** 该函数返回值如果为 0 则函数执行成功。
DWORD ReadOtherData (PBYTE pReadBuff ,UINT32 nBuffSize,UINT32 *pnRetSize);
***参数说明
*** pReadBuff:读取的数据(512 字节数据)。
*** nBuffSize:读取数据长度(512 字节数据)。
*** pnRetSize :如果返回 512,表明正确写入 512 字节数据。
***返回值:
*** 该函数返回值如果为 0 则函数执行成功。
***功能说明
***WriteOtherData()
***ReadOtherData()
*** 这两个接口,将实现低层的一些应用,如读 SN、设置 10个 8字节的密码、设置
*** 4个 8字节密码组一成一个 32字节的密码,去进行加密解密。
DWORD WriteData(BYTE cmd,PBYTE pWriteBuff,UINT32 nBuffSize,UINT32 *pnRetSize);
***功能说明:
*** 如果 cmd 为 0xec(#define write_other_buffer 0xec)。
***参数说明:
*** pWriteBuff:写入的数据(512 字节数据)。
*** nBuffSize :写入数据长度,512。
*** pnRetSize:返回 512,表明正确写入 512 字节数据。
***返回值:
*** 该函数返回值如果为 0 则函数执行成功。
DWORD ReadData(BYTE cmd,PBYTE pWriteBuff,UINT32 nBuffSize,UINT32 *pnRetSize);
***功能说明:
*** 如果 cmd 为 0xef(#define read_other_buffer 0xef)。
***参数说明:
*** pReadBuff:读出的数据(512 字节数据)。
*** nBuffSize:读出数据长度,512
*** pnRetSize:返回 512,表明正确读出 512 字节数据。
***返回值:
*** 该函数返回值如果为 0 则函数执行成功。
***
例:
修改相应有 cmd 将会执行相应的功能。
#define encrypt 0xe0 enc(BYTE* src, BYTE* dst);//加密写 16k
#define decrypt 0xe4 dec(BYTE* src, BYTE* dst);//解密写 16k
#define read_data 0xe8 读出加密解密后的 16K 数据
#define write_other_buffer 0xec
WriteOtherData(PBYTE pWriteBuff,UINT32 nBuffSize,UINT32 *pnRetSize);
#define read_other_buffer 0xef
ReadOtherData (PBYTE pReadBuff ,UINT32 nBuffSize,UINT32 *pnRetSize)
六、 错误列表
///////////////////////////////////////////////
#define ERR_FIND_DEVICE 0x10000001
没有找到硬件加密设备
#define ERR_NOT_A_ENC_FILE 0x10000002
不是加密文件
#define ERR_SET_PSD 0x10000003
设置密码错误码
////////////////////////////////////////////////
北京蓝宇风计算机技术开发有限责任公司
地址:北京市海淀区联慧路 99 号海云轩 D2005#
邮编:100088
电话:010-62275133
传真:010-62275135
http://www.cpudog.com
Beijing LanYuFeng Computer Technology Development Co.,Ltd
Address: Room D2005, Haiyunxuan, No.99 Lianhui Rd.,Haidian District, Beijing
Post Number :100088
Telephone :010-62275133
Fax :010-62275135
http://www.cpudog.com