CN116842579A - 手写电子签名方法 - Google Patents

手写电子签名方法 Download PDF

Info

Publication number
CN116842579A
CN116842579A CN202310385226.7A CN202310385226A CN116842579A CN 116842579 A CN116842579 A CN 116842579A CN 202310385226 A CN202310385226 A CN 202310385226A CN 116842579 A CN116842579 A CN 116842579A
Authority
CN
China
Prior art keywords
data
signature
picture
electronic
handwritten
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310385226.7A
Other languages
English (en)
Inventor
龙毅宏
许明
陈韶光
王利国
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Itruschina Co ltd
Original Assignee
Itruschina Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Itruschina Co ltd filed Critical Itruschina Co ltd
Priority to CN202310385226.7A priority Critical patent/CN116842579A/zh
Publication of CN116842579A publication Critical patent/CN116842579A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Collating Specific Patterns (AREA)

Abstract

手写电子签名方法:用户通过电子签名程序的手写签名空白板输入手写签名;电子签名程序生成手写签名图片,请求电子数据认证系统对手写签名进行认证,待认证数据B包含手写签名图片、手写签名所确认的内容的散列值、认证用户ID、认证时间;电子数据认证系统对待认证数据B进行认证,生成的认证数据C并返回;认证数据C具有可验证及防伪防篡改的特性;包含手写签名图片、认证用户ID、认证时间及认证数据C的数据构成了电子签名;当利用电子签名对待验证的手写签名所确认的内容进行验证时,验证程序利用认证数据C验证电子签名的有效性,然后利用电子签名验证待验证的手写签名所确认的内容是否为当初生成电子签名时所确认的内容。

Description

