电子商务安全技术

点赞:4065 浏览:14645 近期更新时间:2024-02-17 作者:网友分享原创网站原创

摘 要:今天电子商务安全技术主要指的是交易对象的身份认证,交易过程的安全.安全技术的基础就是大数运算.例如RSA数字签名算法它的安全性就是建立在大数计算上,该数字签名算法的数据安全长度为1024位,该长度远远超过了计算机的字长,所以在处理过程中无法使用单变量直接运算,而必须设计出相应的算法,实现大数运算.本文给出大数无符号整数四则运算(大数加减乘除).

关 键 词:电子商务安全技术四则运算VB程序源码

中图分类号:TP393.08文献标识码:A文章编号:1007-9416(2013)10-0200-03

1前言

电子商务安全技术基础就是大数计算.所谓大数指的是超出计算机字长的一种数值计算方式,例如使用VB设计程序时数据是保存在变量中,使用的变量分为不同类型,其中包括字节型Byte占用一个字节,整型Integer占用两个字节,长整型Long占用四个字节,双精度Double占用八个字节.所以使用变量表示数据或进行数据运算时最大的数据使用Double型占用八个字节共64Bits,如果处理的数据长度在64Bits以下可以直接使用变量直接进行运算,如果处理的数据长度超出64Bits,就无法使用变量直接进行运算,而必须设计出相应的算法模型.

2二进制整型数组

数制是数据表示的一种方式.在生活当中我们通常使用的数制是十进制,而计算机中使用的是二进制,在程序设计时还可能用到八进制或十六进制.对同一个数值可以用不同的数制表示方式.

对比不同数制数值的运算,十进制手工计算比较常用,而使用计算机进行计算时十进制就非常麻烦,解决的办法就是使用二进制数据.在上一篇论文《任意长度数制转换》当中阐述了二进制和十进制之间的转换,其中子程序Longdtob是将十进制数据转换成二进制数据,子程序Longbtod是将二进制数据转换成十进制数据.这两个转换子程序是在不同数制字符串之间的转换,但是这种转换的字符串数据还不能用于计算,为此我们必须对计算用的数据进行如下处理:

本文设计的算法模型是采用二进制整型数组来保存数据.

数组定义语句为Dimmva(2050)asinteger.数组名为mva,数组元素个数为2050,在此元素的个数就是表示二进制数值数据的长度.如果需要可以增加元素个数,这样就达到增加处理数据的长度.每一个数组元素值只有1或0两个.

下面是两个转换子程序,一个是二进制字符串转二进制整型数组,另一个是二进制整型数组转二进制字符串.

(1)二进制字符串转二进制整型数组子程序.


转换子程序定义

PublicSubbinstobinv(ByValvsAsString,ByValslAsInteger,ByRefbinv()AsInteger,ByRefsst0AsInteger,ByRefsed0AsInteger,ByRefscrtAsString)

DimiAsInteger,jAsInteger

sst0等于sed0-sl+1

j等于sed0-sst0+1

Fori等于sed0Tosst0Step-1

binv(i)等于Val(Mid(vs,j,1))

j等于j-1

Nexti

scrt等于"S"

EndSub

二进制字符串转二进制整型数组子程序调用:

bins等于”1101”

binl等于Len(bins)

st0等于1

ed0等于2050

Callbinstobinv(bins,binl,binv(),st0,ed0,svrt)

子程序运算结果

Binv(2047)等于1

Binv(2048)等于1

Binv(2049)等于0

Binv(2050)等于1

st0等于2047

ed0等于2050

(2)二进制整型数组转二进制字符串子程序.

转换子程序定义

PublicSubbinvtobins(ByRefbinv()AsInteger,ByValsst0AsInteger,ByValsed0AsInteger,ByRefvsAsString,ByRefvslAsInteger,ByRefscrtAsString)

DimiAsInteger

i等于sst0

vs等于""

vsl等于0

Do

Ifbinv(i)<>0Andvsl=0Then

vsl等于sed0-i+1

EndIf

Ifbinv(i)等于0Andvsl等于0Then

Else

Ifbinv(i)等于0Then

vs等于vs+"0"

Else

vs等于vs+"1"

EndIf

EndIf

i等于i+1

Ifi>sed0Then

ExitDo

EndIf

Loop

Ifsst0等于sed0Andbinv(sst0)等于0Thenvs等于"0"Ifsst0等于sed0Andbinv(sst0)等于1Thenvs等于"1"

电子商务安全技术参考属性评定
有关论文范文主题研究: 关于计算机的论文例文 大学生适用: 在职论文、学校学生论文
相关参考文献下载数量: 26 写作解决问题: 学术论文怎么写
毕业论文开题报告: 论文模板、论文总结 职称论文适用: 刊物发表、中级职称
所属大学生专业类别: 学术论文怎么写 论文题目推荐度: 经典题目

scrt等于"S"

EndSub

二进制整型数组转二进制字符串子程序调用:

St0等于2046

ed0等于2050

binv(2046)等于1

binv(2047)等于0

binv(2048)等于1

binv(2049)等于1

binv(2050)等于1

Callbinvtobins(binv(),st0,ed0,binsv,binlv,svrt)

子程序运算结果

