时间:2022-02-10 14:54:24
开篇:写作不仅是一种记录,更是一种创造,它让我们能够捕捉那些稍纵即逝的灵感,将它们永久地定格在纸上。下面是小编精心整理的12篇数字运算,希望这些内容能成为您创作过程中的良师益友,陪伴您不断探索和进步。
1.1图解法图解法主要是在坐标系上,严格按照计算(1)式的四个步骤:翻转、移位、相乘和求和,得到线性卷积结果。采用图解法比较直观讲解线性卷积的计算过程,在数字信号处理教材中常采用图解法为例讲解线性卷积的计算[1,2]。
1.2多项式法多项式法是根据序列x(n)和h(n)构造多项式,序列x(n)和h(n)的元素作为多项式的系数,例如:根据序列x(n)={1,3,2}构造多项式x2+3x+2,根据序列h(n)={10,20}构造多项式10x+20,把两个多项式相乘(x2+3x+2)*(10x+20)=10x3+50x2+80x+40,相乘所得的多项式的系数构成的序列{10,50,80,40}即为线性卷积的结果。
1.3竖式法竖式法是把序列x(n)和h(n)按照最后一位对齐,进行竖式乘法运算[4],但各个元素相乘后不进位,例如序列x(n)={1,3,2}和h(n)={10,20}按照竖式法计算线性卷积如图1所示,则线性卷积结果为{10,50,80,40}。
1.4FFT快速算法当循环卷积的长度L大于或等于线性卷积的长度N+M-1时,循环卷积的结果和线性卷积的结果相等,所以只要FFT快速算法的计算点数大于线性卷积的长度,就可以采用FFT快速算法计算出线性卷积,在MATLAB软件中提供了FFT快速算法的函数,通过调用fft函数和ifft函数完成线性卷积计算[5]。上述计算线性卷积的方法中,图解法适于讲解线性卷积的运算规律,多项式法和竖式法适合于快速计算出线性卷积的结果,FFT快速算法适合采用MATLAB软件编程实现。
2循环卷积的计算方法
2.1图解法图解法主要是在坐标系上,严格按照计算(4)式的六个步骤:补零、周期延拓、翻转、移位、相乘和求和,得到循环卷积结果[6],采用图解法比较直观理解循环卷积的计算过程。
2.2矩阵相乘法由于循环卷积在对序列x(m)经过补零、周期延拓、翻转得到的序列x[((-m))L]=x(L-m)为循环倒相序列,循环右移序列x[((n-m))L]为对循环倒相序列进行循环右移n位后得到的循环移位序列,然后把得到的循环移位序列与h(m)相乘并求和得到yc(n),由于相乘求和运算可由矩阵相乘代替,即由循环移位序列构成L点循环卷积矩阵,与由h(m)构成的L维列向量相乘,得到yc(n)。采用矩阵相乘法计算循环卷积简单明了,在数字信号处理教材中大多采用此方法为例讲解循环卷积的计算[1]。
2.3线性卷积法由于循环卷积和线性卷积满足的关系如(5)式所示[1]。当循环卷积的长度L大于或等于线性卷积的长度N+M-1时,线性卷积yl(n)做周期延拓无重叠,此时循环卷积和线性卷积相等,此时线性卷积的结果为循环卷积的前N+M-1项,循环卷积的后L-N-M+1项为零。当循环卷积的长度L小于线性卷积的长度N+M-1时,线性卷积yl(n)做周期延拓有重叠,循环卷积的结果有两部分组成,一部分是线性卷积不重叠的部分,n的取值区间为N+M-1-L≤n≤L-1,此时循环卷积和线性卷积相等;另一部分为重叠部分,n的取值区间为0≤n≤N+M-L-2,重叠部分的循环卷积计算如(6)式所示。上述计算循环卷积的方法中,图形法适于讲解循环卷积的运算规律,矩阵相乘法和线性卷积法适合于快速计算出循环卷积的结果。
3结论
关键词:数字电路 发展趋势 特点
中图分类号:TN79+1 文献标识码:A 文章编号:1672-3791(2014)07(a)-0120-01
随着社会的不断发展,计算机技术也在不断的发展,在社会中,用到数字电路来进行信号上的处理,这些优势也显得更加的突出。我们可以利用数字电路在信号处理上可以很好的发挥出自身的强大功能,首先,就需要将模拟的信号按照比例将其转换为数字信号;其次,就是在将其送到数字电路上进行相应的处理;最后,就是将处理的结果根据需要将其转换成为相应的模拟信号输出。自20世纪70年代开始,在电子技术应用领域中,运用这种数字电路进行处理模拟信号,也就是所谓的“数字化”已经被广泛应用。
1 数字电路的发展
数字电路也称数字系统,是用数字信号完成对数字量进行算术运算和逻辑运算的电路。由于它具有逻辑运算和逻辑处理功能,所以又称数字逻辑电路。现代的数字电路是由半导体工艺制成的若干数字集成器件构造而成的,逻辑门是数字逻辑电路的基本单元。从整体上看,数字电路可以分为组合逻辑电路和时序逻辑电路两大类。
数字电路的发展与模拟电路一样经历了由电子管、半导体分立器件到集成电路等几个时代。但其发展比模拟电路发展的更快。从20世纪60年代开始,数字集成器件以双极型工艺制成了小规模逻辑器件,随后发展到中规模逻辑器件;20世纪70年代末,微处理器的出现,使数字集成电路的性能产生质的飞跃。
数字集成器件所用的材料以硅材料为主,在高速电路中,也使用化合物半导体材料,例如砷化镓等。
逻辑门是数字电路中一种重要的逻辑单元电路。TTL逻辑门电路问世较早,其工艺经过不断改进,至今仍为主要的基本逻辑器件之一。随着CMOS工艺的发展,TTL的主导地位受到了动摇,有被CMOS器件所取代的趋势。
近几年来,可编程逻辑器件PLD特别是现场可编程门阵列FPGA的飞速进步,使数字电子技术开创了新局面,不仅规模大,而且将硬件与软件相结合,使器件的功能更完善,使用更灵活。
2 数字电路的主要特点
2.1 同时具有算术运算和逻辑运算功能
数字电路中的数学基础主要是以二进制逻辑代数为主,主要运用了二进制的数字信号,不仅可以很方便的进行与、或、非、判断、比较、处理等逻辑运算,还可以进行算术运算,因此,二进制逻辑代数可以应用到运算、传输、控制、决策、储存以及比较当中。
2.2 实现简单,系统可靠
数字逻辑电路只要以二进制作为基础,其自身的可靠性比较强。其中对该电路上,电源电压较小使,对其不产生影响,而温度与工艺偏差对该电路的工作可靠性的影响上,也比模拟电路要小的很多。
2.3 集成度高,功能实现容易
数字电路具有功耗低、体积小以及集成度高的特点,其中还包含了:电路设计、维修、维护上比较灵活方面,随着社会的不断发展,集成电路的相关技术也在断的发展,其中数字逻辑电路的集成度也相对的变高,同时随着SSI(小规模)、MSI(中规模)、LSI(大规模)、以及VLSI(超大规模)等方面的集成电路的发展,集成电路块的功能也从元件、部件、器件、板卡级而上升到了系统级。而电路的设计则是采用了一些比较标准的集成电路块单元来连接形成。对于一些非标准的电路还可以选择可编程序逻辑来陈列电骡,通过运用编程的方法来实现对特殊电路任意的逻辑功能。
3 新技术条件下数字电路的发展趋势
在新技术条件下,半导体技术与工艺、平板刷技术等的发展为数字电路的发展提供了技术保证。数字电路逐渐向着高度复杂化、集成化及智能化发展,其运算速度也越来越高。能够集成数亿的微处理器,闪盘的容量可达64GB,部分ASIC所拥有的门电路数量也可达1000万以上,而FPGA的门电路数量也达到了300万以上。将来无论是台式电脑还是移动终端的CPU时钟频率将会更高,而CPU体积的缩小使得一块芯片上可以放置更多的CPU,高速缓存至少能达到三级。这样就使得CPU对外部存储器的读写数量不断减少,提高了CPU的数据吞吐量,对处理器性能的提升十分有利。如今,六十四位的处理器已日臻成熟,很多公司正试图把几个甚至几十个嵌入式处理器的内核提高到一个新的水平。DSP芯片正在向更高的结构转变,在多数场合指令字方式是非常常见的方式―― 在同一芯片上有多过个处理器单元存在,即单指令阵列处理。在现阶段,处理器的结算能力在持续提升,由于众多新型的存储结构单元相继出现,对于快闪存储器的单元来讲,密度也有很大的提高。不论是多级的存储单元还是镜像为存储单元,这两个方式都是这项技术的最前沿技术,在多级存储中,有很多方法在使用。各比特在编码的过程中使用的是四个电荷级,能够随时对任何一个存储单元进行数据的存取,并且镜像位的方案都是把每一个比特存在一个绝缘栅上。
虽然DRAM存储器的密度不会一下子跳到GB级别,但是,可以对下一代的DRAM 运算速度进行预设,其运算的速度也会越来越快。此种存储器会使用下一代的DDR接口。与此同时,人们会不断地开发出存取速度更快的接口,为更高带宽的引进打下坚实的物理基础。
非动态的随机存储器(SRAM)在密度方面也在进行不断的升级。现如今,6MB 的芯片已经投入市场,相信用不了多长时间,16MB的芯片乃至32MB的芯片甚至更大容量的芯片都可能会投入市场。对SRAM来讲接口运行速度的加快是至关重要的。
目前,通过降低绝缘材料的介电常数来提升电路性能也是重要的手段。
综上所述,在存储器领域。新型非易失性技术为电路设计人员提供了较多新的选择。铁电存储器技术也在快速发展,这提供了一种可能―― 把易失性的存储器从理想走向现实,可以在无电源的情况下对数据进行无限期保存,而且不会出现任何形式的数据损耗,运算器能够在极小的空间进行几乎无尽的复杂运算。
参考文献
[1] 孙子健.数字电路技术及其应用[J].齐齐哈尔大学学报,2013(10).
[2] 陈小艺,张昌凡.数字电路技术及应用[M].西安:西安电子科技大学出版社,2011.
关键词:数字电子技术 关键问题 逻辑
中图分类号:TN79-4 文献标识码:A 文章编号:1007-9416(2013)08-0183-02
数字电子技术与模拟电子技术不同,数字电子技术的特点是:数字信号是指在时间上和数值上都是断续变化的离散信号,即表示数字量的信号;数字电子技术的基本工作信号是二进制数字信号。二进制数只有0和1两个基本数字,对应在电路上就是低电位和高电位(或称电平)两种逻辑状态;数字电子技术研究的重点是电路自身输入信号的状态(0或1)与相应的输出信号的状态(0或1)之间的关系,即所谓逻辑关系;分析和设计数字电路的理论基础是逻辑代数。因此,数字电子技术中比较关键的问题有数字逻辑、逻辑代数和集成逻辑门电路等几个方面。
1 数字逻辑问题
在日常生活中,人们最习惯用十进制数,即用0、1、2、3、4、5、6、7、8、9十个数码表示数值。数码所处的位置不同,它所代表的数值就不相同。例如478.53这个数可写作
其中乘数102、101、100、10-1、10-2等是根据每个数字在数中的位置得来的,称为该位的“权”,所以每—个单独数字的值是该数和相应位置上的“权”的相乘积。数码的个数叫做基数,所以十进制的计数规则是“逢十进一”。因此,十进制就是以10为基数的计数体制。
在数字电路中,数是以电路的状态表示的。如果采用十进制数,就要求电路有10种状态相对应,这在实际电路中是很难实现的。在电路中最容易实现的状态有两种,例如,电位的高或低、脉冲的有或无、开关的通或断等,都是两种状态。因此数字电路中广泛采用的是二进制数。二进制数的主要特点有以下几个方面:
(1)以2为基数,每位数是0和1两个数码中的一个;(2)它的“权”是2”,以小数点为准,小数点左侧第一位是2,再向左依次是按2的正次幂递增,向右侧依次按2的负次幂递减,相邻位的“权”相差2倍;(3)计数规则是“逢二进一”,即当某位计数满二时,向它相邻的高位进位,所以二进制的任意位上不可能出现数字2,借位规则是借一当二。
如欲将十进制数转换为等值二进制数,则对整数和小数要分别进行转换。整数部分的转换方法可概括为“除2取余,后余先排”,小数部分的转换方法可概括为“乘2取整,整数顺排”。
2 逻辑代数问题
布尔代数是英国数学家乔治·布尔(George B00le)于1849年首先建立的。至20世纪60年代,数字技术的发展使布尔代数成为逻辑设计的基础,所以布尔代数又称为开关代数或逻辑代数,它是逻辑电路分析和设计的重要数学工具。
逻辑代数用字母表示变量称为逻辑变量。逻辑代数与普通代数相比尽管其运算规律有许多相似之处,然而却有着本质的区别,这就是:(1)变量取值只能是1或0,且没有数值的概念,它只是代表两种逻辑状态而已,如电位的高或低,电路的通或断等。常用1表示真、高、是、存在等肯定概念;用0表示假、低、不是、不存在等否定概念。(2)逻辑代数是用数学形式来研究逻辑问题,研究的对象是事件存在的条件和结果。
逻辑代数中只有三种基本的逻辑运算:与、或、非。任何复杂的逻辑运算都可以通过这三种基本的运算来实现。凡输入变量与因变量的函数关系是一种逻辑关系,就称它为逻辑函数。逻辑函数和自变量的关系是由与、或、非的几个基本逻辑运算来决定的,因此,自变量和函数值只能取0或1。逻辑函数通常用逻辑表达式、逻辑状态表和逻辑图来实现。对一个输入变量而言,只有0和1两个取值,对于n个输入变量就有2n个不同的取值组合,如果把输入变量的全部取值组合和响应的输出函数值一一列举出来,即可得到逻辑状态表。逻辑函数表达式是用与、或、非等运算表示函数中各个输入变量之间逻辑关系的代数式,他便于用逻辑代数的规则进行运算。在数字电路中,用逻辑基本单元和逻辑部件的符号构成的图称为逻辑图,任何一个逻辑图输出与输入之间都有一定的逻辑关系,这一逻辑关系可以用逻辑图表示,逻辑图有比较接近工程实际的优点。一般说来,逻辑图都是根据函数表达式画出的。逻辑函数由与、或、非3种基本运算组成,这三种基本运算可以由相应的门电路来完成,如果用这些门的逻辑符号代替函数表达式中相应的运算,将相与的各变量作为与门的输入量、相或的各变量作为或门的输入量、原变量作为非门的输入量,这样就可以得到函数的逻辑图。以与运算为例,布尔表达式为F=AB,当A、B的值同为1时,输出函数F的值才为1,其真值表如下表所示。
由三种简单的逻辑门可以组合成复杂的逻辑门,如与非门、或非门、异或门、同或门等。以与非门为例,其布尔表达式为,则其真值表如下所示。
3 集成逻辑门电路问题
集成逻辑门电路主要有双极型晶体管(BJT)开关电路、TTL集成逻辑门和CMOS集成逻辑门等。在数字电路中,二极管和BJT大多数工作在开关状态。它们在脉冲信号的作用下,时而饱和导通,时而截止,相当于开关的“开通”和“关断”。研究它们的开关特性,就是具体分析导通和截止之间的转化问题。(如图1)
上图是BJT的集成逻辑门电路图和输出电位波形图。由图可见,由于电路中加入钳位二极管D和钳位电源U使V0的电平被钳位在U+UD,这就使Vo的上升时间t比不加钳位电路时的上升时间t大为缩短,如图(b)所示。这就是说Vo上升时间的缩短是靠牺牲输出电压幅度换来的。在实际应用中,当对输出电平幅度稳定性、开关速度等有一定要求的场合,常常采用这种输出端具有钳位电路的反相器。在实用的反相器电路中,为保证输入低电平时BJT能可靠地截止,通常在电路中增加了电阻R2和负电源-UEE,当输人低电平信号为零时,BJT的基极将为负电位,发射结处于反向偏置,从而保证了BJT的可靠截止。CMOS逻辑门电路是在TTL逻辑门电路问世后被开发出的被广泛应用的数字集成器件,是目前应用非常广泛的逻辑器件。CMOS逻辑门电路的工作速度可与TTL相比,但抗干扰能力和功耗则优于TTL电路,正是由于CMOS电路的这些优点,使得其在超大规模集成电路中得到了广泛应用。
4 结语
数字电子技术主要研究各种集成器件及逻辑门电路的功能和运用等,随着计算机科学与技术的迅速发展,数字电子技术的优势也更加突出,为电子技术的发展起了巨大的带动作用。数字电子技术中的关键问题有很多,由于篇幅所限,本文仅对其中的数字逻辑问题、逻辑运算问题及集成逻辑门电路问题进行了简要介绍,希望能够为初学者科普一下基本的数字电路知识。
关键词:建筑结构;裂缝检测;图像处理;
中图分类号: TU3 文献标识码: A 文章编号:
作者简介:赵业保(1989 ),男,江西九江人,硕士,主要从事结构工程的科研工作。E-mail: 。
0引言
土木工程中的建筑结构、桥梁及道路路面等基础设施在各种因素的作用下,会产生不同程度的裂缝,而建筑物的破坏往往由裂缝开始。
目前国内的结构物裂缝的检测方法中,广泛采用的还是传统的作业方式,还有一些混凝土裂缝检测仪问世,主要用来检测大型混凝土建筑物。基于数字图像技术对建筑结构裂缝检测的方法能够高效、精确、低成本的处理建筑结构裂缝的检测问题。
本文以某厂房墙体裂缝为例,由原始图像选定观测区域,将图像转化为灰度图像,经过阀值处理、消除噪点、边缘检测等数字图像处理技术,获得了裂缝长度、裂缝面积和裂缝密度等参数。
1数字图像的测量原理
本研究利用 MA T L A B软件编制计算程序,对读入的数字图片进行自动处理,快速的判别并提取出图像的裂缝,并对观测区域的裂缝密度进行计算.具体图像处理流程如下:
1 ) 选取初始图像,然后对分析区域进行切割处理;
2 ) 将切割后的图像进行变换,变换为灰度图像;
3 ) 为提高灰度图像的亮度,对其进行直方图均衡化处理:
4 ) 进行二值运算,使图像转化为二值图像;
5 ) 将上述的二值图像进行形态学处理,提取出裂缝区域。
1.1数字图像的基本概念
对于任何一幅数字图像,可用两种分辨率来描述
其细微程度:第一种就是空间分辨率,第二种即灰度级分辨率。
通过采样和量化两个过程,将数字图像用整数阵列的形式来对其描述,其本质上则是一个m×n的矩阵。
式中:x,y是图像中像素点的直角坐标值;
f ( x, y )是位置( x, y )处的灰度值; x=0, 2,…, m-1; y=0, 2,…, n-1。
图像处理过程中得到的各步骤分析图像如图1、图2所示
1.2数字图像分割
图像分割过程是把数字图像按其特征分成不同的区域并提取出所需目标的技术和过程,通常也可以称之为数字图像的二值化处理。本文根据本次研究的特点,选择阀值分割法处理数字图像。确定阀值T=65,阀值范围0-255。
阀值方法的数学模型可以定义如下:对于任何满足的点(x,y)定义其为对象点,而其他点则称之背景点,所以,阀值处理后的图像g(x,y)定义为式子(2):
1.3形态学除噪
形态学图像处理运算有两种基本形式,膨胀运算和腐蚀运算,在此基础上可以衍生出开启运算和闭合运算等。腐蚀运算是一种用来消除图像中目标物图像边界点、消除噪音并使其边界向内部收缩的处理过程;膨胀运算则是将与目标区域接触的背景点合并到该目标物图像中,呈一定规律的向外部扩张的一种运算。
开运算就是用同一个结构元素对原始图像先腐蚀运算再进行膨胀运算的处理过程;而闭运算就是用同一个结构元素对原始图像先膨胀运算再进行腐蚀运算的处理过程。对图3的图像依次进行膨胀、腐蚀运算,开、闭运算,得到结果,见图4、图5。
1.4边缘检测
利用边界跟踪的方法,对图像边缘进行分割。从图像灰度梯度图中选出灰度梯度最大的点作为边界跟踪的初始点,之后在该点的领域中选择梯度最大的点做为第二个边界点,重复上述步骤,回到初始点,边界分割完成。得到图像轮廓,见图6。
2结构物裂缝的检测与分析
2.1裂缝面积与裂缝密度
针对结构物裂缝图像来说,裂缝密度就是裂缝的面积与结构物观测区域面积的比值。
为计算表征裂缝特征的真实参数, 在拍摄裂缝图像时使用已知长度的参照线。设参照线实际长度为 c、 图像中像素点个数为 n, 则一个像素点对应的实际长度即为 c/n。
二值图像矩阵中值为 1 的个数即为非裂缝区域的总像素个数 N2, 而非裂缝区域的实际面积为 Area2=N2 ( c/n)²。把Area1/( Area1+ Area2)定义为density,即裂缝密度:
density =Area1/( Area1+ Area2) (3)
对图像进行图面积、密度等量化计算分析,可求出图像中的结构物的裂缝面积和裂缝密度分别为:
Area1=46377 pixel
Density=4.020%
2.2裂缝长度与裂缝宽度
裂缝长度就是待处理图像的待处理区域裂缝的像素长度;裂缝宽度就是裂缝图像中选定区域中任意贯通线与裂缝相交的像素长度。
采用本文介绍的方法对图像中裂缝观测区域进行检测与分析,得到裂缝相关数据,裂缝长度为1274.047 pixel,换算为292.288mm;裂缝宽度为36.401 pixel,换算为8.351mm。
3结语
数字图像测量方法所需设备简单,操作简便,可广泛的运用于实际工程当中;图像的处理过程通过计算机实现自动化,能够高效、准确的得到所需数据。
本文基于MATLAB平台的图像测量系统,选取某厂房墙体裂缝区域图片,对含有裂缝的数字图像进行处理,提取与结构物裂缝面积成正比关系的像素,利用该像素值可进行结构物裂缝密度等参数的计算。该方法具有省力、高效、快速、简单、可靠、易行特点,能应用于实际工程。
参考文献:
[1] Michel Kuntz. Digital image correlation analysis of crack behavior in a reinforced concrete beam during a load test[J].Civ.Eng.33(11).
1电子商务面临的安全问题
电子商务安全从整体上可划分为两大部分:计算机网络安全与电子商务交易安全。计算机网络安全实际上就是指电子商务网站的安全,包括计算机网络设备安全、计算机网络系统安全、数据库安全等,威胁计算机网络安全的主要因素有软件系统与网络协议潜在的漏洞、黑客的恶意攻击等。商务交易安全主要是针对交易在互联网上进行时所产生的各种安全问题,是在传统计算机网络安全的基础上顺利进行电子商务交易的安全保障。攻击者通常经过窃取与纂改交易信息、假冒他人身份等方式来破坏交易的通信过程,为自己非法谋取利益。因此商务交易安全要求实现交易信息的保密性、真实性、完整性和不可抵赖性。计算机网络安全与电子商务安全相辅相成,不可分割。计算机网络安全是电子商务交易安全的基础保障,电子商务交易安全是计算机网络安全的扩展延伸。
2计算机网络安全策略
计算机网络本身的安全性是电子交易能否顺利安全进行的基础,为了保证电子商务基础平台的安全性,通常需要采取以下技术手段:
(1)防火墙系统。防火墙系统是当今为保证网络安全所采取的主要技术手段,通常由一系列的软件和硬件构成。防火墙通过监控进出内部网络的数据包和链接方式,在内部网络和外部网络的交界处建立起一道安全屏障,使未经授权的用户难以访问专用网络的资源,从而降低内部网络遭到外部袭击的风险。为做到这一点,防火墙必须是内部网络和外部网络的唯一通道,并且可以由用户自行设置过滤规则,从而实现对所有来自于外部的访问的控制与监测。由于防火墙只能监视OSI2层到7层之间的网络活动状况,因此防火墙系统也存在着一定的局限性,例如:不能防止来自内部网络的攻击、不能保证网络免遭病毒攻击、不能抵御数据驱动型攻击等。
(2)VLAN。VLAN技术通过将服务器置于内部网络独立的广播域中以防止内部主机通过扫描、监听、ARP欺骗等手段获取自己权限以外的服务器信息,在一定程度上弥补了防火墙不能防止内部攻击的弱点,同时也降低了外部攻击者利用内部防御薄弱的主机发动内部攻击的危险。
(3)入侵检测系统。在单纯的防火墙技术已经不能再从容地应对日益提高的网络安全风险的今天,入侵检测系统成为了防火墙之后的第二道安全闸门。在不影响网络性能的前提下,入侵检测系统监控内部网络的运行状态,可以在攻击即将发生时提醒系统管理员,并追踪相关攻击的源头。因此入侵检测系统能够提供对内部攻击、外部攻击和误操作的实时监控,能够有效地检测并防止非法行为的发生。
(4)侵扰模拟器。侵扰模拟器通常分为两种,一种通过模拟外部攻击来检测系统的安全漏洞,比较著名的有免费软件SATAN,另一种通过检查自身所在系统漏洞的方式来搜索电子商务网站的安全缺陷,应用比较广泛的软件包有COPS和TAMU-Figer。
(5)数据库安全技术。电子商务网站的买家和卖家信息、产品信息、交易信息等都存放在后台的数据库中,因此数据库颇受攻击者的亲睐。为了使用户信息的安全性与商业机密的安全性得到保障,数据库的安全控制也就显得至关重要了,常采用的方法有:用户身份识别、定义存取权限、定义试图、审计追踪和部分敏感数据加密等。这些技术手段通常结合起来使用,为数据库系统的安全运行保驾护航。
3电子商务交易安全策略
(1)数据加密技术。在信息传输中,为了实现对敏感数据的保密,原始数据(明文)经过特定的加密函数和加密密钥运算后发往目的地,接收方收到处理过的数据(密文)后用相应的解密函数和解密密钥运算,使数据恢复成原始状态,这样即使信息在传输过程中被非法截获也难以被攻击者识别。加密算法通常分为两类:对称算法和公开密钥算法。对称算法的加密密钥和解密密钥之间可以相互推导,甚至使用一对相同的加密密钥和解密密钥。这种算法虽然运算速度快,但密钥管理困难,一旦泄露,数据的保密性将受到严重威胁。公开密钥算法的加密密钥和解密密钥相互匹配,但在合理假定的长时间内不可相互推导。每个节点所拥有的一对密钥中一个公开另一个则需保密,公开的密钥可以像电话号码一样公布,解决了对称算法中密钥分发难的问题,目前已被广泛应用于安全和认证领域。但是这种算法运算复杂,运算时间长,面对着电子商务中大批量的敏感数据更是显得力不从心。
(2)数字摘要。对一段明文进行哈希运算后得到唯一一个与之相对应的结果,这个运算结果就是该明文的数字摘要。由于数字摘要是相对应明文的唯一标识,并且无法通过对数字摘要进行逆运算得到明文,因此数字摘要可验证信息的完整性。发送方通常把数字摘要一起发送,接收方在收到数据后用哈希函数对其进行运算,通过比较运算结果和收到的数字摘要是否相同来验证数据的完整性。但是数字摘要无法确定消息的真实性,无法验证发送者的真实身份。
(3)数字签名。数字签名是信息认证中的一种重要技术,它建立在公开密钥算法和数字摘要这两种技术的基础上,能够很好地验证数据的真实性,并保证信息的不可抵赖性,目前被广泛运用于电子商务的身份认证机制中。考虑到公开密钥算法较为复杂,要是对整段消息加密会浪费很多时间,因此发送方用私钥对数字摘要加密,得到发送方的数字签名,然后把密文和数字签名一起发给接收方,接收方先用发送方事先公布的公钥对数字签名解密得到数字摘要,再用哈希函数运算解密后得到的明文,把运算结果和数字摘要进行比较。由于只有发送方的公钥才能解开其私钥加密的数据,因此可以验证消息的真实性,且发送方不可否认或难以否认自己曾发送过这样一段消息的事实。
(4)数字证书。上述几种技术均无法确认交易双方的合法身份,所以就需要数字证书来保证参与方的公钥是可信有效的。CA(CertificateAuthority)是负责认证用户身份的合法性的权威认证机构,当用户的真实合法身份被CA确认后,CA会为用户分配一个唯一的名字并签发数字证书,数字证书上有用户名字、用户公钥以及CA的数字签名等信息。通信双方就可以通过验证对方数字证书上的签名来判定对方身份的合法性。
(5)动态安全的实现技术。动态安全技术是上述几种技术的综合实现,实现过程如下,设甲乙双方要进行通信:①甲方要给乙方传信息,甲先从数据库中找到乙的数字证书并对它进行验证;②确认乙的合法身份后,甲对信息进行哈希运算,得到数字摘要,并用自己的私钥对数字摘要加密得到数字签名;③甲随机产生一个加密密钥(常为DES密钥),用事先约定好的加密算法(对称加密算法)和加密密钥给明文加密,并用乙的公钥(乙的证书中可得)给DES密钥加密;④甲将自己的数字签名、加密后的DES密钥以及密文一起发送给乙;⑤乙验证甲身份的合法性,方法与①一样;⑥乙用自己的私钥给收到的DES密钥解密,再用DES密钥给密文解密得到明文;⑦乙用甲的公钥给收到的数字签名解密,得到数字摘要,再用明文进行哈希运算,若运算结果与数字摘要相同,则消息的完整性未受损害,否则消息在传送的过程中已被纂改。已经广泛应用于电子商务体系中的SSL协议和SET协议就是对动态安全综合实现技术的具体运用。SSL协议建立在可靠的传输层协议上,它提供数字认证、数据加密、数字摘要等功能,且由于SSL协议对应用层协议具有独立性,因此高层的应用层协议(例如HTTP、FTP等)可以与之无缝对接,透明地建立在SSL协议之上。但是SSL协议缺少了买家对商家的认证,随着商家数量的增多,各商家的信誉度也参差不齐,这一问题也日益突出,于是出现了一种新的安全协议SET。与SSL的安全范围仅限于买家到商家的信息交流不同,SET协议对所有参与交易的成员(包括持卡人、商家、支付网关等)都制定了严格的身份认证程序,并对他们之间的信息流采取了一系列保护措施。一般公认SET协议的安全性要高于SSL协议,SET协议的采用率也有不断提高之势,但SET协议也存在着一些缺陷与漏洞,仍然需要进一步改进。
关键词:Proteus;数字电子技术;数字计算器
中图分类号:TP319
文献标识码:A 文章编号:1672-7800(2015)005-0090-02
作者简介:李嘉诚(1994―),男,湖北武汉人,南昌大学软件学院学生,研究方向为软件工程、嵌入式系统。
0 引言
数字电子技术是深入研究计算机、手机等数字系统的基础,其经典的概念、理论,是深入掌握数字部件的基石。数字电子技术中的逻辑概念、不同规模的组合电路和时序电路以及基于不同芯片实现计算器等功能部件,对于数字电子技术的深入理解和有效运用具有极大作用。
将数字电子技术的经典概念和方法,用现代设计开发工具予以实现,极大提高了各类数字逻辑部件和系统的设计与开发效能。Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件,从原理图布图、代码调试到单片机与电路协同仿真,一键切换到PCB设计,能实现从概念到产品的完整设计。电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,是设计和实现数字电路功能部件的极好工具。本文以数字计算器为例详述其在PCB平台上的设计与实现。
1 计算器功能简述
1.1 计算器逻辑功能
计算器的工作模式有3种:加法、减法和乘法。用两位逻辑变量S1S0来控制,A和B表示参加运算的4位二进制数。对应关系如表1所示。
1.2 计算器算法
计算器的加、减和乘都是用加法器实现的。计算器加法可以直接用一片4位二进制加法器芯片74LS283实现2个4位二进制数A+B的运算。
计算器减法利用补码运算特点,实现加B的反码,再基于74LS283芯片的输入端Cin=1实现2个4位二进制数A-B的运算。
计算器的乘法利用加和向低位移动,迭代4次,串行完成4位A×B的乘法运算。
1.3 计算器功能模块
该数字计算器运算部分主要由一片74LS283加法芯片实现。其输入端是被加数和加数,输出端是二者的和。所以必须加上相关电路模块,将加法、减法和乘法的输入端转换成加法芯片的被加数和加数。该部分也叫函数发生器电路,它由2个多路选择器、求反电路、相与电路、数据输入寄存器和电路控制部分等组成,各模块功能如表2所示,其模块结构如图1所示。
2 模块设计
该计算器功能模块中比较复杂的是2个多路选择器、2片联动B口输入。
2.1 多路选择器设计
2个多路选择器的输出是加法器的两组输入。图1中的“3SELECT1”依据控制信号S1S0输出B、-B,或者部分和,分别表示加法、减法和乘法的加数、减数和乘法的中间值,用2片74LS153实现。“2SELECT 1”依据控制信号S1S0输出A或者0,分别表示加法、减法和乘法的被加数、被减数和乘法的中间输入值。
2.2 2片联动B口输入设计
2片联动B口输入由图1中的“Sum (HITCH4)”和“B (LOW4)”组成。前者是乘积的高四位寄存器,可以和B (LOW4)联动向低位移动,仅用于乘法运算。后者是乘积的低四位寄存器,在乘法运算中既为初值B,也是参与联动,向低位移动。在加法和减法中,是初值B。 计算器的3种模式,用S1S0编码加以区别。在乘法模式下,为达到4次迭代加和移位的循环,设计时可以采用两种方法实现:一种是硬联组合逻辑电路,实时提供控制信号,控制2片联动电路;另一种是采用微程序控制模式,按时序将依次需要的控制信号,顺序存储到存储器。在运行时,再依次读出,用于控制2片联动电路。
3 基于Proteus的数字计算器实现
基于图1在Proteus平台上实现各模块,如表3所示。
3.1 数字计算器操作
依据表1设计,当S1S0为00时,自动实现A+B,当S1S0为01时,自动实现A-B。其操作过程如表4所示。
3.2 简化设计
这些控制信息可以用存储器存储,按时序提取出来控制相应功能部件,实现乘积运算,这属于微程序控制方式实现控制。将表4予以整理,得到表5。
依据表5,得出数字电子技术中的逻辑函数表示,即可推导出表达式,按表达式实现电路,再按步骤操作电路,实现控制,这属于硬连线方式控制模式。表达式如式(1):
SW1=1SW7=Q3+Q2+Q1+Q0(1)SW8=SW7+Q0SW0=SW7+Q0
依据表达式组(1),电路在时钟控制下,依次实现以上乘法。也可以将表5中的控制信息组合存储器起来,用微程序方法产生相关控制信号。
4 结语
数字电子技术是工科类专业基础技术,深入理解其基本概念,在现代工具平台上,掌握和熟练运用组合、时序和各类芯片及其设计思路等相关知识,对于进一步掌握相关技术具有极大影响。借鉴数字计算器的设计和实现过程,基于Proteus软件平台,可以进一步设计和实现数字时钟、抢答器等数字部件。
参考文献:
[1] 徐慧民,安德宁.数字电路与逻辑设计[M].北京:人民邮电出版社,2009.
[2] DAVID MONEY HARRIS,SARAH L HARRIS.数字设计和计算机体系结构[M].北京:机械工业出版社,2014.
下面我们就来介绍6174的神奇之处,并逐步分析其中原因,即给出了一种初等得数学证明方法.
黑洞原本指宇宙空间内的一种密度非常大,体积非常小的天体,任何物质到黑洞那里,即便是目前已知速度最快的光也会被吸进去.在神秘的数字王国里,6174就是一个“数字黑洞”.数字黑洞,即满足某种条件的所有数,通过一种运算,经过一步或几步运算之后,结果会掉入一个“黑洞”,即循环出现.我们来看6174神奇的地方.
任取一个四位数(四个数字不全相同),按数字递减顺序排列构成最大数;再按数字递增顺序排列构成最小数,用最大数减去最小数,所得差如不是6174,则按上述方法再作差,至多不过7步就都会得到6174,被称为Kaprekar常数.
如取四位数6767,按以上方法作运算如下:
7766-6677=1089,
9810-0189=9621,
9621-1269=8352,
8532-2358=6174,
7641-1467=6174,
……
对任意的一个四位数(四个数字不全相同),经过作这种运算,在7步之内,都会得到6174,这就是6174神奇之处,也是数学奇异美的魅力所在.
这到底是为什么呢?数学求真,不仅要知其然,还要知其所以然.下面我们就来探索一下:
四位数共9999-999=9000个,其中除去四个数字全相同的,余下9000-9=8991个数字不全相同.设M是一个四个数字不全相同四位数,把M的数字按递减的次序排列得到的数记作M大;把M中的数字按递增次序排列得到的数记作M小,作第一次运算后得到的数为M1,作第二次运算后得到的数为M2
设四位数M是由数字a、b、c、d构成,不妨设a≥b≥c≥d(等号不同时成立),则
M大=1000a+100b+10c+d,
M小=1000d+100c+10b+a,
M1=M大-M小=1000(a-d)+100(b-c)+10(c-b)+d-a=999(a-d)+90(b-c).
所以,M1只依赖于(a-d)与(b-c),又由a≥b≥c≥d且等号不同时成立,可知:a-d≥b-c,b-c≥0,a-d>0,这就意味着a-d可以取1,2,…,9九个值,b-c只能取不大于a-d的值.
若a-d=1,则b-c只能取0,1,此时,M1只能取值:
999×(1)+90×(0)=0999,
999×(1)+90×(1)=1089,
若a-d=2,则b-c只能取0,1,2,此时M1只能取1998,2088,2178.
a-d=1,2,…,9的情况下,b-c所可能取值的个数加起来:2+3+4+…+10=54.
所以M1只可能取54个值,又有一部分是数码相同仅仅是数位不同的值,这些数值在作下一次运算时得到M2是一样的,我们把它看作是等价的,剔除这些因数,在M1的54个可能值中,只有30个是不等价的,它们是:
9990,9981,9972,9963,9954,9810,9711,9621,9531,9441,8820,8730,8721,8640,8622,8550,8532,8442,7731,7641,7632,7551,7533,7443,6642,6552,6543,6444,5553,5544.
对于这30个数逐个地用上述法则把它换成最大与最小数的差,至多6步就出现6174这个数.至此,神奇的四位数6174就被破解了!
参考文献
[1] 文卫星.引导学生欣赏与发现数学美―以极限教学为例[J].数学教育学报,2012(21):56-60.
[2] 张奠宙.数学美与课堂教学[J].数学教育学报,2001(11):1-3.
[3] 孙庆虎.奇怪数6174与循环链[J].安徽教育学院学报(自然科学版),1996(1):21-23.
关键词:小学生;数学;计算能力
一、透彻理解算理
算理是数学计算的基础,一切数学计算都是在遵循算理基础上进行的,因此,要培养学生的计算能力,首先就是让学生理解数学计算的算理。所谓算理,就是数学计算的原则。数学计算的法则就是加减乘除,也就是通常所说的四则运算,它是数学计算的基础,而数学四则运算的基本算理就是十进制原则和借位原则。学生在进行四则运算时,如果能够理解其中的运算规则,那么计算能力就能一下子提高起来,也就不会觉得数学学习很难了。
但是,许多数学老师在教四则运算时,往往会忽视对其中算理的讲解,甚至有的老师觉得简单的四则运算不值得花费宝贵的课堂时间去讲解。殊不知,对于二年级的小学生来说,如果学生无法理解数学算理,会造成将来学习更高级的数学知识时的困难,最终导致数学成绩无法得到提高。对于四则运算算理的讲解,有的老师往往只是简单解释它们的含义,只是让学生记住这样的原则就行:两个数相加时如果超过10就要向前一位数进一位,相减时如果减不掉就要向前一位数借一位。因为在老师的心里,这样的讲解是再清楚不过了,学生应该能明白。但实际情况可能是老师刚解释完,学生做计算题却依旧做不出来。其问题不是老师讲解得不够清楚,而是学生根本没有理解其中的算理。
二、培养心算能力
目前学生的心算能力状况不容乐观。尤其是在现在数学计算工具越来越多、功能越来越齐全的状况下,现在的学生越来越依赖数学计算工具,甚至有很多学校在小学二三年级时就开始教学生使用数学计算工具,而学生在使用数学计算工具时感受到的便捷和快速也容易让他们产生依赖感,从而放弃自己动手计算。这对小学生的危害是极其严重的,他们的数学计算能力只会越来越差。
要解决这种现况,除了要禁止在小学低年级阶段使用数学计算工具外,还要特别注重培养学生的计算能力。在学生掌握笔算之后,教师就要开始慢慢培养学生的心算能力。心算可以说是笔算之后计算能力的进阶,心算能力的培养对提高学生计算能力而言是必不可少的,学生心算能力越高,其对数字的接受能力就越强,数学计算就会越快、越准确。
由于心算对学生的数字敏感能力要求较高,所以对二年级的学生而言刚开始时会比较困难,但这个困难的过程却是培养学生计算能力的重要过程。数学老师可以在课堂前5分钟进行,在刚开始时可以选择简单的10以内的四则运算来进行,然后慢慢提高难度。对学生的培养,也可以按照座位顺序,逐个进行,让每个学生都能得到锻炼。
这种培养学生心算能力的方式可能在短期内效果不明显,但长期如此,学生的心算能力和整体计算能力都能得到显著提高。此外,也可以要求学生在课后遇到任何有关数学计算时,都尝试着通过心算去解决。
三、增强理解数字内涵的能力
数学计算能力的提高,不仅仅是体现在学生做数学题目的准确度和速度上,还体现在学生对数字所表达的内涵的理解能力上。数字在不同的环境下所表达的内涵会有所不同,有时候会超出单纯的数字本身的内涵,这时,学生能正确理解数字所表达的内涵就显得极其重要。
比如,有一道这样的数学题:哥哥今年4岁,弟弟的年龄是哥哥的一半,那么当哥哥100岁时,弟弟是多少岁?学生中有出现弟弟50岁这样的答案。出现这种错误的根本原因,其实不是学生计算出错,而是学生没有理解其中数字所表达出来的真正含义,因为有时数字所代表的并非真正的数学计算内涵,不能单纯用数学计算去解决。当然这也和二年级小学生的认知能力有关。
数学教师要注重对学生数字认知能力的培养,要尽力避免出现数字认知内涵的错误,让学生对以后的数学学习有更好的认知。只有这样,学生的数学理解和计算分析能力才能随之得到提高。
参考文献:
[1]蔡 华.浅议小学生数学计算能力的培养[J].小学科学(教师论坛),2011,(2).
一、强化思想教育,重视计算错误
心理学认为,认知是情感和行为反应的中介,引起人们情绪和行为问题的原因不是事件本身,而是人们的思想,也就是说思想指挥着行为和情感。学生对计算不重视,容易产生应付的思想,总是把错因归结为“粗心”。教师应在思想上加强教育,使学生明白引起计算错误的因素有很多,并不是仅仅是“粗心”造成的,从而使学生在思想上引起足够的重视。
二、坚持训练,提高口算能力
口算是笔算、估算和简便计算的基础,也是计算能力的重要组成部分。只有口算能力强,才能提高笔算速度和计算正确率。培养学生的计算能力,要重视基本的口算训练。因此,在日常的教学中,切实加强口算基本功训练,循序渐进地达到熟练的程度。
三、强化运算能力
1. 强化运算顺序。学生的思维定势和不认真审题容易产生运算顺序的错误。要求学生遇到繁琐的题目时不要畏难,要沉着、冷静地看清题中的运算数字和符号,确定运算顺序再动笔计算。
2.强化特殊数值的记忆。计算中的常用数要让学生在理解的基础上熟记,这可以大大提高计算的准确性和速度。
3.强化估算判断运算结果。验算是防止错误的重要措施。验算的方法多种多样,用估算判断运算结果的合理性是最简便的一种。诚然估算只能看出明显错误,不能代替计算和验算,但估算和多种验算方法的结合,就能提高检查的效率。
4.强化运算技巧。简便计算有利于培养学生思维的灵活性和敏捷性,提高计算能力。强化计算技巧,要求学生在做题时,观察数字、运算符号的特征和算式的特点,合理运用运算定律或运算性质自觉地进行简便计算。
四、加强对比分析,纠正认知偏差
如教学405÷3=15时,学生是这样想的:先用被除数百位上的4除以3得1,在商的百位上写1;被除数十位上的0表示没有,不好移下来,只能把个位上的5移下来,和百位上的1组成15,用15除以3得5,所以405÷3=15。学生认知上出现了明显的偏差,即认为被除数十位上的0表示没有就不可以移下来和百位上的1组成10。
针对学生出现的这种错误,我采用新旧算式对比分析的策略纠正学生的认知偏差。首先出示下面两道准备题让学生计算:30÷2=15、40÷4=10学生很容易正确算出结果,我及时引导学生思考:“两位数除以一位数,被除数个位上的0移下来了吗?”学生经过观察发现:无论被除数十位上是否有余数,被除数个位上的0都要移下来。如果组成的数小于除数,就在商的个位上补0,如果组成的数大于除数,就要继续除。最后,我问学生:“在405÷3的竖式计算时,被除数十位上的0需要移下来吗?”学生异口同声地说:“需要”我说:“是啊,即使是0,也要移下来和百位上的余数1组成10,再继续除以3。你们会算吗?试试看”学生都能正确算出结果。通过新旧算式对比分析,我很容易纠正了学生的认知偏差。
五、充分利用错例资源,进行有效分析
错误总是难免的,引导学生发现错误后应总结出错误原因并给与改正。教师应选择常见的典型错例,有针对性地让学生分析、讨论,通过集体交流,达到既帮助犯错学生发现错误、改正错误,又提醒其他学生防止出现类似错误的目的。
六、注重非智力因素,养成良好学习习惯
1.审题习惯。要学生认真审题,看清题目中的每一个数字和运算符号,避免抄错数字、符号等不应该出现的错误。
2.书写习惯。在计算过程中,要求书写整齐清洁,格式符合要求,计算正确合理。要求做到书写整洁,格式规范,计算正确、迅速,方法合理、灵活。
3.草稿的习惯。督促学生养成做数学题一定要打草稿的习惯。草稿上竖式要书写要整齐,便于查对。
4.检验的习惯。大部分学生的检验都是被动的,要让学生认识到检验的重要性,使检验成为学生的自觉行为。
关键词:KenKen游戏;运算能力;逻辑推理能力
中图分类号:G633.6文献标识码:B
文章编号:1009-010X(2012)04-0064-01
今年年初赴美访问时,美国北卡罗来纳大学夏洛特分校的Harold Reiter教授向笔者推荐了KenKen游戏,并表示非常希望将其推广到中国。KenKen是一种数学游戏,是日本数学教师宫本哲也(Tetsuya Miyamoto)为帮助学生学习数学而发明的。日语中“Ken”的意思是“聪慧”,这个游戏考验了学生的综合逻辑能力和四则运算能力。从2004年到现在,KenKen已经在世界多个国家得到传播和认可,Harold Reiter教授多次在他的数学夏令营中向孩子们介绍KenKen,在学生、教师和家长中引起非同一般的反响。
KenKen是一种在方格纸中填写数字的游戏,它的规则是:给出n×n的方格,用1到n这些数字填入其中,每一行每一列都不能有重复的数字。方格中用黑色粗线框出若干个限定框,称为“盒子”,每个盒子中数字的和、差、积或商会被标注在盒子的左上角,称为“提示”,如“6+”,“3-”,“10×”,“2÷”等等。如果一个提示是“6+”,说明这个盒子中的数字之和为6;如果提示是“3-”,说明这个盒子中的大数减小数差为3;如果提示是“10×”,说明盒子中的数字之积是10;如果提示是“2÷”,说明盒子中大数除以小数商是2。如果一个盒子只框住了一个方格,那么提示就直接确定出了其中的数字。
如图分别是一个只包含加减法运算的KenKen和一个只包含乘除法运算的KenKen:
KenKen和数独类似,但数独的逻辑性更强,KenKen则逻辑性与计算性并重。该游戏难度可以设计得非常低,只要学过简单运算的学生都可以完成。小学中高年级是玩KenKen游戏的好阶段,学生会发现自己在玩游戏的同时不知不觉练习了加减乘除运算,并锻炼了自己的逻辑思维能力。KenKen也可以设计得颇具挑战性,对于有一定难度的问题,我们不妨鼓励学生合作解决。例如,对于小学高年级的学生或初中生,完成下面6×6的KenKen就可以在讨论中进行:
可以给初中生提供这样的游戏背景:在下面4×4的KenKen中,确定k的值,并找到游戏的解。这个问题富有挑战性,在解决问题时,学生先从最简单的“12×”入手,找到12的因数,再逐步分析满足“96×”和“144×”的可能数字。标注所有可能后会发现,“k+”这个盒子中的数字是随之确定的,因此,有时各种提示是互相牵制的,去掉部分提示后仍然可以解决问题。
进一步地,教师还可以安排这样的活动:让学生制作自己的KenKen游戏。给出下面的各种盒子划分之后,先不标注提示,让学生自己创作。既可以用1,2,3,4来进行填充,也可以用2,4,6,8等数来填充,更可以尝试使用负数。教学中我们不妨引导学生思考,别人按照你所创作的提示来解决问题,是否一定得到唯一解呢?
《全日制义务教育数学课程标准(修订稿)》(送审稿)在各个学段都提出要培养学生的数感和符号意识,教师可以合理利用KenKen游戏来发展学生的数感和符号意识,并提高他们的逻辑推理能力,同时在激发学生对数学的热爱等方面也是很有价值的尝试。
关键词: 网络传输; 数字签名; 椭圆曲线; 电子商务
中图分类号:TP309 文献标志码:A 文章编号:1006-8228(2015)05-44-03
Abstract: Access to information through the network is becoming more and more popular in people's daily life. At the same time, the information during the network transmission is faced with the security threats such as being intercepted or modified and so on, while digital signature technology can provide a range of security services in the data transmission. This paper designs and implements a digital signature system with C/C++ and the elliptic curve digital signature algorithm. The test shows that the system has a good performance and meets the safety requirements of the signature algorithm.
Key words: network transmission; digital signature; elliptic curve; e-commerce
0 引言
随着信息和电子技术的迅速发展以及网络技术的广泛应用,世界已经步入了信息社会。在政治、军事、商业和日常生活中,人们经常需要在纸质材料上手写签名。手写签名具有确认、核准、生效、负责等多种作用。近些年随着计算机网络技术的飞速发展,陆陆续续出现了电子商务、电子政务和电子金融系统。在这些系统应用中,人们需要通过网络信息传输对电子的文件、合同、信件及账单等进行数字签名以代替手写签名。计算机作为国家的关键基础设施和战略命脉,其安全状况直接影响到国家的安全和发展。信息加密是保证信息安全的关键技术,其理论是信息安全的核心内容之一。目前的数据加密、数字签名、消息认证等信息安全技术都是以密码技术作为基础进行设计的。
在电子商务活动日益盛行的今天,数字签名技术已经受到人们的广泛关注与认可,其使用已经越来越普遍。各国对数字签名的使用已颁布了相应法案,我国也于2004年8月通过了《电子签名法》。目前已有的签名算法主要有RSA签名方案、ELGamal签名方案、椭圆曲线数字签名算法、盲数字签名方案等等。因此,设计出简单、安全、高效的数字签名系统对于电子商务、电子政务的推广和应用具有十分重要的意义。
1 椭圆曲线公钥密码系统简介
1985年,Victor Miller和Neal Koblitz首次提出将椭圆曲线用于公钥密码学的思想。其理论基础是定义在有限域上的某一椭圆曲线上的有理点可构成有限交换群[1]。
1.1 椭圆曲线密码体制
如果能通过某种方法将明文通过适当的编码方式嵌入到椭圆曲线E上的点,则可以定义基于椭圆曲线E的ElGamal公钥密码系统[2]。
密钥生成算法:设(E,+)是有限域Fp上的椭圆曲线,G是E的循环子群,生成元为P,其阶n足够大,使得循环子群G上的离散对数问题是难解的。随机挑选一个整数a,使得1?a?n-1,计算Q=a・P;公开公钥(Q,P,G),保存私钥a。
加密算法:假设Bob想把明文m加密发送给Alice,Bob首先获取Alice的公钥(Q,P,G),将明文m编码为群G中的元素Pm,再选取随机数r,1?r?n-1,然后计算c1=r・P=(x1,y1),c2=Pm+r・Q=(x2,y2),则密文为(c1,c2)。
解密算法:Alice收到密文(c1,c2)后,利用私钥a计算出Pm=c2-a・c1,再对Pm解编码得到明文m[3]。
1.2 椭圆曲线数字签名算法
椭圆曲线数字签名算法ECDSA的安全性是基于有限域上椭圆曲线有理点群上离散对数问题的困难性。ECDSA已于1999年接受为ANSI X9.62标准,于2000年接受为IEEE 1363及FIPS 186-2标准[4]。
1.2.1 参数建立
⑴ 设q(>2160)是一个素数幂,E是有限域Fq上的一条椭圆曲线(q为素数或2m。当q为素数时,曲线E选为y2=x3+ax+b。当q=2m时,曲线E选为y2+xy=x3+ax2+b)。
⑵ 设G是E上有理点群E(Fq)上的具有大素数阶n(>2160)的元,称此元为基点。
⑶ h是单向Hash函数h,可选择SHA-1或SHA-256等。
⑷ 随机选取整数d:1
⑸ (q,E,G,h)是公开参数,d与P分别是签名者的私钥和公钥。
1.2.2 签名生成过程
⑴ 对消息,Alice随机选取一个整数k,1?k
⑵ 在群E(Fq)计算标量乘kP=(x1,x2),且认为x1是整数(否则可将它转换为整数)。
⑶ 记r=x1modn。如果r为0,返回第一步。
⑷ 计算s=k-1(h(m)+dr)modn。如果s为0,则返回第一步。
⑸ (r,s)是Alice对消息m的签名。将(r,s)发送给Bob。
1.2.3 签名验证过程
Bob收到(r,s)后执行以下操作。
⑴ 检验r与s是否满足:1?r,s?n-1,如不满足,则拒绝此签名。
⑵ 获取公开参数(q,E,G,h)及Alice的公钥P。
⑶ 计算w=s-1modn。
⑷ 计算u1=h(m)wmodn及u2=rwmodn。
⑸ 计算标量乘R=u1G+u2P。
⑹ 如果R=O,则拒绝签名,否则将R的x坐标转换成整数,并计算。
⑺ 检验v=r是否成立,若成立,则Bob接受签名,否则拒绝该签名。
2 签名系统分析及设计
本节主要讨论椭圆曲线数字签名系统的总体分析和设计。
2.1 域参数的选取
椭圆曲线密码体制的安全性是基于有限域上椭圆曲线离散对数问题的难解性。为了使签名系统更加安全,应该选取更加安全的椭圆曲线,基于某条椭圆曲线的离散对数问题求解难度很大。
设定义于有限域上的椭圆曲线E,其中q=pn,p是一个素数。椭圆曲线E的有理子群E()的阶用表示。椭圆曲线好坏的标准在于的大小。Hasse定理给出的是域上椭圆曲线的阶,其中q=pn。
对于超奇异椭圆曲线:
⑴ n是偶数,。
⑵ n是偶数,。
⑶ n是奇数或偶数,p≠1mod4,t=0。
对于非超奇异椭圆曲线,t满足性质。
2.2 签名系统流程
该签名系统包括签名和验证两个主要过程,分别如图1和图2所示。
2.3 系统总体设计
签名系统总体流程图如图3所示。
[开始][系统登录][合法
图4中,密钥生成模块主要负责生成签名所需密钥;摘要处理模块主要针对需要签名的文档生成HASH摘要;签名生成模块主要对数字摘要进行签名并将签名附加到源文档末尾;验证模块即对签名进行验证并返回验证结果,用数字1表示验证通过、数字0代表未通过。
3 椭圆曲线数字签名算法的实现
该系统利用C/C++基于.NET平台设计并实现[5]。系统中常用的运算法则为加减乘除和取余运算(取余运算被包含在除法运算中)。因为ECDSA算法均是大整数的运算,所以此系统所有运算方法均采用有符号的二进制运算方法且结果同样为有符号二进制数。由于加法和减法运算较为简单,下面主要列出乘法和取余数算法的具体过程。
乘法运算算法描述:
step 1 被乘数与乘数按低位对齐;
step 2 取乘数为运算的低位与被乘数相乘;
step 3 使用加法算法将此次step 2的结果与step 3的结果相加;
step 4 重复step 2直至加数位数取完。
取余数运算算法描述:
step 1 被除数与除数按低位对齐;
step 2 依次取被除数未被运算高位直至取出的数大于等于除数。当此数值小于除数是商,上0,否则上1;
step 3 将step 2的得数按减法算法减去除数;
step 4 重复step 2直至被减数取完,step 3的结果即为余数。
因为ECDSA算法的效率很大程度上取决于倍点算法的效率,所以在此详述此系统中的倍点算法[6]。在系统运行中无论是签名过程还是验证过程均需要计算k*G(x,y)即k倍的点G。k的取值是从1到n(n为基点G的阶)n为一个大素数,所以k的取值可能很大。这就意味着逐步点加的方法将消耗大量的时间。因此,在此系统中设计了一种较为快速的倍点算法,需要输入椭圆曲线上的点G及整数K,输出椭圆曲线上的点P=k*G(x,y),具体过程描述如下:
step 1 令num=1,i=1,P=G;建立数组point以储存每一步的点值,Point[0]=G;
step 2 如果num
step 3 计算num=num/2,n=num,i=i-2;P=point[i];执行下列循环:
for j from i to 1
如果 num=k 则输出P;否则 n=n/2,num=num+n;
P=P+point[j-1];
系统实现时初始化过程主要确定签名系统中各个参数,签名过程使用的是ECDSA中的签名生成算法,可以对本地文件进行签名。打开系统后,点击签名可以对选定的文档(TXT文件或者DOC文件)进行电子签名。
签名成功后,签名结果会追加在文档末尾,如图5所示。
文档验证人收到文档后,选择验证按钮来对已签名文档进行验证。若文档从未被篡改过,则会显示验证成功,如图6所示;若在传输过程中或者是在验证该文当前,有人对签名后的文档进行修改,则验证结果提示文件不可信(即有人篡改文档内容)。演示文档中以删除“war”为例进行验证,结果如图7所示。
4 安全性分析
该签名系统是基于有限域Fq上的椭圆曲线数字签名系统,其安全性基于椭圆曲线密码体制的安全性即椭圆曲线上离散对数问题的难解性。具体实现时还有几点需要考虑[7]。第一,系统参数组中使用安全的随机数。签名算法中使用了随机数,每一次的随机数需要安全生成、保存和使用并销毁,并且每次都使用不同的随机数,这在一定程度上可以提高系统的安全性。第二,确定合适的系统参数。选择恰当的系统参数可以保证ECDLP问题的难解性,可以使用NIST推荐的系统参数。第三,使用安全的Hash函数。算法中需要使用Hash函数对文档内容进行处理,好的Hash函数应具有如下特点:函数的正向计算容易;函数尽可能随机且不可逆。可以选取SHA-1等安全的Hash函数。
5 结束语
近年来,在电子商务、电子政务等快速发展的推动下,数字签名技术也得到了快速发展和应用,并且日益成为内容丰富、应用广泛的信息安全技术领域的核心技术之一。其中,椭圆曲线数字签名算法是众多签名算法中广受关注的一种算法。本文基于椭圆曲线数字签名算法,采用C/C++编程实现了一个椭圆曲线数字签名系统。通过测试表明,所设计和实现的签名系统完全满足信息防篡改等安全性要求,在电子商务、电子政务以及电子金融等领域具有一定的实用前景。
参考文献:
[1] 张龙军,沈钧毅,赵霖.椭圆曲线密码体制安全性研究[J].西安交通大学学报,2001.35(10).
[2] 何大可,彭代渊,唐小虎等.现代密码学[M].人民邮电出版社,2009.
[3] 赵泽茂.数字签名理论及应用研究[D].南京理工大学博士学位论文,2005.
[4] 徐茂智,游林.信息安全与密码学[M].清华大学出版社,2007.
[5] 郑阿奇,丁有和.Visual C++教程(第2版)[M].机械工业出版社,2008.
为什么叫它“冰雹猜想”呢?顾名思义,这一猜想类似于自然现象――冰雹. 我们知道,冰雹的形成是由小水滴在高空中受到上升气流的推动,在云层中忽上忽下,越积越大并形成冰块,最后冰块突然掉落下来.
“冰雹猜想”就有这样的意思,一个数按照某种运算法则,作一系列的计算,其计算结果也在上下波动,但最后一下子像冰雹似地掉下来,最终结果变成一个数字1.
这个数学猜想的通俗说法是这样的:
任意给一个自然数N,如果N是偶数,就将N除以2;如果N是奇数,就将N乘3加1,将所得的结果继续按照上面的步骤运算,这样经过有限步骤后,最后的结果必定是自然数1.
为了验证这个猜想,我们不妨任意选几个数来试一试:
若N=9,则9×3+1=28,28÷2=14,14÷2=7,7×3+1=22,22÷2=11,11×3+1=34,34÷2=17,17×3+1=52,52÷2=26,26÷2=13,13×3+1=40,40÷2=20,20÷2=10,10÷2=5,5×3+1=16,16÷2=8,8÷2=4,4÷2=2,2÷2=1.
你看,经过19次运算后,最后变成了1.
若N=120,则120÷2=60,60÷2=30,30÷2=15,15×3+1=46,46÷2=23,23×3+1=70,70÷2=35,35×3+1=106,106÷2=53,53×3+1=160,160÷2=80,80÷2=40,40÷2=20,20÷2=10,10÷2=5,5×3+1=16,16÷2=8,8÷2=4,4÷2=2,2÷2=1.
你看,经过20次运算后,最后也仍然变成了1.
值得注意的是,假如N是2的正整数次幂,则不论这个数字多大,它将“一落千丈”,很快地跌落到1.例如:
若N=65536,则有65536327681638481924096204810245122561286432168421.
你看,它经过了16次运算,比9的运算次数还要小些.
我们说1是变化的最终结果,其实不过是一种方便的说法罢了.严格地讲,应当是这些数经过有限步骤的运算,最后进入了“1421”的循环.