(基础数学专业论文)数字签名技术在二维条码中的应用.pdf_第1页
(基础数学专业论文)数字签名技术在二维条码中的应用.pdf_第2页
(基础数学专业论文)数字签名技术在二维条码中的应用.pdf_第3页
(基础数学专业论文)数字签名技术在二维条码中的应用.pdf_第4页
(基础数学专业论文)数字签名技术在二维条码中的应用.pdf_第5页
已阅读5页,还剩76页未读 继续免费阅读

(基础数学专业论文)数字签名技术在二维条码中的应用.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ab s tra c t ab s t r a c t t h e m a in p u r p o s e o f t h i s t h e s i s i s t o u s e p r i n c i p l e s o f t h e p d f 4 1 7 b a r c o d e d e s i g n i n g a n d r s a c o m m o n k e y p a s s w o r d s y s t e m s y n t h e t i c a l l y g i v i n g a d i g i t a l s i g n a t u r e p r o j e c t b a s e d o n 2 d b a r c o d e . t h e w h o l e t h e s i s c o n s i s t s o f f o u r p a r t s . i n t h e fi r s t p a rt ,s t u d i e s t h e t e c h n o l o g y o f d i g i t a l s i g n a t u r e , t h e n h a v e a f u r t h e r d i s s c u s s i o n o n i t s m e s s a g e a b s t r a c t a l g o r it h m m d 5 a n d r s a c o m m o n k e y s y s t e m . a d o p t e d r s a c o m m o n k e y p a s s w o r d s y s t e m e s t a b l i s h e s a d i g i t a l s i g n a t u r e p r o j e c t , re a l i z e s r e l a t e d p r o c e d u r e m a k i n g a n d s o f tw a r e d e s i g n i n g . i n i t s s e c o n d p a rt ,t h e p a p e r s t u d i e s t h e b a s i c p r i n c i p l e s o f t h e p d f 4 1 7 b a r c o d e d e s i g n i n g a n d t h e re a l i z e d m e t h o d .a c c r o d i n g t o t h e c o d e c o m p re s s i o n r u l e o f p d f 4 1 7 b a r c o d e , re a l i z e d t h e c o m p r e s s i o n o f t h e b a r c o d e i n f o r m a t i o n , f o r m e d c o r r e s b o n d 吨 2 d b a r c o d e ; g i v e s a s y s t e m f o r t h e f o r m a t i o n o f re l a t e d b a r c o d e . t h i r d l y , d i s c u s s e s r e e d - s o lo m o n e r r o r - c o r r e c t i n g c o d e , s i m p l e p i c t u re id e n t i fi c a t i o n a n d t h e d e c o d i n g p r o c e s s .t h i s p a rt s r e a l i z i t i o n d e p o n d o n t h e s y m b o l c o m p a n y s s o ft w a re i d e n t i f y s y s te m . f o u r t h l y , c o o r d i n a t e s t h e d i g i t a l s i g n a t u r e s y s t e m , b a r c o d e f o r m e d s y s te m a n d i d e n t i f y s y s t e m t o p r o c e e d a s i m p l e e x p e r i m e n t , s o a s t o c o m p l e te t h e i d e n t i fi c a t i o n a n d v e r i fi c a t i o n o f 2 d b a r c o d e . t h r o u g h t h e d e t a i l e d d i s c u s s i o n o f t h i s p a p e r , w h i c h p r o v i d e s a p o s i b i l i t y f o r t h e p d f 4 1 7 b a r c o d e s a p p l i c a t i o n , t h a t i s t o a c c o m p l i s h t h e b a r c o d e f o m a t i o n a n d i n d e n t i f i c a t i o n , a s m e a n w h i l e j o i n s t h e v e r i fi c a t i o n f u n c t i o n o f t h e s i g n a t u re. t h i s h a s a n a c t u a l u s i n g v a l u e a n d s u re l y c a n b e u s e d f o r r e f e r e n c e t o t h e a c t u a l d e v e l o p m e n t . k e y w o r d s : d i g i t a l 2 d ba r md 5 a l g o r i t h m p df 4 1 7 r s e r ror k e y s y s t e m ii 南开大学学位论文版权使用授权书 本人完全了解南开大学关于收集、保存、使用学位论文的 规定, 同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版 本;学校有权保存学位论文的印 刷本和电 子版,并采用影印、 缩印、 扫描、 数 字化或其它手段保存论文; 学校有权提供目 录检索以 及提供 本学位论文全文或者部分的阅 览服务; 学校有权按有关规定向国 家有 关部门或者 机构送交论文的复印件和电 子版; 在不以 赢利为目 的的前 提下,学校可以 适当复制论文的部分或全部内 容用于学术活动。 学位论文作者签名:. 年月日 经指导教师同意,本学位论文属于保密,在年解密后 适用 本授权书。 指导教师签名:学位论文作者签名: 解密时间:年月日 各密级的最长保密年限及书写格式规定如下: 南开大学学位论文原创性声明 本人郑重声明: 所呈交的 学位论文, 是本人在导师指导下, 进行 研究工作所取得的 成果。 除文中已 经注明 引用的内 容外, 本学位论文 的研究成果不包含任何他人 创作的、 已 公开发表或者没有公开发表的 作品的内 容。 对本论文所涉及的研究工作做出 贡献的其他个人和集 体, 均已在文中以明 确方 式标明。 本学位论文原创性声明的法律责任 由本人承担。 学 位 论 文 作 者 签 名 : 渗* 熟 扣了 年犷 月 8日 第一章绪论 第一章绪论 在现代信息处理技术中,关于数据识别、采集和处理的应用是很重要的。 条形码技术是在计算机技术与信息技术基础上发展起来的容编码、识别、数据 采集和处理于一身的技术,已广泛应用在诸如商业、金融业、交通运输、医疗、 制造管理、身份识别等领域,极大地提高了工作效率和信息处理的速度。特别 是二维码能够在横向和纵向两个方向同时表达信息,信息容量大大增加,能表 达汉字和存储图像信息,可以说它本身就是一个完整的便携式数据文件。 首先介绍一下二维条码技术在国内 外的应用现状及发展前景,同时根据其 安全性和验证性的应用要求提出结合数字签名技术的一个二维条码应用方案. 1 . 1 二维条码的应用现状及发展前景 国外对二维条码技术的研究始于 8 0年代末,现已研制出多种码制,如 c o d e 4 9 , c o d e 1 6 k , p d f 4 1 7 , c o d e o n e 等, 这些二维条码的密度都比 一维条 码有了很大的提高,比如二维条码p d f 4 1 7 码,其信息密度是一维条码c o d e 3 9 的2 0 多倍。 二维条码作为一种新的信息存储和传递技术,从一出现就受到了国际社会 的广泛关注。它的应用体现在以下几个方面: ( 1 ) 运输行业的应用 一个典型的运输业务过程通常经历:供应商一货运代理,货运代理一) 货运公司,货运公司 一客户等几个过程, 在每个过程中都牵涉到发货单据的 处理。发货单据含有大量的信息,包括: 发货人信息,收货人信息,货物清单、 运输方式等等。单据处理的前提是数据的录入,人工键盘录入的方式存在着效 率低、差错率高的问题,己不能适应现代运输业的要求. 二维码在这方面提供了 一个很好的解决方案,将单据的内容编成一个二维码,打印在发货单据上,在 运输业务的各个环节使用二维条码阅读器扫描条码,信息便录入到计算机管理 系统中,即快速又准确。 ( 2 ) 身份识别卡的应用 美国国防部已经在军人身份卡上印刷p d f 4 1 7 码。持卡人的姓名,军衔,照 第一章绪论 片或其他人体的 特征如指纹、视网膜扫描被编成一个p d f 4 1 7 码印 在卡上。 卡被 用来做重要场所的进出管理及医院就诊管理。该项应用的优点在于数据采集的 实时性,低实施成本,卡片损坏也能阅读,以及防伪性。我国香港特别行政区 的居民身份证也采用p d f 4 1 7 码。其他的应用,如营业执照、驾驶执照、护照、 我国城市的流动人口暂住证、医疗保险卡等也都是很好的应用方向。 ( 3 ) 文件和表格应用 日 本s e i m e i 保险公司的每个经纪人在会见客户时都带着笔记本电 脑。 每张 保单和协议都在电脑中制作并打印出来。当他们回到办公室后需要将保单数据 手工输入到公司的主机中。为了提高数据录入的准确性和速度,他们在制作保 单的同时将保单内容编成一个p d f 4 1 7 条码,打印在单据上,这样他们就可以使 用二维条码阅读器扫描条码数据录入主机。其它类似的应用还有:海关报单表、 税务申 报表、政府部门的各类申 请表等等。 ( 4 ) 资产跟踪 美国钢管公司在各地拥有不同种类的管道需要维护,为了跟踪每根管子, 他们将管子的编号, 制造厂商,长度,等级,尺寸,厚度以及其他信息编成一 个二维条码,制成标签后贴在管子上。当管子移走或安装时,操作员扫描条码 标签,数据库信息得到及时更新。工厂可以采用二维条码跟踪生产设备,医院 和诊所也可以采用二维条码标签跟踪设备、计算机及手术器械。 在国外,二维条码的标准化工作已 经开始,特别是p d f 4 1 7 己得到广泛的认 可从而成为其典型代表。 例如p d f 4 1 7 成为国际自动识别设备制造商协会( a i m i ) 与美国标协( a n s i ) 的符号标准。欧洲标准化委员会( c e n ) 己经起草了 p d f 4 1 7的 欧洲标准。国际民航组织也正在审阅 p d f 4 1 7 ,决定将其增加为国际旅游证件、 包括护照、签证及其它旅游证件的机读符号标准。 二维条码是一出现便受到我国条码管理部门和有关政府部门的重视。中国 物品编码中心自1 9 9 3 年便开始了对二维条码技术的研究,现己出版了我国第一 本有关二维条码技术的专著 二维条码技术 ,为了对二维条码技术开展全面研 究并开辟应用试点。许多科研单位、开发公司、大专院校都己开始着手进行二 维条码技术的应用开发。 目 前,许多部门已有使用二维条码用于人员管理和物品管理的愿望,如公 安部门想将二维条码应用于身份证和流动人员管理上,进出境管理部门正在探 讨将二维条码应用在护照上,海关也想尝试将其用在报关单上。有的甚至已经 第一章绪论 开始应用,例如,上海汽车销售中心已将二维条码p d f 4 1 7 应用于车辆信息的跟 踪管理,中国银行北京地区开始在汇票上采用二维码等。结合我国人口多,底 子薄,计算机网络投资资金难度较大,对证件的防伪要求较高等特点,因此, 二维条码在我国极有推广价值。 另一方面,人们在很多领域不仅仅满足于较大数据采集、识别,有时对于 信息的安全性和验证性提出要求。下面举例说明: ( 1 ) 在身份证上的应用 我国是个人口 众多的国家,如何合理有效地管理好身份证,并充分发挥其 作用,一直是公安机关长期面临的问题。传统的身份证由于缺乏机器识读功能, 并且防伪性能相对较差,因此在许多关键部门无法对身份证进行有效验证和登 记,使得公安机关不能全面掌握这些重要信息,给管理工作带来了很大困难。 尤其是近几年来,全国各地利用假身份证进行犯罪的事件屡屡发生,使得国家 一些重要部门遭受到严重的损失,而公安机关由于缺乏详实的资料,限制了打 击力度。因此,改进现有的居民身份证,将居民身份信息条码化同时加上数字 签名的认证技术,是管理和防伪识别身份证的一个十分积极有效的办法。 ( 2 ) 在边境通行证上的应用 随着我国改革开放的深入,我国和国外政治、经济上的联系也日趋紧密, 特别是近几年来,边贸活动日益频繁。经过各边境管理部门的不懈努力,边境 管理工作取得了很大成绩,但也存在着一些突出问题。采用传统的管理方式, 因手段有限,无法记载详实的数据,使得边境管理部门不能全面掌握边境往来 人员的信息,因此无法提供必要的统计数据,也缺乏应有的管理力度。因此, 如何加强边境过往人员的管理和信息统计是非常重要的问题。在边境通行证上 加上数字签名和二维条码的技术,也可以很有效的进行管理。 ( 3 ) 在毕业证、职业证书上的应用 目前对毕业证、职业证书等能够证明学历和水平的证书最好提供要求验证 功能, 这样编成二维条形码在证书管理上实际效果更好。 然而各类证书签名 ( 印 章)和正文关联程度低,容易被伪造和篡改。可以把二维条码和密码学中的数 字签名技术结合起来,应用到各种证书中,这样解决证书的签名伪造和篡改问 题,使数字化认证证书的应用成为可能。 第一章绪论 对应码字数据库以获得原始码字信息。关于条码图像的定位和扫描的方法,目 前国内外都有一些理论上的研究和探索,如提出利用条码纹理特征确定其在载 体上的位置和方向的方法: 还有对条码扫描仪将产生的低通滤波器效果,提出了 信号增强的方法,并就此设计一系列滤波器增强条码的条空边界信号。由于硬 件条件和知识水平所限不做讨论。 本文主旨在把条码图像文件导入处理系统后,设计了对应的图像定位和扫 描程序。使用相应算法确定每行条码的位置,最后通过逐行扫描程序,获取符 号字符信息。根据四一七条码的特性,筛选出最具可能性的一组,从而逆向查 表译码。 3 .利用数字签名技术对原信息进行处理 采用基于r s a 公钥密码体制建立一个数字签名方案, 可以对原信息进行数字 签名,得到一个原消息的签名序列,任何人能够验证这个签名的有效性。在这 样处理后将原信息附上签名序列再进行 p d f 4 1 7 编码,而p d f 4 1 7识别的阶段基 本是上述的逆过程。如图1 . 2 所示: 编码生成阶段为: 数据一签名生成一含签名信息一条码 识别译码阶段为: 条码一 . )含签名信息一验证签名一数据 图 1 . 2 本文将讨论把二维条码和密码学中的数字签名技术结合起来,提出一个方 案和相应具体实现算法。这个方案可以应用到各种证书中,解决证书的签名伪 造和篡改问题,使数字化认证证书的应用成为可能。拟实施的方案中使用的二 维条码技术为获得广泛认可的p d f 4 1 7 编码格式。 由于这种格式的条码容量较大, 可以满足一般证书的内容编码需求。 4 .具体的系统设计和实验部分 设计出一个具体的条码生成系统及良 好的用户界面, 可以较方便的生成各类 数据的条码符号;设计一个签名方案来完成对信息的签名和验证;最后给出条 码识别的简单实验,完成条码识别与验证,整个过程如下: 第一章绪论 签名方收签方 在本课题的研究过程中,采用的研究步骤是: ( 1 ) 研究二维条码的编码技术,提出更高效率的编码方案。 ( 2 ) 设计二维条码的生成系统,完成良 好的界面设计,最终生成二维条码符号 图像( 作为原始图像) 。 ( 3 ) 研究和设计基于r s a 公钥机制的一个签名方案,将其实现可完成对信息的 签名和验证。 ( 4 ) 研究二维条码的译码算法。与编码进行比较,解译生成的二维条码符号图 像所代表的信息,实现正确译码。 ( 5 ) 对整个条码系统进行运行实验。 5 .应用的前景 二维条码p d f 4 1 7 作为一种新的 信息存储和传递技术,由于成本低,信息可 随载体移动,不依赖于数据库和计算机网 络、保密防伪性强等优点,从诞生之 始就受到了国际社会的广泛的关注。 第一章绪论 结合数字签名的 p d f条形码技术适合很多实际场景下的应用。例如将证件 上的个人信息及照片编在二维条码中,不但可以实现身份证的机器自 动识读, 而且可以有效地防止伪冒证件事件的发生。结合我国人口多,计算机网络投资 难度大,对证件的防伪措施要求较高等特点,可以肯定这样的技术在我国极有 推广价值。本文所做的讨论相信会对实际的应用开发提供一定的理论基础和借 鉴意义。 第二章数字签名方案设计 第二章数字签名方案设计 2 . 1 数字签名技术概述 本章主要针对数字签名方案进行讨论,稍后提出基于 r s a签名应用实施方 案。讨论 m d 5散列函数,最后给出签名中主要的源代码。以次作为基础,开发 出一个应用程序可以为后面签名应用做好铺垫。 1 .数字签名的用途 数字签名是由d i f f i e 和h e l l m a n 在他们的著名的论文 “ n e w d i r e c t i o n i n c r y p t o g r a p h y , 中 第 一次 提出 来的。 之后, 它引 起了 许多 人的 研究 兴 趣并且 获 得了长足的发展。通俗地讲,数字签名包含一些数据使得能够取证签名者就是 消息的发出者。另外,此签名也能够被接收者保存下来,以防当出现争执时, 可以把此签名作为证据出示给第三方来验证此签名的合法性,从而可以用来解 决争执。因此,它能够防止下面所示的四类问题: 1 )否认或抵赖:发送( 接收) 者事后不承认己发送( 或接收) 过这样一份文 件。 2 )伪造:接收者伪造一份来自 发送者的文件。 3 )篡改:接收者对发送者的信息进行部分篡改。 4 ) 冒 充:网中的某一用户冒 充另一用户作为发送者或接收者。 数字签名是认证技术中的一种,数字签名可以用来进行下列认证: 1 )实体认证: 在报文通信之前,采用可鉴别协议来认证通信是否在议定 的通信实体之间进行。 2 )报文认证: 经实体认证后,双方通信实体便可进行报文通信。为了保 证数据的真实性,应对报文进行认证,即接收实体应能验证报文的来源、时间 性与目 的地的真实性。通常也采用数字签名等技术来实现。 3 )身份认证:用户的身份认证是许多应用系统的第一道防线,目 的是防止 数据被非法用户访问。除了口令控制之外,在身份认证环节采用数字签名技术 无疑大大提高了访问控制的力度。 2 .数字签名的特点 第二章数字签名方案设计 类似于手写签名,数字签名也应满足以下要求: 1 )接受方能够确认或证实发方的签名,但不能伪造。 2 )发方发出签名的消息给收方后,就不能再否认他所签发的消息。 3 )收方对已经收到的签名消息不能否认,即有收报认证。 4 )第三者可以 确认收发双方之间的消息传送,但不能伪造这一过程。 数字签名与手写签名的区别在于,手写签名是模拟的,且因人而异。数字 签名是0 和 1 的数字串,因消息而异。主要差别在于: ( 1 ) 签文件方面的不同。一个手写签名是所签文件的物理部分,而一个数字 签名并不是所签文件的物理部分,所以所使用的数字签名算法必须设法把签名 “ 绑”到所签文件上。 ( 2 ) 验证方面的不同。一个手写签名是通过和一个真实的手写签名比较来验 证的,这种方法很不安全,相对而言容易伪造某些人的手写签名,而数字签名 能通过一个公开的验证算法来验证,这样 “ 任何人”能验证一个数字签名,安 全的数字签名算法的使用将阻止伪造签名的可能性。 ( 3 )“ 拷贝”方面的不同。一个手写签名不易拷贝,因为一个文件的手写签 名的拷贝通常容易与原文件区别开来。而一个数字签名容易拷贝,因为一个文 件的数字签名的拷贝与原文件一样,这个特点要求我们阻止一个数字签名消息 的重复使用,一般通过要求消息本身包含的信息如日期等来达到阻止重复使用 签名的目的。 数字签名和消息认证的区别在于,消息认证使收方能验证消息发送者及所 发消息内容是否被篡改过。当收发者之间互相信任时,这对于防止第三者的破 坏来说是足够了。但当收者和发者之间并不存在互相信任时,单纯用消息认证 技术就无法解决他们之间的纠纷,此时须借助满足前述要求的数字签名技术。 为了实现签名目的,发方必须向收方提供足够的非保密信息,以便使其能 够验证消息的签名:但又不能泄露用于产生签名的机密信息,以防止他人伪造 签名。因此,签名者和证实者可公用的信息不能太多。任何一种产生签名的算 法或函数都应当提供这两种信息,而且公开的信息很难推测出用于产生签名的 机密信息。再有, 任何一种数字签名的实现都有赖于仔细设计的通信协议。 3 .数字签名的分类 若按明、密文的对应关系划分,可分为两个子类: 一类是确定性( d e t e r m i n i s t i c ) 数字签名,其明文与密文一一对应,它 第二章数字签名方案设计 对一特定消息的签名不变化,如r s a、 r a b i n 等签名: 另一类是随机化的( r a n d o m i z e d ) 或概率式数字签名, 它对同一消息的签名是 随机变化的,取决于签名算法中的随机参数的取值。一个明文可能有多个合法 数字签名, 如d s a , e l g a m a l 等签名。 根据接收者验证签名的方式可将数字签名分为真数字签名( t r u e d i g i t a l s i g n a t u r e ) 和仲裁数字签名( a r b i t r a t e d d i g i t a l s i g n a t u r e) 两类。 在真数字签名中,签名者直接把签名消息发送给接收者,接收者无须求助 于第三方就能验证签名。而在仲裁数字签名中,签名者把签名消息经由被称作 仲裁者的可信第三方发送给接收者,接收者不能直接验证签名,签名的合法性 是通过仲裁者作为媒介来保证,也就是说接收者要验证签名必须与仲栽者合作。 根据数字签名方案中的验证方程可分为隐式数字签名和显式数字签名。现 有的数字签名方案大部分为显式数字签名。 根据数字签名的功能将数字签名分为普通数字签名和具有特殊用途的签名 ( 如盲签名、群签名、代理签名、多重签名等) 。 2 . 2 数字签名方案的原理与机制 2 . 2 ., 数字签名方案的定义与原理 1 、一个数字签名方案主要由 两个算法,即签名算法和验证算法组成。签名 者能 使 用一 个( 秘密) 签 名 算法s s k ( ; ) 签一 个消 息 x , 导 致的 签名s ik k ( x ) 可以 通过一个公 开的 验证算法v e r k ( m来验证。 给定一 对( x , y ) , 验证算法 根据签名 是否真实来作出一个 “ 真”或者 “ 假”的回答。 一个数字签名方案可由 满足下列条件的五重组( p , a , k , s , v ) 来描述: ( 1 ) p是所有可能消息组成的一个有限集合; ( 2 ) a是所有可能签名组成的一个有限集合: ( 3 ) k 是所有可能密钥组成的一个有限集合,即密钥空间; ( 4 ) s , v 是签名算法和验证算法的有限集: ( 5 ) 对 每一 个k e k, 有一 个 签名 算法掩k ( k ) e s 和一 个对应的 验证算法 v e r k ( , ) e v s lg k ( ) : p -*a 和v e r k ( , ) : p x a -* 真, 假 是满足下列条件: 对每一 个消息x e p 和 每一个签名y e a , 有p e r k ( x , y ) = 真,当且仅当 第二章数字签名方案设计 假如p = 4 7 和q = 5 9 , ( 只有2 位,实际中是上百 位) , 计算n = p q = 2 7 7 3 , 诚n ) = ( p - 1 ) ( q - 1 ) = 1 3 3 4 , 将数字串按4 位分组得: 0 5 1 8 1 8 0 1 1 8 0 5 0 0 0 8 2 1 1 3 0 1 1 4 2 1 1 3 0 0 0 5 1 9 2 0 假设选取私钥d = 1 7 ,g e d ( 1 7 , 1 3 3 4 ) = 1 可求解公钥e = 1 5 7满足e d = 1 m o d 1 3 3 4 。 ( 1 ) 签名过程:发送者用自己的私钥d 对上述数字串进行加密,即使用 c = m ,0 m o d n = 耐 m o d 2 7 7 3 求出 密 文 为: 1 7 8 7 2 0 0 3 2 4 2 3 0 5 9 6 0 3 4 0 1 6 8 4 0 3 4 0 0 5 0 8 2 1 0 9 发送者将原数字串和加密数字串一并发给接受者。 ( 2 ) 验证过程: 接受者接受消息后,首先用发送者的公钥e 对上述加密数字串 进行解密,即 使用m = 丫m o d n = c 5 m o d 2 7 7 3 可求出明 文为 0 5 1 8 1 8 0 1 1 8 0 5 0 0 0 8 2 1 1 3 0 1 1 4 2 1 1 3 0 0 0 5 1 9 2 0 若发现与原明文数字串相同,则验证签名。 实际中签名过程与上面类似, 所不同的是数据以 二进制的形式表示和处理。 一般说来,要签的消息都很长,如果直接对消息进行签名只能先把所要签 的消息分组,逐组进行签名。因为 r s a签名涉及的运算都是模乘法运算和模指 数运算,所以这样做带来的缺陷是速度比较慢,而且签名太长。所以要对消息 首先进行h a s h 函数处理, 得到一固定长度的消息摘要然后再对其进行r s a 签名。 下面提出一个具体的结合h a s h 函数的r s a 签名实施方案,这个方案可以处 理后面讨论的p d f 条码设计中的原始信息。 2 . 3 r s a 签名应用实施方案 2 . 3 . 1 方案设计 下面叙述一下一个签名方案应用的具体实施步骤,本方案采用的散列函数是 m d 5 ,可以将0 1 序列 ( 消息文件二进制形式) 按每5 1 2 b i t 分组处理一个 1 2 8 b i t 的输出结果:再利用r s a 对其进行一次加解密即可完成签名和验证。 实现过程如下 :( 见图2 . 2 ) 第二章数字签名方案设计 m勺 . 招 . . 公 月方粗 钥认 .) 盆 . 力 爱 们认.) , . 口 , . . . - -皿 月方 住召j -曰 -. 弓 , 一公.方 认峨-一-叫卜 图2 . 2 r s a 数字签名框图 使用发送方的私钥 ( d , n ) 对消息 m的散列值加密,既具有身份辨别又有 数据完整性保护的功能。也就达到了数字签名的要求。 下面描述r s a 数字签名和认证的过程。 1 ,签名过程: ( 1 )计算消息的散列值h ( m ) a ( 2 ) 用 私 钥( d , n ) 加密 散 列 值 :s = ( h ( m ) ) e m o d n o 签名结果就是 s , ( 3 )发送消息和签名( m , s ) 当然,消息 m很短的时候,可以直接对 m用私钥加密,可以表达为 s 二 s ig ( m) = m0 m o d n 总之,签名时使用私钥 ( d , n ) , 2 、认证过程: 接收方收到( h ,s ) 之后,按照如下步骤验证签名的有效性。 ( 1 ) 取得发送方的公钥( e , n ) 。 ( 2 ) 解密签名s : h = s m o d n 。 t 3 ) 计算消息的散列值h ( m ) a ( 4 ) 比 较,如果h = h ( m ) ,表示签名有效:否则,签名无效。 3 、 如果消息m很短的时候,可以直接对m用公钥解密以验证签名的有效 性, 可以 表 达为v e r ( m, 力= 真am= s m o d n 在对短消息进行 r s a签名的实际系统中,我们建议不要使用私钥直接加密 的方式。总之,认证时使用公钥( e , n ) ,然后通过比较来确定签名的合法性。 第二章数字签名方案设计 2 . 3 . 2 r s a 签名算法部分源代码和流程图 r s a 签名算法的流程图如下,部分源程序见附录a o 开始 随机选择两个素数p 、q 计算 a o _ la -沙1 ) * ( q - 1 ) 在 2到 a o la 之间随机选择一个和 a o a l 互紊的加密密钥 e 已知e 和a o la ,5 f ia e d. 1 s o d 2 01 a 求出解密密钥 d 计算m o 妞 0 p . 9 得出 公 钥淑 e , m o d e l ) 私钥淑 d ,m o d d ) 图2 . 3 r s a 公钥参数生成流程图 第二章数字签名方案设计 开始 打 开 要加 密的明文 成功打开 文件? 新建 一个 文件. 用于 存密文 成功新建 文件? 坡 将明文的扩展名逐字节 加密, 并将结果写入密文 从明文中一次读入固定 长度的字节到缓冲 对级冲区中的数据逐字 节加密, 并将结果存人密 文关闭明文 挑 朗文中的数据全 部读出了吗? 关闭密文 图2 . 4 利用r s a 公钥体制进行数据加密和数字签名的流程图 第三章二维条码生成设计 第三章二维条码生成设计 目 前一维条码技术己 广泛应用于商业、金融业、交通运输业、医疗卫生、 邮电、制造业、仓储业等,一些管理部门也己开始将条码技术应用于管理工作, 如驾驶证、身份证的管理等。二维条码的出现更是从质上提高了条码技术的应 用水平,从量上拓宽了条码技术的应用领域,使条码更加胜任信息交换的媒介。 条码技术的应用极大地提高了工作效率,提高了数据采集和信息处理的速度, 为管理科学化和现代化做出了积极的贡献. 本章将首先讨论二维条码p d f 4 1 7 的编码原理以及相关实现方法,结合前章 的签名系统设计含签名功能的条码生成系统。 ( p d f 4 1 7 条码己经通过国家标准认 证,具体见 g b / t 1 7 1 7 2 - 1 9 9 7四一七条码) 3 . 1 p d f 4 1 7 编码结构原理 目前根据二维条码实现原理、结构形式的差异,可分为堆积式或层排式二 维条码( s t a c k e d b a r c o d e ) 和棋盘式或矩阵式二维条码( d o t m a t r i x b a r c o d e ) 两大类型。 0 61 ,1 0 9 ,1 11 a 层排式b 矩阵式 图3 . 1 二维条码种类图示 p d f 4 1 7 码属于堆叠式二维条码, , 与一维码的结构有很大的相似之处, 所以 这里首先介绍一下一维条码符号的结构和编码规则,然后进行二维码的结构和 编码规则的讨论。 3 . , . 1 一维条码符号结构 一个完整的条码由两侧空白区、起始字符、数据字符 终止字符组成。图 3 . 2示出了一个条码符号的完整结构, 、校验字符 ( 可选) 和 图3 . 3示出了条码符 第三章二维条码生成设计 图3 . 2 条码符号结构 !l! 图3 . 3 条码符号 条码的编码方法是指条码中条空的编码规则以及二进制的逻辑表示的设 众所周知,计算机设备只能识读二进制数据( 数据只有 “ 0 ”和 “ 1 两种逻 号置 辑表示) ,条码符号作为一种为计算机信息处理而提供的光电扫描信息图形符 号,也应满足计算机二进制的要求。条码的编码方法就是要通过设计条码中条 与空的排列组合来表示不同的二进制数据。一般来说,条码的编码方法有两种: 模块组合和宽度调节法。 模块组合法是指条码符号中,条与空是由标准宽度的模块组合而成。一个 标准宽度的条表示二进制的 “ 1 ,而一个标准宽度的空模块表示二进制的 “ o . 商品条码模块的标准宽度是 0 . 3 3 r n r n ,它的一个字符由两个条和两个空构成, 每一个条或空有一个标准宽度模块组成。 2二维条码 ( p d f 4 1 7 ) 的符号结构 p d f 4 1 7条码符号是一个多行可变长结构,相当于一维条形码在纵向上的叠 每行数据符号字符数相同,行与行左右对齐, 3.加 最大行数为9 0 。以下为一个7 行的p d f 4 1 7 条码, 直接衔接。其最小行数为3 , 每行自 左向右结构如图3 . 4 : 图3 .4 p d f 4 1 7 二维条形码结构示意图 第三章二维条码生成设计 从每一行的结构看,从左向右方向它包括: a . 左空白区:对其有一定的宽度要求。 b . 起始符:行起始标志。 c . 左行指示符字符: 显示一些条码符号信息。 d . 1 到3 0 个数据符号字符:每行数据符号个数最多不能超过3 0 个。 e . 右行指示符字符:显示一些条码符号信息。 f . 终止符:层结束标志. g . 右空白区:同a , 下面分别说明各个符号的结构组合以及含义: 1 .符号字符的结构 每一符号字符由4 个条( 图3 . 5 中黑色部分,用b : 一b , 和4 个空( 图3 . 5 中 白色部分,5 , 一s . ) 构成,自 左向 右从条开始。每一个条或者空包含 1 一6 个模 块。在一个符号字符中,4 个条和4 个空的总模块数为1 7 0 1 月 t 伞 铆 . 卜 , .曰 图3 .5符号字符 2 .符号字符的 簇 四一七条码的符号字符集由三个簇构成,每一簇包含以不同的条、空形式 表示的所有 9 2 9个四一七条码的码字。在每一簇中,每一符号字符对应唯一的 码字,其范围为0 9 2 8 。四一七条码使用簇号0 , 3 , 6 . 簇号的定义适用所有的 四一七条码符号字符。条码的每行只使用一个簇中的符号字符。同一簇每三行 重复一次。 第一行使用第0 簇的符号字符, 第2 行使用第3 簇的符号字符, 第3 行使用第 6 簇的符号字符,第 4行再使用第 0簇的符号字符,依此类推。行号 由上向下递增,最上一行的行号为 1 e 对于一个特定的符号字符,其簇号由下式确定: 簇号=( 八 一 乓 + 气 一 气十 9 ) m o d 9 式中:b , 一b 。 分别表示自左向右四个条的模块。 第三章二维条码生成设计 例:对于图3 . 5 中的符号字符,其簇号计算如下: 簇号 =( 5 一 1 + 1 一 2 + 9 ) m o d 9 = 3 对于每一特定的行,使用的符号字符的簇号由下式计算: 簇号 二 ( 行号一1 ) m o d 3 x 3 由于p d f 字符集很大,每一簇可以编码9 2 9 个符号,本文只给出少部分示例。 码字第0 簇第3 簇第6 簇 0 1 1 1 0 1 0 1 0 1 1 1 0 0 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 0 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 0 0 0 0 0 1 1 1 1 1 0 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 0 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 0 1 0 1 0 1 1 1 1 0 0 0 0 2 1 1 1 1 1 0 1 0 1 0 1 1 1 1 1 0 0 1 1 1 1 1 0 1 0 1 0 1 1 1 1 1 0 0 1 1 1 1 1 0 1 0 1 0 1 1 1 1 1 0 0 3 1 1 1 0 1 0 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 1 1 0 0 0 0 0 4 1 1 1 1 0 1 0 1 0 0 1 1 1 1 0 0 0 1 1 1 1 0 1 0 1 0 0 1 1 1 1 0 0 0 1 1 1 1 0 1 0 1 0 0 1 1 1 1 0 0 0 5 1 1 1 1 1 0 1 0 1 0 0 1 1 1 1 1 0 1 1 1 1 1 0 1 0 1 0 0 1 1 1 1 1 0 1 1 1 1 1 0 1 01 0 0 1 1 1 1 1 0 6 1 1 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 7 1 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 9 2 8 1 1 0 1 1 1 1 1 0 1 1 1 1 0 1 0 0 1 1 0 1 1 1 1 1 0 1 1 1 1 0 1 0 0 1 1 0 1 1 1 1 1 0 1 1 1 1 0 1 0 0 3 . 行指示符号字符 行指示符号字符包括左行指示符号字符( l ) 和右行指示符号字符( r ) ,分别 与起始符和终止符相邻接。 见图3 . 6 。 行指示符号字符的值指示四一七条码的行 号i , 行数( 3 - 9 0 ) , 数据区中数据符号字符的列数( 1 3 0 ) , 错误纠正等级( 0 - 8 ) . 赵 月 竹 1 11 凡 终 止 符 区 二 代 乃 与 口 因 气讨 、 : y = i n t ( 行数一 1 ) / 3 1 例如,如果一个四一七条码的符号为3 行,3 列, 错误纠正等级为 1 ,那么 ( l l , l ) 为( 0 , 5 , 2 ) , ( r r . ,助为 ( 2 , 0 , 5 ) . 4 . 起始符和终止符 四一七条码的起始符和终止符是唯一的。自 左向右由条开始, 起始符的条、 空组合序列为8 1 1 1 1 1 1 3 , 终止符的条、空序列为7 1 1 3 1 1 1 2 1 0 3 . 1 . 3 p d f 4 1 7 的编码压缩模式 p d f 4 1 7 条形码有三种数据压缩模式: 文本压缩模式( t o、 字节压缩模式( b c ) 、数字压缩模式( n c ) 。 设计出不同的数据模式是为了有效的将数据流表示成码字,不同的数据采 用不同的模式编码,才能提高编码效率。通过应用模式锁定和转移码字,用来 锁定或转移三种压缩模式中的一种进行编码。 1 . 文本压缩模式( t o 文本压缩模式将两个字符以3 0为基组合成一个码字,该模式在表述文本时 效率较高。它包含四 个子模式,分别为大写字母子模式、小写字母子模式、混 合型子模式和标点型子模式。子模式的设置是为了更有效地表示数据,每种子 模式选择了文件中出现频率较高的一组字符组成字符集。在子模式中,每个字 符对应一个值( 0 2 9 ) 。两个字符对应值以3 0 为基组合成一个码字,这样可以用 单独的码字表示一个字符对,表示字符对的码字由下式计算: 码字二 3 0 x h 十l , h , l 依次表示字符对中的高位和低位字符值。 2 . 数字压缩模式 ( n c ) 数字压缩模式通过从基1 0 到基9 0 0 的转换压缩数据。 将约3 个数字位用一 个码字表示,在表示数字时效率最高。在数字压缩模式下,将根据下述算法对 数字位进行编码: ( 1 )将数字序列从左向右每 4 4位分为一组,最后一组包含的数字位可以少于 4 4 个。 第三章二维条码生成设计 ( 2 ) 对每一组数字:首先在数字序列前加一位有效数字 1 ( 即前导位) ,然后执 行基1 0 至基9 0 0 的转换。 例 :数字序列0 0 0 2 1 3 2 9 8 1 7 4 0 0 0 压缩方法如下: 首先,对其进行分组,因为它只有十五位,故只有一组; 其次, 在其最左边加1 。 将得到数字序列1 0 0 0 2 1 3 2 9 8 1 7 4 0 0 0 ; 最后, 将其转换为基9 0 0 的码字序列, 结果为1 , 6 2 4 , 4 3 4 , 6 3 2 , 2 8 2 , 2 0 0 0 译码算法与编码算法相反: l c k - u , 其中c o , c l 用于错误检测; 第三章二维条码生成设计 d 是 数 据 码 字d a ,l, 嵘。 ; t , 几 t 3 是 临 时 变量 。 具体做法: 首先展开生成多项式,对系数进行模 9 2 9的运算, 求得各系数矿,事实上 这些数值可以事先计算,下面列出一些系数在s 不同取值时的值。 系数 2 7 ,9 1 7 5 6 8 , 3 0 8 , 5 6 2 , 2 9 5 , 5 7 5 ,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论