Binsv等于”10111”

Blnlv等于5

用二进制整型数组用来保存任意长度二进制数据,运算的时候也使用二进制整型数组.

3无符号整型四则运算

数学中数值的基本运算指的是四则运算,也就是常说的加减乘除运算,在运算除法时还可以得到一个模.在计算机中进行程序设计时数据运算的复杂程度不一样,十进制最复杂,而使用二进制最为简便.

(1)加法子程序Longadd.

1101vad1(2050)被加数

+110vad2(2050)加数

10011vad0(2050)结果和

1100mc是进位

加法子程序调用:

vad1(2047)等于1被加数

vad1(2048)等于1

vad1(2049)等于0

vad1(2050)等于1

sst1等于2047

sed1等于2050

vad1(2048)等于1加数

vad1(2049)等于1

vad1(2050)等于0

sst2等于2048

sed2等于2050

Calllongadd(vad1(),sst1,sed1,vad2(),sst2,sed2,vad0(),sst0,sed0,svrt)

运算结果

vad0(2046)等于1和

vad0(2047)等于0

vad0(2048)等于0

vad0(2049)等于1

vad0(2050)等于1

sst0等于2046

sed0等于2050

(2)减法子程序Longsub.

110mc借位

1101vad1()被减数

-110vad2()减数

111vad0()结果差

使用此模型时被减数要大于等于减数.

减法计算过程子程序Longsub调用:

vad1(2047)等于1被减数

vad1(2048)等于1

vad1(2049)等于0

vad1(2050)等于1

sst1等于2047

sed1等于2050

vad2(2048)等于1减数

vad2(2049)等于1

vad2(2050)等于0

sst2等于2048

sed2等于2050

Calllongsub(vad1(),sst1,sed1,vad2(),sst2,sed2,vad0(),sst0,sed0,svrt)

运算结果

Vad0(2048)等于1差

Vad0(2049)等于1

Vad0(2050)等于1

Sst0等于2048

Sed0等于2050

(3)乘法子程序Longmul.

1101vad1(2050)被乘数

x110vad2(2050)乘数

0000m(2050,2050)中间结果

1101

+1101纵向累加得到乘积

1001110vad0(2050)积

在计算乘法时使用一个二进制整型二维数组m()保存中间结果.在计算时纵向保存每一个乘数数位乘上被乘数,填写好数据以后从个位向左纵向相加得到乘法的积.

乘法计算过程子程序Longmul调用:

vad1(2047)等于1被乘数

vad1(2048)等于1

vad1(2049)等于0

vad1(2050)等于1

sst1等于2047

sed1等于2050

vad2(2048)等于1乘数

vad2(2049)等于1

vad2(2050)等于0

sst2等于2048

sed2等于2050

Calllongmul(vad1(),sst1,sed1,vad2(),sst2,sed2,vad0(),sst0,sed0,svrt)

运算结果

vad0(2044)等于1积

vad0(2045)等于0

vad0(2046)等于0

vad0(2047)等于1

vad0(2048)等于1

vad0(2049)等于1

vad0(2050)等于0

Sst0等于2044Sed0等于2050

(4)除法子程序Longdiv.

vads(2050)商

vad2(2050)除数1101vad1(2050)被除数

vady(2050)余数(模)

除法计算过程:

用vad2()与vad1()逐段进行比较,小于等于时商1,大于时商0(商vads()),vady()在除不尽的时候保存余数(也被称作模).

除法子程序Longdiv调用:

vad1(2043)等于1被除数

vad1(2044)等于1

vad1(2045)等于1

vad1(2046)等于1

vad1(2047)等于0

vad1(2048)等于0

vad1(2049)等于0

vad1(2050)等于1

sst1等于2043

sed1等于2050

vad2(2047)等于1除数

vad2(2048)等于1

vad2(2049)等于0

vad2(2050)等于1

sst2等于2047

sed2等于2050

Calllongdiv(vad1(),sst1,sed1,vad2(),sst2,sed2,vads(),vssts,vseds,vady(),vssty,vsedy,svrt)

运算结果

vads(2046)等于1商

vads(2047)等于0

vads(2048)等于0

vads(2049)等于1

vads(2050)等于0

vssts等于2046

vseds等于2050

vady(2048)等于1余

vady(2049)等于1

vady(2050)等于1

vssty等于2048

vsedy等于2050

4结语

大数运算是通过设计的算法进行加减乘除四则运算,本文设计的算法是采用二进制整型数组保存长度超出计算机字长的数据.文中数组的长度决定了处理的二进制数据数值的大小,本文的数组长度是2050个二进制数位,如果需要可以任意增加数组的长度,只要计算机的内存足够大.目前我们使用的计算机基本上都能够满足这个要求,四则运算的难点是除法,如果使用十进制非常复杂,相对来讲二进制相对来讲要容易一些.

当前论文是系列论文的第二篇“任意长度数值无符号整数四则运算”,上一期《数字技术与应用》发表了“任意长度数值数制转换”.后续论文包括第三篇“任意长度数值有符号整数四则运算”.第四篇“任意长度数值实数四则运算”.在系列论文全部发表以后欢迎读者向作者索取VB程序源码.希望读者能够继续关注《数字技术与应用》.