#   Higncryption：身份匿藏签密（匿签密）及基于匿签密的密钥封装机制
---------------------------------------------------------------------------------------- 
 
## 一. 算法库组成与安装说明

## 1.大赛标准接口实现 Windows 系统版本

代码位置： \参考实现\Windows version\higncryptionkem

 
### 算法库组成
 测试程序含功能的验证和性能测试。测试程序与算法库一样均基于visual studio 2010 pro开发工具使用c语言开发。 整个算法库的源码组织结构分为两个解决方案，分别是：

##### higncryptionkem 包括：

-  Higncryption 密钥封装算法实现及其测试程序； 

测试程序含功能的验证和性能测试。测试程序与算法库均为c语言开发。因代码涉及对openssl库的调用，为简化编译流程，
在工程代码的x64\release目录下已集成了编译好的openssl库文件（libcrypto-1_1-x64.dll）。
编译时使用visual studio 2010pro打开相应目录下的算法解决方案后先编译算法库再编译算法测试程序。


### 安装说明
 
对higncryptionkem 解决方案，可以看到里面包含两个项目，分别是：

- 算法库libhigncryptionkem
- Higncryption密钥封装算法测试程序testhigncryptionkem
 

编译生成的libhigncryptionkem.lib即为算法库，testhigncryptionkem.exe 即为算法测试程序。 
 
 

## 2. 大赛标准接口实现 Linux 系统版本 

代码位置： 参考实现\Linux version

### 算法库组成

测试程序的发布方式参照开源库通用方式，即在算法发布库中集成对应的测试验证程序。测试程序和开源库通过automake简化了编译和使用难度。
 整个算法库的源码组织结构分为两部分，分别是： 

##### ucake子目录，包含了 

 -  Higncryption密钥封装算法实现及其测试程序；
 
### 环境依赖

 - 开发语言：C
 - 编译工具：
 - gcc version 7.3.0 (Ubuntu 7.3.0-27ubuntu1~18.04) 
 - automake (GNU automake) 1.15.1 
 - autoconf (GNU Autoconf) 2.69
 
###  部署步骤

测试程序含功能的验证和性能测试。测试程序与算法库一样均为c语言开发，具体编译方法如下(linux,gcc)：
获取算法源码tar包后执行如下命令即可：
 tar -xvf higncryption.tar 
cd cake/ucake 
./autogen.sh 
./configure 
make
 

 - 编译生成的higncryption/.libs/libhigncryption.so即为Higncryption密钥封装 算法库文件
 - 编译生成的higncryption/testhigncryptionkem即为Higncryption密钥封装算法测试验证可执行程序。
  

------------------------------------------------------------------------------------
 
## 二. 参考实现文件夹下源代码文件列表 与 功能说明
---------------
 

###  1. 大赛标准接口 Linux version 文件夹下主要文件功能说明

- higncryption.tar： 根据大赛标准接口提交的 Linux 系统下 身份匿藏签密和认证密钥封装算法 软件实现

整个算法库的源码组织结构如下：

##### higncryption 目录，包含了
- Higncryption密钥封装算法实现及其测试程序； kem_api.h 中接口 实现在 \higncryption\higncryptionkem_impl.h 文件中
 

###  2. 大赛标准接口 Windows version 文件夹下主要文件说明

整个算法库的源码组织结构如下：

#####  higncryption  目录，包含了

- Higncryption 密钥封装算法实现及其测试程序； kem_api.h 中接口 实现在 参考实现\Windows version\higncryptionkem\libhigncryptionkem\src\higncryptionkem_impl.h 文件中
 

  