手写电子签名方法
技术领域
本发明属于信息安全技术领域,特别是手写电子签名方法。
背景技术
电子签名(Electronic Signature)是一种用于等同、替代手写纸质签名的电子形式的签名,电子签名有很多种形式,各国在法律上、司法实践中对电子签名的有效形式、法律有效性有不同的定义、理解和界定,在此不作进一步叙述。
基于公钥数字证书的数字签名技术是目前比较安全、可靠的电子签名技术,但由于其比较复杂、用户使用不便等问题,目前仅在一些安全要求较高的场合应用。
目前在有些场合,允许将一个人的手写签名的图片放入到一个Word文档、PDF文档,以此作为此人对文档内容的签名确认;还有,目前一些基于移动终端(如手机、平板电脑)的app,在需要用户确认、认可某项内容、某个结果时,显示一个空白板(电子空白板,空白板指未签名的背景板,空白板不一定是白色),让用户手写签名并提交。这种手写签名是电子签名的一种形式,这种电子手写签名方式有一个好处,这就是一个人的手写签名很难被模仿,通过手写签名可以确保这个签名确实是某人自己的签的,但这种方式是不安全的,放入到一个Word文档、PDF文档中的手写签名的图片很容易被人复制、盗用,无法防止对手写签名所确认内容的篡改、伪造,通过app空白板书写、提交手写签名也是极其不安全的,因为用户通过空白板书写、提交的手写签名为一个没有任何安全保护措施的图片,这种手写签名的图片很容易被盗用,也无法防止对手写签名所确认内容的篡改、伪造,如果用户的手写签名被恶意app盗用,其后果是不堪设想的。
如何在利用手写签名的有益之处时,避免其存在的问题,确保用户手写签名的安全,确保用户手写签名不被盗用,以及确保手写签名所确认的内容不被篡改,是一个需要解决的问题。
发明内容
本发明的目的是针对目前电子手写签名存在的安全问题,提出一种解决方案。
针对本发明的目的,本发明提出的技术方案包括一种手写电子签名方法以及在此基础上衍生的两种手写电子签名方法。
在进行本发明的描述之前需要说明的是,电子签名这个术语可以指一种替代纸质手写签名的电子形式的手写签名的技术概念,也可以指电子形式的签名的操作处理过程(签名过程),也可以指这个电子形式的签名的操作处理过程所产生的结果即电子签名数据,因此电子签名这个术语具体指啥,需要根据上下文环境(这与数字签名类似),比如,发明主题名中的电子签名指电子形式的签名的操作处理过程(签名过程),而此过程产生的结果,标识签名的手写签名图片数据为电子签名数据。
本发明的手写电子签名方法具体如下。
当需要用户手写签名时,(用户计算装置,如PC机、便携式电脑、手机、平板电脑,中运行的)应用程序将电子签名生成请求传递给用户移动终端中的电子签名程序;所述应用程序包括桌面应用程序和应用服务程序或系统;所述桌面应用程序指仅需在用户计算装置本地执行本地程序代码就能提供完成应用功能的程序(系统);所述应用服务程序或系统(Service Program or System)是一个通过网络提供服务功能的程序或系统,其中又包括应用服务端程序或系统(Server End Program or System)以及应用客户端程序(ClientEnd Program);所述电子签名程序是运行在用户移动终端中的程序;所述电子签名程序是一个单独运行的程序,或者被一个单独运行的程序加载运行的程序组件(如插件、代码库等);所述单独运行的程序包括在移动终端中单独运行的应用程序(app程序)、微信客户端中单独运行的微信小程序;若电子签名程序为微信小程序,则微信小程序包括微信客户端中单独运行的微信小程序、微信小程序插件或微信小程序库(广义上的微信小程序);
电子签名程序通过人机界面显示手写签名空白板(Blank Panel),所述手写签名空白板是一个尚未输入用户手写签名的人机界面(空白板不一定是白的,不一定完全空白无图形、无文字,只是指尚未手写签名而已);
用户在空白板上手写签名并提交;
电子签名程序生成包含有用户手写签名的图片即手写签名图片,所生成的手写签名图片中还允许包含其他特定用途或目的信息(其中包括以文字、图形、数字水印、条码形式携带的信息);
电子签名程序请求电子数据认证系统对手写签名进行认证(即担保证明用户手写签名是某时某刻由某用户产生并用于针对某项内容进行确认的),其中包含手写签名图片、手写签名所确认的内容的散列值(哈希值、杂凑值)、认证用户ID、认证时间的数据A构成了待认证数据B(数据A就是待认证数据B,或者待认证数据B由数据A所构成);数据A包含写签名图片、手写签名所确认的内容的散列值、认证用户ID、认证时间的方式包括直接包含和/或间接包含,数据A直接包含一项数据或多项指这一项或多项数据为数据A的组成部分,数据A间接包含一项或多项数据是指利用这一项或这几项数据计算得到的数据为数据A的组成部分(中的一项或多项,不一定是全部)或构成了数据A;所述多项指多于一项;数据A间接包含一项或多项数据的情形还包括将这一项或几项数据(比如以文字、图形、数字水印、条码等形式)添加或嵌入到数据A包含的手写签名图片中;所述认证用户ID为在电子数据认证系统能唯一标识电子签名程序的用户的信息;所述认证时间即当前时间;所述认证用户ID由电子数据认证系统加入到数据A(必要时同认证结果一起返回给电子签名程序);所述电子数据认证系统是一个针对电子数据提供认证服务的系统,所述电子数据包括手写签名图片;
数据A除了包含手写签名图片,手写签名所确认的内容的散列值,认证用户ID,认证时间外,还允许数据A包含其他特定目的或用途的信息或数据(比如对确认内容的口头确认录音);
电子数据认证系统(使用私密数据,比如私钥)对待认证数据B进行认证,生成认证数据C,将认证数据C返回给电子签名程序(认证数据C不必包含待认证数据B);
电子签名程序利用手写签名图片及认证数据C,生成用户的(手写)电子签名,然后(通过一定的方式)将电子签名返回给应用程序或应用程序的服务端系统(应用服务端程序);电子签名中包含或不包含手写签名所确认的内容的散列值;电子签名中包含有除手写签名所确认的内容的散列值之外的生成待认证数据B所需的数据(比如用户图片、认证用户ID、认证时间等);电子签名包含数据的方式包括直接包含和/或间接包含,所述直接包含即包含的数据为电子签名数据的组成部分,所述间接包含指数据包含在手写签名图片中(比如以文字、图形、数字水印、条码、文字等形式);
所述认证数据C具有如下技术特性(可验证性及防伪防篡改性):
若一个数据W与待认证数据B相同且认证数据C未改变,则利用认证数据C对此数据W进行验证能通过,否则,验证不通过(哪怕待认证数据B和/或认证数据C的二进制数中只有一位改变也验证不通过);
电子数据认证系统在对手写签名进行认证前,对使用移动终端的用户进行身份鉴别。
为了限定手写签名图片只有经过认证后才有效,在手写签名图片中显示有此手写签名图片只有在经过电子认证后才有效之类的提示,或者手写签名图片中包含有此类信息,手写签名图片包含此类信息的方式包括数字水印、条码。
为了确保请求对手写签名进行认证的用户就是声称的用户,便于追踪到手写签名的真实签名者,电子数据认证系统绑定有(维护有)能唯一标识、确定电子签名程序用户身份的信息,比如身份证号、手机号。
应用程序将电子签名生成请求传递给用户移动终端中的电子签名程序的方式包括:
若应用程序与电子签名程序运行在不同计算装置中,则应用程序通过跨计算装置(Cross Device)信息和数据的传送方式将电子签名生成请求传递给电子签名程序;
若应用程序为与电子签名程序运行在同一个计算装置中的桌面应用程序和/或应用客户端程序,则应用程序通过同计算装置内信息和数据的传送方式将电子签名生成请求传递给电子签名程序。
除了以上所述手写签名图片、手写签名所确认的内容的散列值、认证用户ID、认证时间和认证数据C,电子签名中还可以直接或间接包含其他信息和数据,比如,用户在应用服务系统中的用户标识即应用用户ID、应用服务系统的应用标识(标识应用服务系统的信息)即应用服务ID、与手写签名确认的内容有关的信息,比如,订单ID、订单费用,用户对要确认内容的口头确认录音等,这些数据(比如,用户对要确认内容的口头确认录音)可以直接包含在电子签名数据中,或者包含在手写签名图片中从而间接包含在电子签名数据中,比如以数字水印形式嵌入到手写签名图片中;若电子签名包含用户对要确认内容的口头确认录音,则用户对要确认内容的口头确认录音(直接或间接)包含在待认证数据B中;与应用有关的信息,比如手写签名所确认的内容的散列值、用户在应用服务系统中的用户标识即应用用户ID、应用服务系统的应用标识即应用服务ID等,通过电子签名生成请求一起传递给电子签名程序。
若用户手写签名在应用程序的人机交互界面输入并由应用程序生成手写签名图片,则手写签名图片或者手写签名图片的获取信息随同电子签名生成请求一起传递给电子签名程序;若传递的是手写签名图片的获取信息(如图片获取URL),则电子签名程序利用获取信息获得手写签名图片(这时手写签名图片通常是存放在网上,获取信息通常是URL);
若有需要,电子签名程序在接收或获得的手写签名图片中加入额外信息(比如,应用标识即应用服务ID、用户在应用系统的标识即应用用户ID等)。
认证数据C为手写签名图片之外的电子签名构成数据(组成部分),或者将认证数据C添加(嵌入)到手写签名图片中;若在生成认证数据C后将其添加到到包含手写签名的图片中(比如,为了将电子签名的全部数据放到手写签名图片中),则包含手写签名的图片(数据)又包含两部分图片(数据),其中一部分为包含手写签名的图片部分即手写签名图片分块,包含手写签名的图片部分即手写签名图片分块为认证数据C所针对的手写签名图片部分,即生成待认证数据B时所使用的图片(数据),另一部分为用于额外数据携带的图片部分即额外数据携带图片分块,对额外数据携带图片部分即额外数据携带图片分块的图片数据的修改不会改变包含手写签名的图片部分即手写签名图片分块的图片数据(即包含手写签名的图片部分的像素数据不会改变);认证数据C被添加到额外数据携带图片分块;将认证数据C添加到额外数据携带图片分块的方式包括数字水印、条码、base64编码后的文字(手写签名图片分块和额外数据携带图片分块一起构成了一个完整的手写签名图片或为完整手写签名图片的组成部分)。
电子签名的各组成数据集中存放在一个数据结构中以单个数据的形式存放,或者不集中存放一个数据结构中而是作为多个数据分开存放。
当需要利用电子签名对一个手写签名所确认的内容进行验证,即验证待确认内容是否就是当初手写签名所确认的内容时,可采用如下方式进行验证:
若电子签名中不包含手写签名所确认的内容的散列值,则验证程序计算得到待验证确认的内容的散列值,利用从电子签名中获得的生成待认证数据B所需的数据,计算得到待验证确认的内容的散列值,按生成待认证数据B的方式生成数据B1,然后利用电子签名中包含的认证数据C1对待验证数据B1进行验证(通过或不通过);(名称为B1、C1是因为这些数据也许被改变了,或者是伪造的)
若电子签名中包含手写签名所确认的内容的散列值,则验证程序计算得到的待验证的手写签名所确认的内容的散列值,验证此计算得到散列值与电子签名中包含的手写签名所确认的内容的散列值是否相同,若不同,则验证不通过;若相同,则利用从电子签名中获得的生成待认证数据B所需的数据,按生成待认证数据B的方式生成数据B1,然后利用电子签名中包含的认证数据C1对待验证数据B1进行验证(通过或不通过);
若以上验证通过,则待验证确认的内容是当初手写签名所确认的内容。
以下为在以上所述电子签名方法基础上衍生的一种结合用户端数字签名的手写电子签名方法:
电子签名程序生成或获得包含用户手写签名的图片即手写签名图片,所生成的手写签名图片中还允许包含其他特定用途或目的信息(其中包括以文字、图形、数字水印、条码形式携带的信息);电子签名程序生成一个临时的用于数字签名的公开密钥对(任何有效的公钥签名算法的密钥对),其中公钥为Kpub、私钥为Kprv;
电子签名程序请求电子数据认证系统对手写签名进行认证,其中包含手写签名图片、公钥Kpub、认证用户ID、认证时间的数据A构成了待认证数据B;数据A包含手写签名图片、公钥Kpub、认证用户ID、认证时间的方式包括直接包含和/或间接包含;数据A直接和/或间接包含数据的含义同前所述;
数据A除了包含手写签名图片,公钥Kpub,认证用户ID,认证时间外,还允许数据A包含其他特定目的或用途的信息或数据(比如对确认内容的口头确认录音);
(注:此时数据A仍然可以包含手写签名所确认的内容的散列值H)
电子数据认证系统对待认证数据B进行认证,生成认证数据C,并将生成的认证数据C返回给电子签名程序;
在请求对手写签名进行认证之前或之后或同时,电子签名程序使用私钥Kprv对包含手写签名所确认的内容的散列值H的待签名数据D进行数字签名,得到签名值S(数字签名S);数字签名完成后私钥Kprv被丢弃;待签名数据D包含手写签名所确认的内容的散列值H的方式包括直接包含或间接包含;待签名数据D直接包含或间接包含数据的含义同数据A直接包含或间接包含数据的含义;
电子签名程序利用手写签名图片、签名值S以及认证数据C,生成用户的(手写)电子签名,然后将电子签名(通过一定的方式)返回给应用程序或应用程序的服务端系统(应用服务端程序);电子签名中包含或不包含手写签名所确认的内容的散列值H;电子签名中包含有除手写签名所确认的内容的散列值H之外的、生成待认证数据B和待签名数据D所需的数据(比如手写签名图片、公钥Kpub、认证用户ID、认证时间等);电子签名包含数据的方式包括直接包含和/或间接包含,所述直接包含即包含的数据为电子签名数据的组成部分,所述间接包含指数据包含在手写签名图片中(比如以图片数字水印、图形、条码、文字等形式);
签名值S是手写签名图片之外的电子签名中的数据,或者被(电子签名程序)添加到手写签名图片中(比如,为了将电子签名的全部数据放到一个图片中);
若签名值S被(电子签名程序)添加到手写签名图片中,则:
签名值S被添加到被认证的手写签名图片中(先填加签名值,后认证签名图片),
或者,手写签名图片分为包含手写签名的图片部分即手写签名图片分块,以及额外数据携带图片部分即额外数据携带图片分块,手写签名图片分块为构成待认证数据B的图片,额外数据携带图片分块用于携带手写签名之外的信息或数据,签名值S被添加、嵌入到额外数据携带图片分块;签名值S被添加、嵌入到额外数据携带图片分块的方式包括数字水印、条码、base64编码后的文字;
若认证数据C被添加到手写签名图片中,则认证数据C被添加、嵌入到额外数据携带图片分块的方式包括数字水印、条码、base64编码后的文字;
若电子签名中不包含手写签名所确认的内容的散列值,则当需要利用电子签名对一个手写签名所确认的内容进行验证时,验证程序计算得到待验证确认的内容的散列值H1,验证程序利用从电子签名中获得的生成待认证数据B所需的数据,按生成待认证数据B同样的方式,生成待验证数据B1,然后利用电子签名中包含的认证数据C1对待验证数据B1进行验证;验证通过后,利用计算得的散列值H1,按生成待签名数据D同样的方式生成包含散列值H1的待签名验证数据D1,然后利用从电子签名中获得的公钥Kpub验证电子签名中的签名值S1作为待签名验证数据D1的数字签名的有效性(通过或不通过);
若电子签名中包含手写签名所确认的内容的散列值,则当需要利用电子签名对一个手写签名所确认的内容进行验证时,验证程序计算得到待验证确认的内容的散列值H2,验证此计算得到散列值与电子签名中包含的手写签名所确认的内容的散列值H1是否相同,若不同,验证不通过;若相同,则利用从电子签名中获得的生成待认证数据B所需的数据,按生成待认证数据B同样的方式,生成待验证数据B1,然后利用电子签名中包含的认证数据C1对待验证数据B1进行验证;验证通过后,验证程序利用从电子签名中获得的手写签名所确认的内容的散列值H1,按生成待签名数据D同样的方式生成包含手写签名所确认的内容的散列值H1的待签名验证数据D1,然后利用从电子签名中获得的公钥Kpub验证电子签名中的签名值S1作为待签名验证数据D1的数字签名的有效性(通过或不通过);
若以上验证通过,则待验证确认的内容是当初手写签名所确认的内容。
以下为在以上所述手写电子签名方法基础上衍生的一种结合用户端标识签名的手写电子签名方法:
电子签名程序生成或获得包含用户手写签名的图片即手写签名图片,请求电子数据认证系统对手写签名进行认证,其中包含手写签名图片、认证用户ID、认证时间的数据A构成了待认证数据B;数据A包含手写签名图片、认证用户ID、认证时间的方式包括直接包含和/或间接包含;数据A直接和/或间接包含数据的含义同前所述;
数据A除了包含手写签名图片,公钥Kpub,认证用户ID,认证时间外,还允许数据A包含其他特定目的或用途的信息或数据(比如对确认内容的口头确认录音);
(注:此时数据A仍然可以包含手写签名所确认的内容的散列值)
电子数据认证系统对数据A进行认证,生成的认证数据C为电子数据认证系统以待认证数据B为标识所生成的标识签名私钥Kprv(任何一种有效的标识签名算法的私钥),待认证数据B即包含手写签名图片、认证用户ID、认证时间的数据A为标识签名私钥Kprv所对应的标识公钥Kpub;
电子签名程序使用私钥Kprv对包含手写签名所确认的内容的散列值H的待签名数据D进行数字签名,得到签名值S;数字签名完成后私钥Kprv、Kpub被丢弃(不包含在电子签名中);待签名数据D包含写签名所确认的内容的散列值H的方式包括直接包含或间接包含;待签名数据D直接包含或间接包含数据的含义同数据A直接包含或间接包含数据的含义;
电子签名程序利手写签名图片、签名值S,生成用户的电子签名,然后将电子签名返回给应用程序或应用程序的服务端系统(应用服务端程序);电子签名中包含或不包含手写签名所确认的内容的散列值H;电子签名中包含有除手写签名所确认的内容的散列值之外的生成待认证数据B和待签名数据D所需的数据(比如手写签名图片、认证用户ID、认证时间等);电子签名包含数据方式包括直接包含和/或间接包含,所述直接包含即包含的数据为电子签名数据的组成部分,所述间接包含指数据包含在手写签名图片中(比如以图片数字水印、图形、条码、文字等形式);
签名值S是手写签名图片之外的电子签名中的数据,或者被(电子签名程序)添加到手写签名图片中(比如,为了将电子签名的全部数据放到一个图片中);
若签名值S被(电子签名程序)添加到手写签名图片中,则手写签名图片分为包含手写签名的图片部分即手写签名图片分块,以及额外数据携带图片部分即额外数据携带图片分块,手写签名图片分块为构成待认证数据B的图片,额外数据携带图片分块用于携带手写签名之外的信息或数据,签名值S被添加、嵌入到额外数据携带图片分块;签名值S被添加、嵌入到额外数据携带图片分块的方式包括数字水印、条码、base64编码后的文字;
若电子签名中不包含手写签名所确认的内容的散列值,则当需要利用电子签名对待验证确认的内容进行验证时,验证程序利用从电子签名中获得的生成待认证数据B所需的数据,按生成待认证数据B同样的方式,生成待验证数据B1,验证程序计算得到待验证确认的内容的散列值H1,按生成包含手写签名所确认的内容的散列值H的待签名数据D同样的方式,生成包含计算得到的待验证的手写签名所确认的内容的散列值H1的待签名验证数据D1,以待验证数据B1作为标识公钥Kpub1,验证电子签名中的签名值S1作为待签名验证数据D1的数字签名的有效性(通过或不通过);
若电子签名中包含手写签名所确认的内容的散列值,则当需要利用电子签名对待验证确认的内容进行验证时,验证程序计算得到待验证确认的内容的散列值H2,验证此计算得到散列值与电子签名中包含的手写签名所确认的内容的散列值H1是否相同,若不同,验证不通过;若相同,则从电子签名中获得的生成待认证数据B所需的数据,按生成待认证数据B同样的方式,生成待验证数据B1,按生成包含手写签名所确认的内容的散列值的待签名数据D同样的方式,生成包含手写签名所确认的内容的散列值H1的待签名验证数据D1,以待验证数据B1作为标识公钥Kpub1,验证电子签名中的签名值S1作为待签名验证数据D1的数字签名的有效性(通过或不通过);
若以上验证通过,则待验证确认的内容是当初手写签名所确认的内容。
从以上发明内容并结合具体实施方式可以看到,基于本发明的技术方案,用户的手写签名通过认证数据(可选地,加上数字签名)与手写签名所确认的内容、认证用户ID、认证时间等信息绑定,这使得用户的手写签名图片不能重复使用,不能被冒用,而基于本发明的方案用户无需数字证书,即便衍生的采用了数字签名的方案也是如此,避免了现有技术方案存在的诸多问题;在本发明的方案中,手写签名是用于用户确认某项内容、某个结果的,提供了抗抵赖功能(只有用户自己才能签写),而认证数据(以及数字签名)是用于确保手写签名的真实性,使用的一次性,防止手写签名被重复使用、被盗用,以及防止对确认内容的伪造、篡改;此电子签名的另一好处是在用户知情、用户直接参与的情况下产生的,因为用户需要进行手写签名操作,用户无法说其不知情(这是目前基于数字证书的数字签名在实际应用中面临的一个问题)。
具体实施方式
下面对本发明的具体实施方式进行说明。以下内容仅是对本发明可能实施方式的说明,不作为对本发明保护范围的限制。
在具体实施中,需要用户手写签名的应用程序包括用户计算装置(如PC机、便携式电脑、手机、平板电脑)中运行的桌面应用程序如针对Word、PDF文档的处理程序,或者作为一个(网络)应用服务系统的客户端的应用客户端程序,或者作为一个(网络)应用服务系统的服务端的应用服务端程序。这里所说的桌面应用程序指仅需在用户计算装置本地执行本地程序代码就能提供完成应用功能的程序。
电子签名程序可实施为运行在用户移动终端(如手机、平板电脑中的)中的独立运行的程序,或者被独立运行的程序加载、调用的程序组件,其中独立运行的程序可以是在用户移动终端直接运行的程序(app),或者运行在微信客户端中运行的微信小程序,而被独立运行的程序调用的程序组件可以是SDK、动态库、类库等;若电子签名程序是微信小程序,则电子签名程序可以是在微信客户端中单独运行的微信小程序,或者被微信小程序加载调用的微信小程序插件、微信小程序脚本库(广义上都是微信小程序)。
在具体实施中,应用程序和电子签名运行所在计算装置可以是同一个,也可以不是同一个,若同一个,则应用程序也运行在用户移动终端。
在具体实施中,电子签名程序通过人机界面显示手写签名空白板,不必是一个空白的未包含任何信息的空白图片,可以包含其他信息,比如,比如签名提示信息,这里所说的手写签名空白板仅仅指用户尚未手写签名。电子签名程序生成的包含有用户手写签名的图片即手写签名图片,除了包含手写签名外,图片中还可以包含其他信息,这些其他信息可以是图片中显示的其他文字、图形,还可以是以数字水印、条码形式携带的其他信息,比如对确认内容的录音。
在具体实施中,电子签名程序请求电子数据认证系统对手写签名进行认证的过程中,形成包含手写签名图片、手写签名所确认的内容的散列值、认证用户ID、认证时间的数据A,通常由电子签名程序和电子数据认证系统共同完成,形成数据A通常需要电子数据认证系统参与这是因为认证用户ID由电子数据认证系统获取并包含在数据A中。
认证用户ID为在电子数据认证系统能唯一标识用户的信息,比如,用户在电子数据认证系统的帐户名,或用户帐户绑定的其他唯一标识用户的,比如,手机号、身份证号,或这些信息的散列值;若电子签名程序为微信小程序(独立运行的微信小程序或微信小程序插件或微信小程序脚本库),则认证用户ID可以是用户OpenID、UnionID、手机号或它们的散列值,用户手机号可以在用户初始使用时,由电子签名认证系统从微信用户信息中获得。
在具体实施中,数据A包含写签名图片、手写签名所确认的内容的散列值、认证用户ID、认证时间的方式,包括直接包含和间接包含两种方式,所谓直接包含指这些数据为数据A的组成部分,比如,若签名图片、手写签名所确认的内容的散列值、认证用户ID、认证时间直接作为数据A的组成成分,合并后直接包含在数据A中;所谓间接包含,指从这些数据中的一项或多项计算得到的数据作为数据A的组成部分包含在数据A中或者构成了数据A,比如,签名图片的散列值、手写签名所确认的内容的散列值、认证用户ID、认证时间作为数据A的组成成分,合并后直接包含在数据A中,再比如,签名图片、手写签名所确认的内容的散列值、认证用户ID、认证时间合并后的数据的散列值作为数据A(即构成了数据A),再比如,签名图片的散列值、手写签名所确认的内容的散列值、认证用户ID、认证时间合并后的数据的散列值作为数据A(即构成了数据A);数据A间接包含一项或多项数据的情形还包括将这一项或几项数据添加或嵌入(比如以文字、数字水印、条码等形式)到手写签名图片中。形成了数据A即形成了待认证数据B。
在具体实施中,数据A除了包含手写签名图片、手写签名所确认的内容或其散列值、用户微信标识、认证时间外,还可以包含其他信息、其他数据,比如,对手写签名确认内容的口头确认录音,当然,这些数据也可以以其他形式(如数字水印、条码、文字)包含在手写签名图片中。
若用户手写在应用程序的人机交互界面输入并由应用程序生成手写签名图片,则手写签名图片或者手写签名图片的获取信息随同电子签名生成请求一起传递给电子签名程序;若传递的是手写签名图片的获取信息(如获取URL),则电子签名程序利用获取信息获得手写签名图片,这时手写签名图片可以存放在网上,比如应用服务系统服务端或电子数据认证系统服务端提供的临时图片存放位置,获取信息通常是URL。
若有需要,电子签名程序在接收或获得的手写签名图片中加入额外信息(比如,应用标识即应用服务ID、用户在应用系统的标识即应用用户ID等)。
关于认证数据C的具体实施方式,显然,公钥数字签名的签名结果(签名值)可以作为认证数据C(认证数据C不必包含待认证数据B),其中的数字签名算法可以是任何有效的、安全的数字签名算法。除了数字签名,其他满足认证数据特性要求的方式也可以作为认证数据,比如,电子数据认证系统为一个标识私钥生成系统,以待认证数据B作为标识,生成标识对应的私钥dB(签名私钥或解密私钥),然后以标识签名私钥dB作为认证数据C;利用认证数据C对一个待验证数据W进行验证,即以待验证数据W作为标识,验证认证数据C是否是待验证数据W对应的标识私钥。这里标识密码算法可以是任何有效的、安全的标识密码算法,包括标识数字签名算法、标识数据加密算法。当然,认证数据C的实施还可以采用其他方式,只要满足方案规定的特性要求。
如果认证数据C采用公钥数字签名,那么,利用认证数据C对待验证数据进行验证,需要使用签名私钥对应的公钥,此时,如何获得公钥属于本发明之外的事情,比如验证方预先有、电子签名中有公钥获取地址等。同样地,如果认证数据C采用标识私钥生成的方式,利用认证数据C对待验证数据进行验证,需要需要使用一些公开参数,如主公钥,如何获得这些公开参数属于本发明之外的事情,比如验证方预先有、电子签名中有公开参数获取地址等。
在具体实施中,电子签名中可以包含,也可以不包含手写签名所确认的内容的散列值,二者是等价的,只是在使用电子签名对待验证确认的内容进行验证时的验证方式有所不同;电子签名中包含有除手写签名所确认的内容的散列值之外的生成待认证数据B所需的数据;电子签名包含数据的方式包括直接包含和/或间接包含,所述直接包含即包含的数据为电子签名数据的组成部分,所述间接包含指数据包含在手写签名图片中(比如以数字水印、图形、条码、文字等形式)。
具体实施中,除了包含手写签名图片、包含手写签名所确认的内容的散列值、认证用户ID、认证时间和认证数据C外,电子签名中还可以包含其他信息和数据,比如,用户在应用服务系统中的用户标识(即应用用户ID)、应用服务系统的应用标识(标识应用服务系统的信息,即应用服务ID)、与手写签名确认的内容有关的信息,比如,订单ID、订单费用,用户对手写签名所确认的内容的口头确认录音等,可以作为数据直接包含在电子签名数据中,或者包含在手写签名图片中,比如以数字水印形式嵌入到手写签名图片中。若电子签名中包含用户对手写签名所确认的内容的口头确认录音,则用户对要确认内容的口头确认录音或其散列值包含在待认证数据B中。
在具体实施中,与应用有关的信息,如手写签名所确认的内容的散列值、用户在应用服务系统中的用户标识(应用用户ID)、应用服务系统的应用标识(应用服务ID)等,通过电子签名生成请求一起传递给电子签名程序。
在具体实施中,认证数据C可以作为手写签名图片之外的数据存在于电子签名数据中,也可以将认证数据C添加到手写签名图片中。若在生成认证数据C后将其添加到到包含手写签名的图片中(比如,为了将电子签名的全部数据放到一个图片中),则包含手写签名的图片又包含两部分图片(数据),其中一部分为包含手写签名的图片部分即手写签名图片分块,包含手写签名的图片部分即手写签名图片分块(数据)为认证数据C所针对手写签名图片(数据),即生成待认证数据B时所使用的图片(数据),另一部分为额外数据携带图片部分即额外数据携带图片分块,对额外数据携带图片部分即额外数据携带图片分块的修改不会改变包含手写签名的图片部分即手写签名图片分块的数据(即包含手写签名的图片部分的像素数据不会改变,哪怕是二进制数的一位),而认证数据C被添加到额外数据携带图片分块;将认证数据C添加到额外数据携带图片分块的方式包括数字水印、条码、base64编码后的文字(包含手写签名的图片部分和额外数据携带图片部分一起构成了一个完整的手写签名图片,或者为完整手写签名图片的组成部分);此时,需要对两部分图片进行分界,这个分界信息可以是任何能够将图片进行分界(分块)的信息,比如,图片数据中的前多少字节属于包含手写签名的图片部分(手写签名图片部分),余下的为额外数据携带携带图片部分,这些界定信息可以包含在图片中,也可以作为图片之外的数据包含在电子签名数据中。
电子数据认证系统在对手写签名进行认证前,对使用移动终端的用户的身份鉴别可以采用任何与安全要求相符合的鉴别方式;若电子签名程序为微信小程序,则在满足安全要求的情况下,最简单方式是通过获取微信小程序用户的OpenID或UnionID的方式来鉴别用户,即利用微信系统对用户的鉴别来进行用户身份鉴别。
为了确保手写签名用户就是声称的用户,便于追踪到手写签名的真实签名者,电子签名程序用户在电子数据认证系统绑定有手机号或其他能唯一标识、确定用户端信息,在具体实施中,可以在用户初次使用电子签名程序进行手写签名时,由电子签名程序在得到用户允许后从用户移动终端中获取,比如,若电子签名程序是微信小程序,则可以在得到用户允许后从用户信息中获取,或者通过其他方式获得,比如,由用户输入手机号或其他其他能唯一标识、确定用户端信息(如身份证号),然后通过一定的方式验证;用户的手机号或其他能唯一标识、确定用户端信息,与认证用户ID绑定,保存在电子数据认证系统的用户数据库中。
在具体实施中,应用程序将电子签名生成请求传递给电子签名程序传递给用户移动终端中的电子签名程序的方式同应用程序和电子签名程序是否运行在不同计算装置中有关,若应用程序与电子签名程序运行在不同计算装置中,则应用程序通过跨计算装置(Cross Device)信息和数据传送方式将电子签名生成请求传递给电子签名程序;若应用程序与电子签名程序运行在同一个计算装置中(比如,同一装置中的桌面应用程序或应用客户端程序),则应用程序通过同计算装置内信息和数据的传送方式将电子签名生成请求传递给电子签名程序。
具体地,若应用程序与电子签名程序运行在不同计算装置中,则应用程序通过跨计算装置(Cross Device)信息和数据传送方式将电子签名生成请求传递给电子签名程序的方式包括:
应用程序在手写签名图片中显示条码(此时手写签名图片由应用程序产生)或另一个图片中的条码(如二维码、多维码),通过用户扫码方式(比如微信扫码),启动电子签名程序(比如微信小程序)将电子签名生成请求传递给电子签名程序;
或者,应用客户端程序通过其服务端程序或系统向用户移动终端(如手机)发送短信,通过短信中的URL Schema启动用户移动终端中的电子签名程序,将电子签名生成请求传递给电子签名程序。
若应用程序与电子签名程序运行在同一个计算装置中,则应用程序通过同计算装置内信息和数据的传送方式将电子签名生成请求(以及必要时将手写签名图片)传递给电子签名程序的方式包括:
应用程序为与电子签名程序运行在一个用户移动终端中的单独运行程序(app),应用程序通过同计算装置内启动电子签名程序、向电子签名程序传送数据的方式,启动电子签名程序(比如app、微信小程序),将电子签名生成请求传递给电子签名程序;
或者,应用程序为与电子签名程序运行在一个用户移动终端中的应用客户端程序,则应用程序通过其服务端程序或系统(程序)向用户移动终端(如手机)发送短信,通过短信中的URL Schema启动用户移动终端中的电子签名程序,将电子签名生成请求传递给电子签名程序;
或者,应用程序和电子签名程序都是用户移动终端中的微信小程序,应用程序通过微信小程序之间传送数据的方式,将电子签名生成请求传递给电子签名程序;
或者,应用程序是用户移动终端中的独立运行程序(app、微信小程序),电子签名程序是被应用程序调用的程序组件(比如SDK、类库、微信小程序插件、微信小程序代码库),应用程序向调用的程序组件传送数据的方式,将电子签名生成请求以及手写签名图片传递给电子签名程序。
对于衍生的结合了用户端数字签名的电子签名方法的实施,其中认证数据C的实施,同基本方法的实施一样,可以采用公钥数字签名算法对待认证数据B进行签名得到认证数据C,也可以采用标识私钥生成方式,以待认证数据B作为标识生成标识私钥,以生成的标识私钥作为认证数据C,当然,还可以采用其他方式,只要满足方案规定的对认证数据C的特性要求。电子签名程序生成、使用的对包含手写签名所确认的内容的数据D进行数字签名的临时密钥对所对应的数字签名算法,可以是任何有效的公钥签名算法,比如SM2、ECDSA、RSA算法;在生成的电子签名所包含的数据及形式方面的实施,除了此时还包含签名值S外,其他方面的实施与前面基本方案相同。
在衍生的结合了用户端数字签名的电子签名方法的实施中,签名值S是手写签名图片之外的电子签名中的数据,或者被(电子签名程序)添加到手写签名图片中(比如,为了将电子签名的全部数据放到一个图片中);若签名值S被(电子签名程序)添加到手写签名图片中,则具体实施中,签名值S在手写签名图片被认证前被添加到手写签名图片中,或者,手写签名图片分为包含手写签名的图片部分即手写签名图片分块,以及额外数据携带图片部分即额外数据携带图片分块,手写签名图片分块为构成待认证数据B(即数据A)的图片,额外数据携带图片分块用于携带手写签名之外的信息或数据,签名值S被添加、嵌入到额外数据携带图片分块;签名值S被添加、嵌入到额外数据携带图片分块的方式包括数字水印、条码、base64编码后的文字。
对于本发明的结合用户端标识签名的手写电子签名方法,以待认证数据B为标识,即标识公钥Kpub,生成标识所对应的签名私钥Kprv,即实现了对待认证数据B进行认证,Kprv即为生成的认证数据C,因为Kprv满足认证数据的特性要求,此时,标识私钥Kprv未作为一个认证数据C包含在电子签名中,其对应的公钥Kpub也未包含在电子签名中;标识签名私钥Kprv对包含手写签名所确认的内容的待签名数据D进行签名,得到签名值S,并将签名值S保存在电子签名中;在具体实施中,所采用的基于标识的数字签名算法可以是任何安全有效的标识签名算法,比如,SM9等;电子签名包含的数据方面的实施,除了不包含认证数据C、包含签名值S外,其他方面的实施与前面基本方案相同。
在本发明的结合用户端标识签名的手写电子签名方法的实施中,签名值S是手写签名图片之外的电子签名中的数据,或者被(电子签名程序)添加到手写签名图片中(比如,为了将电子签名的全部数据放到一个图片中);若签名值S被(电子签名程序)添加到手写签名图片中,则手写签名图片分为包含手写签名的图片部分即手写签名图片分块,以及额外数据携带图片部分即额外数据携带图片分块,手写签名图片分块为构成待认证数据B的图片,额外数据携带图片分块用于携带手写签名之外的信息或数据,签名值S被添加、嵌入到额外数据携带图片分块;签名值S被添加、嵌入到额外数据携带图片分块的方式包括数字水印、条码、base64编码后的文字。
在具体实施中,为了限定手写签名图片的使用,在手写签名图片中显示有此手写签名图片只有在经过电子认证后才有效之类的提示(比如提示文字),或者手写签名图片中包含有此类信息,手写签名图片包含此类信息的方式包括数字水印、条码。若这类提示信息位于认证数据C所针对的手写签名图片(部分),则在生成待认证数据B之前将提示信息加入手写签名图片;若同时采用用户端数字签名且显示的信息位于用户端数字签名所覆盖的图片区域,则在进行用户端数字签名前将提示信息加入手写签名图片。
本发明实施中,电子签名数据包含的信息或数据可以全部包含在一个图片中,也可以部分包含在图片中,部分作为在图片之外的电子签名数据;若电子签名数据包含的信息或数据部分包含在图片中,部分在图片外,则电子签名的各组成数据集中存放在一个数据结构中以单个数据的形式存放,或者不集中存放一个数据结构中作为多个数据分开存放,通常与具体应用有关,比如,本发明的一个应用是对一个结构化文本文档比如Word、PDF文档中的内容进行手写签名,若电子签名数据包含的信息或数据全部包含在图片中,则电子签名以图片的形式添加到结构化文本文档比如Word、PDF文档中;若电子签名数据包含的信息或数据部分包含在图片中,部分在图片外,则可以将电子签名数据的图片和图片外的数据分别存放在结构化文本文档的手写签名针对的受保护的内容之外的地方,其中图片在文档作为可显示数据,而图片外的其他电子签名数据作为隐藏数据包含在文本文档中。再比如,若手写签名针对的应用是一个网络应用,手写签名用于对应用中的数据进行确认,则无论电子签名数据是否都包含在一个手写签名图片中,此时电子签名数据都可以集中存放。
其他未说明的具体技术实施,对于相关领域的技术人员而言是众所周知,不言自明的。

