淺談電子商務(wù)安全技術(shù)論文
電子商務(wù)安全技術(shù)基礎(chǔ)就是大數(shù)計(jì)算。所謂大數(shù)指的是超出計(jì)算機(jī)字長的一種數(shù)值計(jì)算方式,小編整理了淺談電子商務(wù)安全技術(shù)論文,歡迎閱讀!
淺談電子商務(wù)安全技術(shù)論文篇一
電子商務(wù)安全技術(shù)
摘要:今天電子商務(wù)安全技術(shù)主要指的是交易對(duì)象的身份認(rèn)證,交易過程的安全。安全技術(shù)的基礎(chǔ)就是大數(shù)運(yùn)算。例如RSA數(shù)字簽名算法它的安全性就是建立在大數(shù)計(jì)算上,該數(shù)字簽名算法的數(shù)據(jù)安全長度為1024位,該長度遠(yuǎn)遠(yuǎn)超過了計(jì)算機(jī)的字長,所以在處理過程中無法使用單變量直接運(yùn)算,而必須設(shè)計(jì)出相應(yīng)的算法,實(shí)現(xiàn)大數(shù)運(yùn)算。本文給出大數(shù)無符號(hào)整數(shù)四則運(yùn)算(大數(shù)加減乘除)。
關(guān)鍵詞:電子商務(wù) 安全技術(shù) 四則運(yùn)算 VB程序源碼
中圖分類號(hào):TP393.08 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2013)10-0200-03
1 前言
電子商務(wù)安全技術(shù)基礎(chǔ)就是大數(shù)計(jì)算。所謂大數(shù)指的是超出計(jì)算機(jī)字長的一種數(shù)值計(jì)算方式,例如使用VB設(shè)計(jì)程序時(shí)數(shù)據(jù)是保存在變量中,使用的變量分為不同類型,其中包括字節(jié)型Byte占用一個(gè)字節(jié),整型Integer占用兩個(gè)字節(jié),長整型Long占用四個(gè)字節(jié),雙精度Double占用八個(gè)字節(jié)。所以使用變量表示數(shù)據(jù)或進(jìn)行數(shù)據(jù)運(yùn)算時(shí)最大的數(shù)據(jù)使用Double型占用八個(gè)字節(jié)共64Bits,如果處理的數(shù)據(jù)長度在64Bits以下可以直接使用變量直接進(jìn)行運(yùn)算,如果處理的數(shù)據(jù)長度超出64Bits,就無法使用變量直接進(jìn)行運(yùn)算,而必須設(shè)計(jì)出相應(yīng)的算法模型。
2 二進(jìn)制整型數(shù)組
數(shù)制是數(shù)據(jù)表示的一種方式。在生活當(dāng)中我們通常使用的數(shù)制是十進(jìn)制,而計(jì)算機(jī)中使用的是二進(jìn)制,在程序設(shè)計(jì)時(shí)還可能用到八進(jìn)制或十六進(jìn)制。對(duì)同一個(gè)數(shù)值可以用不同的數(shù)制表示方式。
對(duì)比不同數(shù)制數(shù)值的運(yùn)算,十進(jìn)制手工計(jì)算比較常用,而使用計(jì)算機(jī)進(jìn)行計(jì)算時(shí)十進(jìn)制就非常麻煩,解決的辦法就是使用二進(jìn)制數(shù)據(jù)。在上一篇論文《任意長度數(shù)制轉(zhuǎn)換》當(dāng)中闡述了二進(jìn)制和十進(jìn)制之間的轉(zhuǎn)換,其中子程序Longdtob是將十進(jìn)制數(shù)據(jù)轉(zhuǎn)換成二進(jìn)制數(shù)據(jù),子程序Longbtod是將二進(jìn)制數(shù)據(jù)轉(zhuǎn)換成十進(jìn)制數(shù)據(jù)。這兩個(gè)轉(zhuǎn)換子程序是在不同數(shù)制字符串之間的轉(zhuǎn)換,但是這種轉(zhuǎn)換的字符串?dāng)?shù)據(jù)還不能用于計(jì)算,為此我們必須對(duì)計(jì)算用的數(shù)據(jù)進(jìn)行如下處理:
本文設(shè)計(jì)的算法模型是采用二進(jìn)制整型數(shù)組來保存數(shù)據(jù)。
數(shù)組定義語句為Dim mva(2050) as integer。數(shù)組名為mva,數(shù)組元素個(gè)數(shù)為2050,在此元素的個(gè)數(shù)就是表示二進(jìn)制數(shù)值數(shù)據(jù)的長度。如果需要可以增加元素個(gè)數(shù),這樣就達(dá)到增加處理數(shù)據(jù)的長度。每一個(gè)數(shù)組元素值只有1或0兩個(gè)。
下面是兩個(gè)轉(zhuǎn)換子程序,一個(gè)是二進(jìn)制字符串轉(zhuǎn)二進(jìn)制整型數(shù)組,另一個(gè)是二進(jìn)制整型數(shù)組轉(zhuǎn)二進(jìn)制字符串。
(1)二進(jìn)制字符串轉(zhuǎn)二進(jìn)制整型數(shù)組子程序。
轉(zhuǎn)換子程序定義
Public Sub binstobinv(ByVal vs As String, ByVal sl As Integer, ByRef binv() As Integer, ByRef sst0 As Integer, ByRef sed0 As Integer, ByRef scrt As String)
Dim i As Integer, j As Integer
sst0 = sed0 - sl + 1
j = sed0 - sst0 + 1
For i = sed0 To sst0 Step -1
binv(i) = Val(Mid(vs, j, 1))
j = j - 1
Next i
scrt = "S"
End Sub
二進(jìn)制字符串轉(zhuǎn)二進(jìn)制整型數(shù)組子程序調(diào)用:
bins =”1101”
binl = Len(bins)
st0 = 1
ed0 = 2050
Call binstobinv(bins,binl,binv(),st0,ed0,svrt)
子程序運(yùn)算結(jié)果
Binv(2047)=1
Binv(2048)=1
Binv(2049)=0
Binv(2050)=1
st0=2047
ed0=2050
(2)二進(jìn)制整型數(shù)組轉(zhuǎn)二進(jìn)制字符串子程序。
轉(zhuǎn)換子程序定義
Public Sub binvtobins(ByRef binv() As Integer,ByVal sst0 As Integer,ByVal sed0 As Integer,ByRef vs As String,ByRef vsl As Integer,ByRef scrt As String)
Dim i As Integer
i = sst0
vs = ""
vsl = 0
Do
If binv(i) <> 0 And vsl = 0 Then
vsl = sed0 - i + 1
End If
If binv(i) = 0 And vsl = 0 Then
Else
If binv(i) = 0 Then
vs = vs + "0"
Else
vs = vs + "1"
End If
End If
i = i + 1
If i > sed0 Then
Exit Do
End If
Loop
If sst0 = sed0 And binv(sst0) = 0 Then vs = "0" If sst0 = sed0 And binv(sst0) = 1 Then vs = "1"
scrt = "S"
End Sub
二進(jìn)制整型數(shù)組轉(zhuǎn)二進(jìn)制字符串子程序調(diào)用:
St0=2046
ed0 = 2050
binv(2046)=1
binv(2047)=0
binv(2048)=1
binv(2049)=1
binv(2050)=1
Call binvtobins(binv(), st0, ed0, binsv, binlv, svrt)
子程序運(yùn)算結(jié)果
Binsv=”10111”
Blnlv=5
用二進(jìn)制整型數(shù)組用來保存任意長度二進(jìn)制數(shù)據(jù),運(yùn)算的時(shí)候也使用二進(jìn)制整型數(shù)組。
3 無符號(hào)整型四則運(yùn)算
數(shù)學(xué)中數(shù)值的基本運(yùn)算指的是四則運(yùn)算,也就是常說的加減乘除運(yùn)算,在運(yùn)算除法時(shí)還可以得到一個(gè)模。在計(jì)算機(jī)中進(jìn)行程序設(shè)計(jì)時(shí)數(shù)據(jù)運(yùn)算的復(fù)雜程度不一樣,十進(jìn)制最復(fù)雜,而使用二進(jìn)制最為簡便。
(1)加法子程序Longadd。
1101 vad1(2050)被加數(shù)
+ 110 vad2(2050)加數(shù)
10011 vad0(2050)結(jié)果和
1100 mc是進(jìn)位
加法子程序調(diào)用:
vad1(2047)=1 被加數(shù)
vad1(2048)=1
vad1(2049)=0
vad1(2050)=1
sst1=2047
sed1=2050
vad1(2048)=1 加數(shù)
vad1(2049)=1
vad1(2050)=0
sst2=2048
sed2=2050
Call longadd(vad1(), sst1, sed1, vad2(), sst2, sed2, vad0(), sst0, sed0, svrt)
運(yùn)算結(jié)果
vad0(2046)=1 和
vad0(2047)=0
vad0(2048)=0
vad0(2049)=1
vad0(2050)=1
sst0=2046
sed0=2050
(2)減法子程序Longsub。
110 mc借位
1101 vad1()被減數(shù)
- 110 vad2()減數(shù)
111 vad0()結(jié)果差
使用此模型時(shí)被減數(shù)要大于等于減數(shù)。
減法計(jì)算過程子程序Longsub調(diào)用:
vad1(2047)=1 被減數(shù)
vad1(2048)=1
vad1(2049)=0
vad1(2050)=1
sst1=2047
sed1=2050
vad2(2048)=1 減數(shù)
vad2(2049)=1
vad2(2050)=0
sst2=2048
sed2=2050
Call longsub(vad1(),sst1,sed1,vad2(),sst2,sed2,vad0(),sst0,sed0,svrt)
運(yùn)算結(jié)果
Vad0(2048)=1 差
Vad0(2049)=1
Vad0(2050)=1
Sst0=2048
Sed0=2050
(3)乘法子程序Longmul。
1101 vad1(2050)被乘數(shù)
x 110 vad2(2050)乘數(shù)
0000 smm(2050,2050)中間結(jié)果
1101
+ 1101 縱向累加得到乘積
1001110 vad0(2050)積
在計(jì)算乘法時(shí)使用一個(gè)二進(jìn)制整型二維數(shù)組smm()保存中間結(jié)果。在計(jì)算時(shí)縱向保存每一個(gè)乘數(shù)數(shù)位乘上被乘數(shù),填寫好數(shù)據(jù)以后從個(gè)位向左縱向相加得到乘法的積。
乘法計(jì)算過程子程序Longmul調(diào)用:
vad1(2047)=1 被乘數(shù)
vad1(2048)=1
vad1(2049)=0
vad1(2050)=1
sst1=2047
sed1=2050
vad2(2048)=1 乘數(shù)
vad2(2049)=1
vad2(2050)=0
sst2=2048
sed2=2050
Call longmul(vad1(),sst1,sed1,vad2(),sst2,sed2,vad0(),sst0,sed0,svrt)
運(yùn)算結(jié)果
vad0(2044)=1 積
vad0(2045)=0
vad0(2046)=0
vad0(2047)=1
vad0(2048)=1
vad0(2049)=1
vad0(2050)=0
Sst0=2044 Sed0=2050
(4)除法子程序Longdiv。
vads(2050) 商
vad2(2050)除數(shù) 1101 vad1(2050)被除數(shù)
vady(2050) 余數(shù)(模)
除法計(jì)算過程:
用vad2()與vad1()逐段進(jìn)行比較,小于等于時(shí)商1,大于時(shí)商0(商vads()),vady()在除不盡的時(shí)候保存余數(shù)(也被稱作模)。
除法子程序Longdiv調(diào)用:
vad1(2043)=1 被除數(shù)
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 除數(shù)
vad2(2048)=1
vad2(2049)=0
vad2(2050)=1
sst2=2047
sed2=2050
Call longdiv(vad1(),sst1,sed1,vad2(),sst2,sed2,vads(), vssts, vseds, vady(), vssty, vsedy, svrt)
運(yùn)算結(jié)果
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 結(jié)語
大數(shù)運(yùn)算是通過設(shè)計(jì)的算法進(jìn)行加減乘除四則運(yùn)算,本文設(shè)計(jì)的算法是采用二進(jìn)制整型數(shù)組保存長度超出計(jì)算機(jī)字長的數(shù)據(jù)。文中數(shù)組的長度決定了處理的二進(jìn)制數(shù)據(jù)數(shù)值的大小,本文的數(shù)組長度是2050個(gè)二進(jìn)制數(shù)位,如果需要可以任意增加數(shù)組的長度,只要計(jì)算機(jī)的內(nèi)存足夠大。目前我們使用的計(jì)算機(jī)基本上都能夠滿足這個(gè)要求,四則運(yùn)算的難點(diǎn)是除法,如果使用十進(jìn)制非常復(fù)雜,相對(duì)來講二進(jìn)制相對(duì)來講要容易一些。
當(dāng)前論文是系列論文的第二篇“任意長度數(shù)值無符號(hào)整數(shù)四則運(yùn)算”,上一期《數(shù)字技術(shù)與應(yīng)用》發(fā)表了“任意長度數(shù)值數(shù)制轉(zhuǎn)換”。后續(xù)論文包括第三篇“任意長度數(shù)值有符號(hào)整數(shù)四則運(yùn)算”。第四篇“任意長度數(shù)值實(shí)數(shù)四則運(yùn)算”。在系列論文全部發(fā)表以后歡迎讀者向作者索取VB程序源碼。希望讀者能夠繼續(xù)關(guān)注《數(shù)字技術(shù)與應(yīng)用》。
參考文獻(xiàn)
[1]衷仁保著.《計(jì)算機(jī)代數(shù)學(xué)》.科學(xué)出版社.
[2]BruceSchneier著,吳世忠譯.《應(yīng)用密碼學(xué)》.機(jī)械工業(yè)出版社.
[3]馮萍著.《匯編語言與接口技術(shù)》.機(jī)械工業(yè)出版社.
[4]Mohan Atreya著,賀軍等譯.《數(shù)字簽名》.清華大學(xué)出版社.
點(diǎn)擊下頁還有更多>>>淺談電子商務(wù)安全技術(shù)論文