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