Claims (9)

1.一种手写电子签名方法,其特征是:
当需要用户手写签名时,应用程序将电子签名生成请求传递给用户移动终端中的电子签名程序;所述应用程序包括桌面应用程序和应用服务程序或系统;所述桌面应用程序指仅需在用户计算装置本地执行本地程序代码就能提供完成应用功能的程序;所述应用服务程序或系统是一个通过网络提供服务功能的程序或系统,其中又包括应用服务端程序或系统以及应用客户端程序;所述电子签名程序是运行在用户移动终端中的程序;所述电子签名程序是一个单独运行的程序,或者被一个单独运行的程序加载运行的程序组件;所述单独运行的程序包括在移动终端中单独运行的应用程序、微信客户端中单独运行的微信小程序;若电子签名程序为微信小程序,则微信小程序包括微信客户端中单独运行的微信小程序、微信小程序插件或微信小程序库;
电子签名程序通过人机界面显示手写签名空白板,所述手写签名空白板是一个尚未输入用户手写签名的人机界面;
用户在空白板上手写签名并提交;
电子签名程序生成包含有用户手写签名的图片即手写签名图片,所生成的手写签名图片中还允许包含其他特定用途或目的信息;
电子签名程序请求电子数据认证系统对手写签名进行认证,其中包含手写签名图片、手写签名所确认的内容的散列值、认证用户ID、认证时间的数据A构成了待认证数据B;数据A包含写签名图片、手写签名所确认的内容的散列值、认证用户ID、认证时间的方式包括直接包含和/或间接包含,数据A直接包含一项数据或多项指这一项或多项数据为数据A的组成部分,数据A间接包含一项或多项数据是指利用这一项或这几项数据计算得到的数据为数据A的组成部分或构成了数据A;所述多项指多于一项;数据A间接包含一项或多项数据的情形还包括将这一项或几项数据添加或嵌入到数据A包含的手写签名图片中;所述认证用户ID为在电子数据认证系统能唯一标识电子签名程序的用户的信息;所述认证时间即当前时间;所述认证用户ID由电子数据认证系统加入到数据A;所述电子数据认证系统是一个针对电子数据提供认证服务的系统,所述电子数据包括手写签名图片;
数据A除了包含手写签名图片,手写签名所确认的内容的散列值,认证用户ID,认证时间外,还允许数据A包含其他特定目的或用途的信息或数据;
电子数据认证系统对待认证数据B进行认证,生成认证数据C,将认证数据C返回给电子签名程序;
电子签名程序利用手写签名图片及认证数据C,生成用户的电子签名,然后将电子签名返回给应用程序或应用程序的服务端系统;电子签名中包含或不包含手写签名所确认的内容的散列值;电子签名中包含有除手写签名所确认的内容的散列值之外的生成待认证数据B所需的数据;电子签名包含数据的方式包括直接包含和/或间接包含,所述直接包含即包含的数据为电子签名数据的组成部分,所述间接包含指数据包含在手写签名图片中;
所述认证数据C具有如下技术特性:
若一个数据W与待认证数据B相同且认证数据C未改变,则利用认证数据C对此数据W进行验证能通过,否则,验证不通过;
电子数据认证系统在对手写签名进行认证前,对使用移动终端的用户进行身份鉴别。
2.根据权利要求1所述的手写电子签名方法,其特征是:
在手写签名图片中显示有此手写签名图片只有在经过电子认证后才有效或表达相同含义的提示,或者手写签名图片中包含有前述信息,手写签名图片包含此类信息的方式包括数字水印、条码。
3.根据权利要求1所述的手写电子签名方法,其特征是:
应用程序将电子签名生成请求传递给用户移动终端中的电子签名程序的方式包括:
若应用程序与电子签名程序运行在不同计算装置中,则应用程序通过跨计算装置信息和数据的传送方式将电子签名生成请求传递给电子签名程序;
若应用程序为与电子签名程序运行在同一个计算装置中的桌面应用程序和/或应用客户端程序,则应用程序通过同计算装置内信息和数据的传送方式将电子签名生成请求传递给电子签名程序。
4.根据权利要求1所述的手写电子签名方法,其特征是:
除了以上所述手写签名图片、手写签名所确认的内容的散列值、认证用户ID、认证时间和认证数据C,电子签名中还直接或间接包含其他信息和数据,所述其他数据包括:用户在应用服务系统中的用户标识即应用用户ID、应用服务系统的应用标识即应用服务ID以及与手写签名确认的内容有关的信息;所述与手写签名确认的内容有关的信息包括:订单ID、订单费用、用户对要确认内容的口头确认录音;若电子签名包含用户对要确认内容的口头确认录音,则用户对要确认内容的口头确认录音包含在待认证数据B中;与应用有关的信息,比如手写签名所确认的内容的散列值、用户在应用服务系统中的用户标识即应用用户ID、应用服务系统的应用标识即应用服务ID等,通过电子签名生成请求一起传递给电子签名程序。
5.根据权利要求1所述的手写电子签名方法,其特征是:
若用户手写签名在应用程序的人机交互界面输入并由应用程序生成手写签名图片,则手写签名图片或者手写签名图片的获取信息随同电子签名生成请求一起传递给电子签名程序;若传递的是手写签名图片的获取信息,则电子签名程序利用获取信息获得手写签名图片;
若有需要,电子签名程序在接收或获得的手写签名图片中加入额外信息。
6.根据权利要求1所述的手写电子签名方法,其特征是:
认证数据C为手写签名图片之外的电子签名构成数据,或者将认证数据C添加到手写签名图片中;若在生成认证数据C后将其添加到到包含手写签名的图片中,则包含手写签名的图片又包含两部分图片,其中一部分为包含手写签名的图片部分即手写签名图片分块,包含手写签名的图片部分即手写签名图片分块为认证数据C所针对的手写签名图片部分,即生成待认证数据B时所使用的图片,另一部分为用于额外数据携带的图片部分即额外数据携带图片分块,对额外数据携带图片部分即额外数据携带图片分块的图片数据的修改不会改变包含手写签名的图片部分即手写签名图片分块的图片数据;认证数据C被添加到额外数据携带图片分块;将认证数据C添加到额外数据携带图片分块的方式包括数字水印、条码、base64编码后的文字。
7.根据权利要求1所述的手写电子签名方法,其特征是:
当需要利用电子签名对一个手写签名所确认的内容进行验证,即验证待确认内容是否就是当初手写签名所确认的内容时,验证程序按如下方式进行验证:
若电子签名中不包含手写签名所确认的内容的散列值,则验证程序计算得到待验证确认的内容的散列值,利用从电子签名中获得的生成待认证数据B所需的数据,计算得到待验证确认的内容的散列值,按生成待认证数据B的方式生成数据B1,然后利用电子签名中包含的认证数据C1对待验证数据B1进行验证;
若电子签名中包含手写签名所确认的内容的散列值,则验证程序计算得到的待验证的手写签名所确认的内容的散列值,验证此计算得到散列值与电子签名中包含的手写签名所确认的内容的散列值是否相同,若不同,则验证不通过;若相同,则利用从电子签名中获得的生成待认证数据B所需的数据,按生成待认证数据B的方式生成数据B1,然后利用电子签名中包含的认证数据C1对待验证数据B1进行验证;
若以上验证通过,则待验证确认的内容是当初手写签名所确认的内容。
8.一种在权利要求1-7中任一项所述的手写电子签名方法的基础上衍生的结合用户端数字签名的手写电子签名方法,其特征是:
电子签名程序生成或获得包含用户手写签名的图片即手写签名图片,所生成的手写签名图片中还允许包含其他特定用途或目的信息;电子签名程序生成一个临时的用于数字签名的公开密钥对,其中公钥为Kpub、私钥为Kprv;
电子签名程序请求电子数据认证系统对手写签名进行认证,其中包含手写签名图片、公钥Kpub、认证用户ID、认证时间的数据A构成了待认证数据B;数据A包含手写签名图片、公钥Kpub、认证用户ID、认证时间的方式包括直接包含和/或间接包含;数据A直接和/或间接包含数据的含义同前所述;
数据A除了包含手写签名图片,公钥Kpub,认证用户ID,认证时间外,还允许数据A包含其他特定目的或用途的信息或数据;
电子数据认证系统对待认证数据B进行认证,生成认证数据C,并将生成的认证数据C返回给电子签名程序;
在请求对手写签名进行认证之前或之后或同时,电子签名程序使用私钥Kprv对包含手写签名所确认的内容的散列值H的待签名数据D进行数字签名,得到签名值S;数字签名完成后私钥Kprv被丢弃;待签名数据D包含手写签名所确认的内容的散列值H的方式包括直接包含或间接包含;待签名数据D直接包含或间接包含数据的含义同数据A直接包含或间接包含数据的含义;
电子签名程序利用手写签名图片、签名值S以及认证数据C,生成用户的电子签名,然后将电子签名返回给应用程序或应用程序的服务端系统;电子签名中包含或不包含手写签名所确认的内容的散列值H;电子签名中包含有除手写签名所确认的内容的散列值H之外的、生成待认证数据B和待签名数据D所需的数据;电子签名包含数据的方式包括直接包含和/或间接包含,所述直接包含即包含的数据为电子签名数据的组成部分,所述间接包含指数据包含在手写签名图片中;
签名值S是手写签名图片之外的电子签名中的数据,或者被添加到手写签名图片中;
若签名值S被添加到手写签名图片中,则:
签名值S被添加到被认证的手写签名图片中,
或者,手写签名图片分为包含手写签名的图片部分即手写签名图片分块,以及额外数据携带图片部分即额外数据携带图片分块,手写签名图片分块为构成待认证数据B的图片,额外数据携带图片分块用于携带手写签名之外的信息或数据,签名值S被添加、嵌入到额外数据携带图片分块;签名值S被添加、嵌入到额外数据携带图片分块的方式包括数字水印、条码、base64编码后的文字;
若认证数据C被添加到手写签名图片中,则认证数据C被添加、嵌入到额外数据携带图片分块的方式包括数字水印、条码、base64编码后的文字;
若电子签名中不包含手写签名所确认的内容的散列值,则当需要利用电子签名对一个手写签名所确认的内容进行验证时,验证程序计算得到待验证确认的内容的散列值H1,验证程序利用从电子签名中获得的生成待认证数据B所需的数据,按生成待认证数据B同样的方式,生成待验证数据B1,然后利用电子签名中包含的认证数据C1对待验证数据B1进行验证;验证通过后,利用计算得的散列值H1,按生成待签名数据D同样的方式生成包含散列值H1的待签名验证数据D1,然后利用从电子签名中获得的公钥Kpub验证电子签名中的签名值S1作为待签名验证数据D1的数字签名的有效性;
若电子签名中包含手写签名所确认的内容的散列值,则当需要利用电子签名对一个手写签名所确认的内容进行验证时,验证程序计算得到待验证确认的内容的散列值H2,验证此计算得到散列值与电子签名中包含的手写签名所确认的内容的散列值H1是否相同,若不同,验证不通过;若相同,则利用从电子签名中获得的生成待认证数据B所需的数据,按生成待认证数据B同样的方式,生成待验证数据B1,然后利用电子签名中包含的认证数据C1对待验证数据B1进行验证;验证通过后,验证程序利用从电子签名中获得的手写签名所确认的内容的散列值H1,按生成待签名数据D同样的方式生成包含手写签名所确认的内容的散列值H1的待签名验证数据D1,然后利用从电子签名中获得的公钥Kpub验证电子签名中的签名值S1作为待签名验证数据D1的数字签名的有效性;
若以上验证通过,则待验证确认的内容是当初手写签名所确认的内容。
9.一种在权利要求1-7中任一项所述的手写电子签名方法的基础上衍生的结合用户端标识签名的手写电子签名方法,其特征是:
电子签名程序生成或获得包含用户手写签名的图片即手写签名图片,请求电子数据认证系统对手写签名进行认证,其中包含手写签名图片、认证用户ID、认证时间的数据A构成了待认证数据B;数据A包含手写签名图片、认证用户ID、认证时间的方式包括直接包含和/或间接包含;数据A直接和/或间接包含数据的含义同前所述;
数据A除了包含手写签名图片,公钥Kpub,认证用户ID,认证时间外,还允许数据A包含其他特定目的或用途的信息或数据;
电子数据认证系统对数据A进行认证,生成的认证数据C为电子数据认证系统以待认证数据B为标识所生成的标识签名私钥Kprv,待认证数据B即包含手写签名图片、认证用户ID、认证时间的数据A为标识签名私钥Kprv所对应的标识公钥Kpub;
电子签名程序使用私钥Kprv对包含手写签名所确认的内容的散列值H的待签名数据D进行数字签名,得到签名值S;数字签名完成后私钥Kprv、Kpub被丢弃;待签名数据D包含写签名所确认的内容的散列值H的方式包括直接包含或间接包含;待签名数据D直接包含或间接包含数据的含义同数据A直接包含或间接包含数据的含义;
电子签名程序利手写签名图片、签名值S,生成用户的电子签名,然后将电子签名返回给应用程序或应用程序的服务端系统;电子签名中包含或不包含手写签名所确认的内容的散列值H;电子签名中包含有除手写签名所确认的内容的散列值之外的生成待认证数据B和待签名数据D所需的数据;电子签名包含数据方式包括直接包含和/或间接包含,所述直接包含即包含的数据为电子签名数据的组成部分,所述间接包含指数据包含在手写签名图片中;
签名值S是手写签名图片之外的电子签名中的数据,或者被添加到手写签名图片中;
若签名值S被添加到手写签名图片中,则手写签名图片分为包含手写签名的图片部分即手写签名图片分块,以及额外数据携带图片部分即额外数据携带图片分块,手写签名图片分块为构成待认证数据B的图片,额外数据携带图片分块用于携带手写签名之外的信息或数据,签名值S被添加、嵌入到额外数据携带图片分块;签名值S被添加、嵌入到额外数据携带图片分块的方式包括数字水印、条码、base64编码后的文字;
若电子签名中不包含手写签名所确认的内容的散列值,则当需要利用电子签名对待验证确认的内容进行验证时,验证程序利用从电子签名中获得的生成待认证数据B所需的数据,按生成待认证数据B同样的方式,生成待验证数据B1,验证程序计算得到待验证确认的内容的散列值H1,按生成包含手写签名所确认的内容的散列值H的待签名数据D同样的方式,生成包含计算得到的待验证的手写签名所确认的内容的散列值H1的待签名验证数据D1,以待验证数据B1作为标识公钥Kpub1,验证电子签名中的签名值S1作为待签名验证数据D1的数字签名的有效性;
若电子签名中包含手写签名所确认的内容的散列值,则当需要利用电子签名对待验证确认的内容进行验证时,验证程序计算得到待验证确认的内容的散列值H2,验证此计算得到散列值与电子签名中包含的手写签名所确认的内容的散列值H1是否相同,若不同,验证不通过;若相同,则从电子签名中获得的生成待认证数据B所需的数据,按生成待认证数据B同样的方式,生成待验证数据B1,按生成包含手写签名所确认的内容的散列值的待签名数据D同样的方式,生成包含手写签名所确认的内容的散列值H1的待签名验证数据D1,以待验证数据B1作为标识公钥Kpub1,验证电子签名中的签名值S1作为待签名验证数据D1的数字签名的有效性;
若以上验证通过,则待验证确认的内容是当初手写签名所确认的内容。
CN202310385226.7A 2023-04-12 2023-04-12 手写电子签名方法 Pending CN116842579A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310385226.7A CN116842579A (zh) 2023-04-12 2023-04-12 手写电子签名方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310385226.7A CN116842579A (zh) 2023-04-12 2023-04-12 手写电子签名方法

