概述

统一电子印章系统的电子签章是采用 PKI 公钥密码技术,将数字图像处理技术与电子签名技术进行结合,以电子形式对加盖 印章图像数据 的电子文档进行数字签名,以确保文档来源的真实性以及文档的完整性,防止对文档未经授权的篡改,并确保签章行为的不可否认性。在使用电子印章对各种文档进行电子签章过程中,签章者通过数字签名对文档数据进行签章处理,从而达到与传统纸质文件盖章操作相同的可视化效果,同时又利用数字签名技术保障了文档数据的真实性、完整性以及签章者行为 的不可否认性 。统一电子印章系统中数字签名算法为SM2 杂凑 算法为 SM3 。

1.2.156.10197.1.301   :  SM2椭圆曲线公钥密码算法

1.2.156.10197.1.501  :   SM3WithSM2Encryption


通过上图我们可以看到以下内容:

  • 三个主要的数据结构:1、电子签章结构体;2、电子印章结构体;3、印章结构体。他们包含关系是 1包含2;2包含3。
  • 三次用到算法加密:两个签名值、一个原文杂凑值
  • 三个证书:两次用到签章者证书、一次制章者证书

签章的大致流程需要四步。

1:构造印章信息

类似于c语言的结构体。将对应属性的值赋值后。

2:构造电子印章结构体

根据有效的数字证书构造出一个印章结构体(C语言的struct)。运用“SM3WithSM2Encryption”对印章结构体进行运算得到了  电子印章的签名值。

3:构造待签名数据

4:构造电子印章结构体

第二步

sm2电子印章结构体相关推荐

  1. Gin 框架学习笔记(02)— 参数自动绑定到结构体

    参数绑定模型可以将请求体自动绑定到结构体中,目前支持绑定的请求类型有 JSON .XML .YAML 和标准表单 form数据 foo=bar&boo=baz 等.换句话说,只要定义好结构体, ...

  2. Go 知识点(04)— 结构体字段转 json格式 tag 标签的作用

    我们知道在 Go 语言中无论是变量.常量还是函数,对于首字母大小写有不同的处理. 首字母大写,标志着该字段或者函数是能导出的,也就是可以被其它包所能访问的: 首字母小写,标志着该字段是私有的,只能在本 ...

  3. 【C#】枚举_结构体_数组

    最近看C#视频,关于这部分,先看了一遍,又照着敲了一遍,自己敲的过程发现了一些有意思的东西. 枚举:定义一个枚举类型的变量,这个变量有很多相同类型的值.比如性别Gender这个变量可以有男和女这两个值 ...

  4. C++ 结构体struct 的使用

    结构体是什么 结构体是一种有开发者定义的数据类型,以容纳许多不同的数据值 结构体的注意事项: 声明结构体的方式和声明类的方式大致相同,其区别如下: 使用关键字 struct 而不是关键字 class. ...

  5. C语言结构体篇 结构体

    在描述一个物体的属性的时候,单一的变量类型是无法完全描述完全的.所以有了灵活的结构体变量. 结构体变量从意义上来讲是不同数据类型的组合,从内存上来讲是在一个空间内进行不同的大小划分. 1.1 结构体类 ...

  6. 33. 使用fread()/fwrite()往文件中写入结构体,从文件中读出结构体

    1 //读写结构体 2 #include <stdio.h> 3 typedef struct student 4 { 5 int num; 6 char name[30]; 7 char ...

  7. Linux 准确查找结构体定义位置

    例如:查找文件操作结构体 struct file_operations, 使用转移符 "\" $ grep struct\ file_operations\ { kernel/in ...

  8. Go 学习笔记(33)— Go 自定义类型 type(自定义结构体、结构体初始化、结构体内嵌、自定义接口)

    1. 自定义类型格式 用户自定义类型使用关键字 type ,其语法格式是: type newType oldType oldType 可以是自定义类型.预声明类型.未命名类型中的任意一种. newTy ...

  9. Go 学习笔记(27)— type 关键字(类型定义、类型别名、类型查询、定义接口、定义结构体)

    1. 类型别名定义 定义类型别名的写法为: type TypeAlias = Type 类型别名规定: TypeAlias 只是 Type 的别名,本质上 TypeAlias 与 Type 是同一个类 ...

最新文章

  1. python将二维列表内容写入和读取.txt文件
  2. android 版本控制
  3. jquery简洁遮罩插件
  4. Scala学习笔记:how to convert a StringRDD to Array
  5. This generally means that another instance of this process was already runni
  6. BeetleX.FastHttpApi之Vuejs扩展
  7. php.ini详细介绍与设置,配置
  8. Vue + echart 实现中国地图 和 省市地图(可切换省份
  9. Linux学习笔记---修改CPU频率为自动调节模式
  10. Flutter游戏:简单规则与结束页
  11. 一个自定义的C#数据库操作基础类 SqlHelper
  12. SQL数据库语句大全
  13. 设计师:设计师之家装材料知识之家装八项(吊顶材料、门窗材料、五金材料、墙面材料、地面材料、胶粘材料、油漆材料、水电材料等)之详细攻略
  14. 815:Flooded!
  15. 父爱,是一首深沉的诗。
  16. Lifeline功能介绍01——日历及时间轴的查看
  17. 计算机颜色管理器,系统颜色管理完全攻略
  18. 三相电检测电路c语言,三相电缺相检测电路
  19. 锐龙AMD处理器 AndroidStudio无法安装使用安卓模拟器/虚拟机
  20. 使用Highcharts来画一个简易的甘特图

热门文章

  1. 各国际会议的影响因子
  2. 水平耀斑_将带有油漆和透明度键的耀斑添加到您的C#项目中
  3. 转载自网眼的QQ微博(http://t.qq.com/zhangking)
  4. Silverlight的未来【转于博客园】
  5. 基于多目标优化方法的电梯零部件预防性维修期决策
  6. 【2016年第4期】基于仿真大数据的效能评估指标体系构建方法
  7. 12. Vuepress2.x 隐藏指定页的 sidebar
  8. 无线通信基础知识7:射频器件的基本参数3
  9. python壁纸4k_Python爬取4k高清动漫壁纸
  10. 多功能拓展坞设计CS5266|CapstoneCS5266带PD多合一拓展坞方案电路|CS5266方案电路图