前言:我們精心挑選了數(shù)篇優(yōu)質(zhì)語言論文文章,供您閱讀參考。期待這些文章能為您帶來啟發(fā),助您在寫作的道路上更上一層樓。
關(guān)鍵詞:加密算法DES匯編語言
目前在金融界及非金融界的保密通信中,越來越多地用到了DES算法。DES(DataEncryptionStandard)即數(shù)據(jù)加密算法,是IBM公司于1977年研究成功并公開發(fā)表的。隨著我國三金工程尤其是金卡工程的啟動,DES算法在POS、ATM、磁卡及智能卡(IC卡)中被廣泛應(yīng)用,以此來實現(xiàn)關(guān)鍵數(shù)據(jù)的保密。如信用卡持卡人的PIN的加密傳輸、IC卡與POS間的雙向認證、金融交易中的密碼鍵盤等,均用到DES算法。由于密碼鍵盤不可能使用高級語言,所以用匯編語言實現(xiàn)DES就非常實用。
1DES算法的簡單原理
DES是一種分組密碼。假定明文m是由0和1組成的長度為64位的符號串,密鑰k也是64位的0、1符號串。
設(shè):M=m1m2m3…m64
K=k1k2k3…k64
加密過程可表達如下:
DES(m)=IP-1·T16·T15…T2·T1·IP(m)
其中:IP(m)是初始置換,IP-1是逆置換,T16~T1是16次迭代。
(1)初始置換IP
功能是把輸入的明文m按位重新組合,并把輸出分為L0、R0兩部分,每部分各長32位,其置換規(guī)則如下:
58,50,42,34,26,18,10,2,
60,52,44,36,28,20,12,4,
62,54,46,38,30,22,14,6,
64,56,48,40,32,24,16,8,
57,49,41,33,25,17,9,1,
59,51,43,35,27,19,11,3,
61,53,45,37,29,21,13,5,
63,55,47,39,31,23,15,7
(2)逆置換IP-1
經(jīng)過16次迭代運算后,得到L16、R16,將此作為輸入,進行逆置換。逆置換滿足:
IP·IP-1=IP-1·IP=I
逆置換正好是初始置換的逆運算。
(3)T16~T1的迭代計算
DES的迭代算法采用模2加法。
在通信網(wǎng)絡(luò)的兩端,雙方約定了一致的密鑰。在通信的源點用密鑰對核心數(shù)據(jù)進行加密并形成密文,然后,以密文的形式在公共通信網(wǎng)中傳輸?shù)酵ㄐ啪W(wǎng)絡(luò)的終點。數(shù)據(jù)到達終點后,用同樣的密鑰對密文數(shù)據(jù)進行解密,便再現(xiàn)了明文形式的核心數(shù)據(jù)。這樣,便保證了核心數(shù)據(jù)(如PIN、MAC等)在公共通信網(wǎng)中傳輸?shù)陌踩院涂煽啃浴?/p>
2匯編語言的實現(xiàn)
用匯編語言實現(xiàn)DES算法有它的優(yōu)勢也有它的難點。優(yōu)勢是51匯編的位操作可以方便地實現(xiàn)置換功能。但用匯編語言實現(xiàn)算法的迭代運算及循環(huán)功能比較煩瑣。在用51匯編實現(xiàn)DES的過程中,我編寫了幾個子程序,組合起來可實現(xiàn)DES算法加密。在這里寫出一些思路,有需要的同行可與我聯(lián)系(E-mail:zhoubin@)。
8031有16個可以位尋址的寄存器,可放置128位的數(shù)據(jù),利用它可實現(xiàn)DES的轉(zhuǎn)置功能。將明文m放入寄存器27H~20H中,即位地址00H對應(yīng)m64,3FH對應(yīng)m1。利用標(biāo)志寄存器C可實現(xiàn)置換與逆置換程序。在DES的16次迭代過程中,要實現(xiàn)公式:
Li=Ri-1;Ri=Li-1f(Ri-1,ki)
的運算過程,其關(guān)鍵在于f(Ri-1,ki)的功能。f是將32位的輸入轉(zhuǎn)化為32位的輸出。其中含3項技術(shù):
①將32位膨脹為48位的E功能。該項功能可用類似于置換功能的子程序編寫。
②48位子密鑰的生成。為了便于51匯編生成子密鑰,可以使用主機用串口下傳的方式,由主機將16個子密鑰傳給89C52為核心的單片機,然后存入80H~FFH中。如果密鑰是固定的,則可直接將子密鑰固化在89C52的Flash中。
③S盒的功能是將48位的輸入再次縮為32位。具體實現(xiàn)是將S盒表存入89C52的Flash中,每次通過查表求得S輸出的結(jié)果。
下面列舉其中的幾個子程序。
(1)IP置換子程序
;入口寄存器:(MSB)2726252423222120(LSB),出口寄存器:(MSB)2F2E2D2C2B2A2928(LSB)
;功能:將入口寄存器的數(shù)據(jù)按置換表換位。
IP:MOVC,06H;將m58送到進位標(biāo)志中
MOV7FH,C;將進位標(biāo)志送m1中
MOVC,0EH;將m50送到進位標(biāo)志中
MOV7EH,C;將進位標(biāo)志送m2中
;重復(fù),按表編寫MOVC,31H;將m15送到進位標(biāo)志中
MOV41H,C;將進位標(biāo)志送m63中
MOVC,39H;將m7送到進位標(biāo)志中
MOV40H,C;將進位標(biāo)志送m64中
RET
(2)逆置換子程序
;入口寄存器:(MSB)2726252423222120(LSB),出口寄存器:(MSB)2F2E2D2C2B2A2928(LSB)
;功能:將入口寄存器的數(shù)據(jù)按逆置換表換位。
IPRVS:MOVC,18H;將m40送到進位標(biāo)志中
MOV7FH,C;將進位標(biāo)志送m1中
MOVC,38H
.
.
.
RET
(3)異或子程序
;入口寄存器:272625243F3E3D3C,出口寄存器:2B2A2928
;功能:將寄存器27262524的內(nèi)容和寄存器3F3E3D3C的內(nèi)容異或。結(jié)果保存在2B2A2928寄存器中。
XORLF:MOVA,3FH;將高8位異或
XRLA,27H
MOV2BH,A;放入出口處
MOVA,3EH
XRLA,26H
MOV2AH,A
MOVA,3DH
XRLA,25H
MOV29H,A
MOVA,3CH
XRLA,24H
MOV28H,A
RET
(4)S盒子程序
;入口寄存器:(MSB)2F2E2D2C2B2A2928,出口寄存器:(MSB)27262524
;功能:48位32位
S6TO4:MOV20h,2FH;取出高位數(shù)據(jù)
LCALLS162345;調(diào)用實現(xiàn)Si(b1b6,b2b3b4b5)
;的功能子程序
MOVDPTR,#S1TAB;S盒表的首址
MOVA,21H;取出第幾個S盒
LCALLDPTRADD
CLRA
MOVCA,@A+DPTR;求出S盒的表地址及S結(jié)果
SWAPA
MOV27H,A;保存高位結(jié)果
MOV20H,2EH
LCALLS162345
;重復(fù)
在梵•高絕大多數(shù)畫中,除了絢麗的色彩之外還有錯落有致的線條。梵•高為了表現(xiàn)人物或動物、樹林等的動勢,虛構(gòu)了許許多多的線,這些線在現(xiàn)實中往往看不到,但在畫面上則能助成動勢線。而更多的動勢線是巧妙地利用物象本身的線助成的。如在法國圣瑪麗亞斯村所作的風(fēng)景畫(圖1),墻用直線,煙用曲線,路面用點,葉簇用漩渦狀的粗線等等。但這種研究絕非臣服自然,梵•高對特征性的捕捉是主觀性、個體性的,我認為在這幅畫面中,任何事物都增加了許多動勢線,畫面的動勢立刻增強了,畫面中的事物仿佛具有了新的生命,綠色的植物向不同的方向旺盛地伸曲、生長,墻面是筆直的、向上的,許許多多的垂直線條整齊排列與地面松動的點形成對比,更加突出墻壁無比堅固。遠處的煙用曲線來表現(xiàn),這里的曲線具有柔和舒展、靈巧生動、飄逸流動的特點。從梵•高的絕大多數(shù)畫中我們大都看到了類似于這幅畫的特點,可以看的出梵•高的畫具有一定的張力,使線條增強了運動感和方向感。在增加動勢線的同時,也賦予了這些事物新的生命。在他的這些作品當(dāng)中,我們更多的是體會到了樹木都是郁郁蔥蔥向上生長的,房子總是錯落有致地合理安排在畫面當(dāng)中。連最基本的小石頭都被表現(xiàn)得很有動勢。如果說鉛筆賦予了梵•高以生命,那么梵•高則是賦予了線條以生命。
二、線條在空間的運用
達•芬奇在《論繪畫》一書中指出:要認清輪廓的來龍去脈,講究線條的完美和曲折、清晰與模糊、粗與細[2]。每個畫面由許多線條組合而成,于是形成了各種組合關(guān)系。由于線條的性質(zhì)不同,組成了線條的對比,在繪畫中強化線條的對比使之更具有表現(xiàn)力,使畫面空間無限增大。如圖2近處橫的小路用水平的線條排列,緊接著用一豎列排列緊密的線條突出路邊草叢,畫面中線條排列數(shù)量的疏松與密集,疏處更疏,密處更密,正所謂“疏可跑馬,密不透風(fēng)”。中景刻畫比較仔細也非常豐富,用疏松的線條把籬笆那種材質(zhì)表現(xiàn)得很生動,同時也把遠景和中景相互隔開了。遠處的小河和小路,又采用水平和垂直的線條相互更替變換使用,遠景則采用小線條表示,使之虛向遠方,大大增強了空間感。畫中的線起界形的作用,它附屬于形體,受限于物象,是一種非主要的造型因素。其線條是形存在的輔助基礎(chǔ),如一些輪廓線或是為再現(xiàn)物體的結(jié)構(gòu)而服務(wù)的。西方繪畫更注重形體、結(jié)構(gòu)、色彩塊面,所以必然不會將線條純粹出來。而梵•高卻不是這樣,他認為線是運動的延續(xù),所以在繪畫上用線條把畫面表現(xiàn)得更加生動,有活力,使整個畫面都充滿了生命,增強了畫面的空間節(jié)奏感。我們今天向梵•高所學(xué)習(xí)的不光是在顏色、筆觸上的運用,更多的是他根據(jù)自己的主觀感受把復(fù)雜的事物用不一樣的線條表現(xiàn)出來,把畫面當(dāng)成自己心靈的一面鏡子,照射出自己的感受。
三、線條在情感上的表達
梵•高的繪畫強有力地表現(xiàn)個人主觀精神,同樣體現(xiàn)在他的素描風(fēng)景當(dāng)中。他最先發(fā)現(xiàn)斷枝殘茬,任意截取繁雜的灌木籬和廣闊的莊稼地之美。他從星空、果樹園等等環(huán)境選取主題描繪的自然景色,就像表現(xiàn)人一樣深含畫家自身的情感。梵•高的藝術(shù),正如他的性格一樣,是一種熱情的表現(xiàn),成熟時期的作品,畫面上布滿著長條狀的線條和筆觸,把自然界的物體形象畫得像翻騰的波濤、閃動的火焰。最后幾年的名作《向日葵》用線條的游動來表達自己的心靈情感,可以看作是他整個人格的象征。線條具有表現(xiàn)力,每個成熟的藝術(shù)家其線條必然具有鮮明的特色,這與畫家本人的性格特點是相吻合的。阿爾地區(qū),灼熱的陽光照射大地,使人熱汗淋漓、頭暈?zāi)垦!5珜τ阼?#8226;高來說太得勁了,他就是愛在烈日下折騰,拼命作畫。在他那里印象派那種分析色彩的方法不再適用了,他使用的色彩更加主觀或“大膽”,他那種小“長條”的筆觸,運用得更加得心應(yīng)手,仿佛不光是描寫大自然的筆觸而是無數(shù)表現(xiàn)心中洶涌熱情的音符。于是,田野、房舍、叢林、道路、行人、花花草草,一切事物都在他的畫面上翻騰、旋轉(zhuǎn)。金光燦爛的向日葵大如車輪,濃碧的絲柏直矗云霄,這一切仿佛只在天國中才能出現(xiàn)。
參考文獻:
[1]裘宗燕.C++程序設(shè)計語言(特別版).北京機械工業(yè)出版社,2002.7.
[2]StandleyB.lippman.C++Primer中文版.人民郵電出版社,20006.3.
[3]譚浩強.C程序設(shè)計(第二版).清華大學(xué)出版社出版,2005.6.
[4]錢能.C++程序設(shè)計教程.清華大學(xué)出版社,2005.5.
[5]沈美明.IBMPC匯編語言程序設(shè)計.清華大學(xué)出版社,1993.9.
[6]錢曉捷.匯編語言程序設(shè)計.電子工業(yè)出版社,2003.
【參考文獻】
[1]翟乃強,隋樹林,匯編語言與C語言及VisualC++混合編程[J].青島科技大學(xué)學(xué)報,2003,24(B09):136~138.
[2]錢曉捷,匯編語言程序設(shè)計(第二版)[M],電子工業(yè)出版社,2003.6.
[3]錢春英,淺談C語言與匯編語言混合編程的一些技術(shù)[J].南通航運職業(yè)技術(shù)學(xué)院學(xué)報,2005,4(1):50~52,55.
[4]郭曉梅,匯編語言與C語言的混合編程及應(yīng)用[J].南京農(nóng)專學(xué)報,2002,18(4):49~52,62.
[5]普拉塔.CPrimerPlus(第五版)中文版[M].人民郵電出版社,2005.
[6]斯馬爾迪諾.教學(xué)技術(shù)與媒體[M].高等教育出版社,2008.
[7]教育部考試中心.全國計算機等級考試二級教程——C語言程序設(shè)計[M].2010年版.北京:高等教育出版社,2010.
參考文獻:
[1]周以真.計算思維[J].中國計算機學(xué)會通訊,2007,(3):77-79.
[2]董榮勝.計算思維與計算機導(dǎo)論[J].計算機科學(xué),2009,(36):50-52.
[3]林旺.孫洪濤[J].基于軟件應(yīng)用的計算思維能力培養(yǎng)教學(xué)設(shè)計.中國電化教育2014,(11):122-127.