Publications (1)

Publication Number Publication Date
CN116842579A true CN116842579A (zh) 2023-10-03

Family

ID=88167751

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310385226.7A Pending CN116842579A (zh) 2023-04-12 2023-04-12 手写电子签名方法

Country Status (1)

Country Link
CN (1) CN116842579A (zh)

Similar Documents

Publication Publication Date Title
US11323272B2 (en) Electronic identification verification methods and systems with storage of certification records to a side chain
US8085445B2 (en) Method to certify facsimile transmissions
US20110231645A1 (en) System and method to validate and authenticate digital data
US20040003248A1 (en) Protection of web pages using digital signatures
US20110289318A1 (en) System and Method for Online Digital Signature and Verification
CN111213139A (zh) 基于区块链的无纸化文档处理
CN111226249A (zh) 基于区块链的可信平台
US20040250070A1 (en) Authentication of electronic documents
US20010034835A1 (en) Applied digital and physical signatures over telecommunications media
US20040139327A1 (en) System and method for document-driven processing of digitally-signed electronic documents
CN111108522A (zh) 基于区块链的传票送达
JP2003244139A (ja) 電子文書に対するタイムスタンプ押印システム、及び、そのプログラム媒体
US7606768B2 (en) Voice signature with strong binding
CN115398857A (zh) 基于区块链的争议解决
CN105635187B (zh) 带印模的电子文件的生成方法与装置、认证方法与装置
CN112165382B (zh) 软件授权方法、装置、授权服务端及终端设备
US20080148054A1 (en) Secure Signatures
US20130138965A1 (en) Control method, program and system for link access
WO2007034255A1 (en) Method, apparatus and system for generating a digital signature linked to a biometric identifier
CN107229879A (zh) 基于安全二维码的电子询证函自动生成方法及系统
CN110569672A (zh) 一种基于移动设备的高效可信电子签名系统及方法
CN113934993A (zh) 一种基于电子手写签字技术的电子印章
US7739500B2 (en) Method and system for consistent recognition of ongoing digital relationships
CN106559433B (zh) 利用数字证书固定电子证据和用户身份的方法及系统
CN115396117A (zh) 基于区块链预防篡改的电子文书签署、校验方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination