導航:首頁 > 文檔加密 > 高階密碼學加密方法

高階密碼學加密方法

發布時間:2022-06-17 01:24:08

Ⅰ 密碼鎖課程設計

軟體狗[Dongles]

1、認識軟體狗。[首先我對軟體狗作一簡單介紹,在後面我們將對各種軟體狗的加密和解密做詳細的講解。]

軟體狗是插在微機並行口上的一個軟體保護裝置,它包括主機檢查程序和密鑰(也稱加密盒)兩部分。主機檢查程序就是前面說的加密代碼的一部分,加密盒是用來存放密碼的。一般來說,軟體狗插在並行口上,不會影響列印機的正常工作。常見的軟體狗加密盒外形,如兩個一公一母的D行25針連接器倒接在一起,公頭(DB25/M)插在並行口上,母頭(DB25/F)可接列印機,相當於原來的並行口。整個軟體狗的硬體電路板就在這約5厘米見方的加密盒子里。
電路板上的公頭(DB25/F)之間的管腳是一一對應、直接相聯結的,以保證並行口的作用不變。存儲密碼或起信號加密變換作用的器件及其它輔助元件就跨接在這25根線上面,應用程序以特定的方式跟他們溝通、核對。除了某些設計不良的情況之外,一般不會影響列印機的正常工作,列印機工作時也不會影響它們。
為了防止程序被非法復制,所做的加密保護措施一般都包括兩部分。首先是要有保存密碼數據的載體,即密鑰;其次是夾雜在應用程序中的主機檢查程序,即加密代碼。密鑰應該能保證不易被解密、復制;如一般用磁碟做加密時,加密部分無法用一般的工具復制。另外,當檢查程序用特殊方法去讀密碼時,密碼應該能很容易地被讀出,而不致影響應用程序的正常執行。當發現密碼不對或密鑰不存在時,就讓主機掛起、重新起動或採用被的措施。

軟體狗經歷的「時代」
軟體狗的發展經歷了好幾代,至2001年初就已發展到了第四代。
第一代是存儲器型的加密鎖。這是最有歷史的加密鎖,內部只有存儲體,廠商只能對鎖進行讀、寫。軟體狗起信號加密變換作用的器件,最多隻簡單採用一些電阻、二極體等,檢查方法也比較簡單,很容易被人解密.常見的有原金天地的「軟體狗」、深思洛克的Keypro型、Rainbow的Cplus等。這種鎖的主要特點是廠商可以預先把自己的保密數據設置到鎖內,然後在軟體運行時隨機讀取,這樣防止了解密者通過簡單重復並口數據來解密,但解密者進一步分析一下數據規律就可以解決了,這就是常說的「埠」層的數據分析。這種加密鎖原理非常簡單,是種正在被逐步淘汰的產品,但是其原料成本極低,即使在很低的價位也有很好的利潤,加密廠商一般都不願放棄這種鎖;而很多廠商由於成本原因又不得不採用,因此這種鎖仍有一定的市場份額;
第二代是演算法不公開的加密鎖。硬體內部增加了單片機,即所謂內置CPU,廠商主要是利用演算法功能進行加密。加密鎖通常還增加了一些輔助功能,比如倒計數器、遠程升級等。軟體狗採用了低功耗TTL,COMS等邏輯元件,在電路上做了一些加密工作,檢查時也要比第一代軟體狗多一道手續,解密的難度自然也增加了。常見的有深思洛克的「深思Ⅰ」型,彩虹天地的SuperPro、微狗,ALADDIN的MemoHASP等。利用單片機,軟體與鎖之間的數據通訊建立了一個保密協議,數據都是經過加密的,解密者就難以分析出數據內容和規律了,因此對於這種鎖的數據分析就不是停留在「埠」層了,解密者轉向了「功能」層,就是對軟體中的函數調用進行分析。為了抵擋功能層的數據分析,這種鎖來了個「軟硬」兼施的策略。
「軟」的是指驅動程序內反跟蹤、外殼加密等等軟體工作,讓解密者難以在功能層上模擬,誰都靠的是對操作系統、微機系統的精確理解。誰都無法決勝,結果是加密驅動程序在不斷更新、膨脹。
「硬」的就是加密鎖內的演算法功能,這大大增加了解密難度,這是掌握在加密者手中的武器。但是,加密者只能設置演算法的參數,即所謂內含多少種演算法可選,而演算法內容並不知道。這樣就限制了廠商對演算法的使用,要麼預先記錄演算法結果然後在軟體運行時核對(使用碼表);要麼在軟體中至少變換兩次然後比較結果是否一致。如果解密者截獲這些數據,通過統計、分析就有可達到解密目的;
第三代加密鎖,即所謂「可編程」的加密鎖。1999年初,以北京深思洛克為代表推出了第三代加密鎖,「可編程」加密鎖概念的推出是軟體加密技術的一次進步。「可編程」加密鎖設計初衷是希望用戶能夠將軟體中重要的代碼或模塊「移植」到加密保護設備中運行,使軟體與加密鎖實現真正無縫鏈接。但由於成本限制,早期推出的幾款「可編程」加密鎖採用的低檔單片機給 「可編程」性造成了很大的局限,主要表現在:1、演算法變換的復雜度不夠高,2、指令編碼空間較小,3、程序區的空間較小。這些局限性使得用戶根本不可能利用「可編程」加密鎖實現理想的高強度加密方案。 軟體狗採用了PAL(Programmable Array Logic)、PEEL(Programmable Electrically Erasable Logic Device)、GAL(Generic Array Logic)等可編程器件,但目前流行的期間大概要算串列讀寫的EEPROM(Serial Electrically Erasable PROM)了。這些器件由於密碼編制的靈活性和製成密鑰後在程序中插入檢查的方便性,極大地增加了解密的難度。從使用的角度來看PAL、PEEL、GAL 等邏輯器件只能讀取數據,不能隨時寫入數據,密碼的重新設置比較麻煩;而EEPROM晶元可隨意讀寫,用在軟體狗上靈活性相當大,譬如可以為每一個軟體狗單獨設一個密碼,以增加解密的難度;另外,從EEPROM器件的電器性能上來說也非常適合做軟體狗;因此這種器件在軟體狗的設計中獲得了廣泛的應用,是當時軟體狗製作者的首選晶元。它象一般RAM存儲器一樣可讀寫(只不過讀寫是串列的),即使斷電後也能保存數據不變。常用的EEPROM型號是93C46,它是64×16bit的結構,也就是說一個93C46具有64個16位bit單元的容量,每次處理數據也都是16位。有的93C46,如 Microchip、ATMEL、CSi等品牌的93C46可以通過切換,變為128×8bit或64×16bit兩種模式,這對軟體狗製作來說就更靈活了,其加密效果也更好。當然也有人採用更大容量的93C56、93C66或容量小一點的93C06、93C26等EEPROM晶元。因為軟體狗是插在微機的並行口上,所以檢查程序是通過並行口的I/O地址去讀寫EEPROM。具體的讀寫方式跟硬體線路以及EEPROM的時序有關,因此,一般的檢查程序針對某一種硬體線路;但是這些程序大同小異,大體上是差不多的。
第四代軟體夠在第三代軟體狗基礎上,加入一個單片機晶元,如PIC16C5X。此晶元中存有特定的演算法程序,可將讀出的密鑰數據進行加密變換,以對抗邏輯分析儀。可以說,軟體狗發展到第四代,已經非常成熟了。在此技術上,各軟體狗研製公司又加入自己的電路設計,形成了各自的產品特色。
平時常見的狗主要有「洋狗」(國外狗)和「土狗」(國產狗)。這里「洋狗」主要指美國的彩虹和以色列的HASP,「土狗」主要有金天地(現在與美國彩虹合資,叫彩虹天地)、深思、堅石。總的來說,「洋狗」在軟體介面、加殼、防跟蹤等「軟」方面做得沒有「土狗」好,但在硬體上絕對「無法」 pj(應當說pj難度非常大):而「土狗」在「軟」的方面做得絕對稱得上世界第一,許多技術,如噪音、自檢測、演算法可變、碼表變換等等,可以說都很先進,而在硬體上不及國外,只要稍有單片機功力的人,都可復制。

現在狗的技術發展很快,針對不同的應用場合有不同的類型,如:
強勁狗:自由定義演算法的高強度加密方案
微狗: 面向單片機環境的高強度加密方案
USB狗: USB介面的微狗全兼容產品
軟體狗:面向單機環境的低成本加密方案
網路狗:面向網路環境的加密方案
卡式狗:面向網路環境的加密方案

軟體狗採取了各種的加密技術,目前較先進的加密技術有以下幾種:
AS技術:API函數調用與SHELL外殼加密結合,即使外殼被破壞,加密程序依然不能正常運行。
反跟蹤:
a.數據交換隨機噪音技術:有效地對抗邏輯分析儀分析及各種調試工具的攻擊。
b.迷宮技術:在程序入口和出口之間包含大量判斷跳轉干擾,動態改變執行次序,提升狗的抗跟蹤能力。
抗共享:可從硬體對抗並口共享器,由開發商選擇是否共享狗。
口令: 可由軟體開發商設置32位口令,口令錯誤將不能對存儲區進行讀寫。
時間閘:某些狗內部設有時間閘,各種操作必須在規定的時間內完成。狗正常操作用時很短,但跟蹤時用時較長,超過規定時間狗將返回錯誤結果。
單片機:硬體內置單片機,固化的單片機軟體保證外部不可讀,從而保證狗不可仿製。
存儲器:提供20位元組掉電保持存儲器供開發商存放關鍵數據、配置參數等信息。

市場上常見幾種軟體狗的簡單介紹
彩虹天地:在中國應該算是老大了,從第一代到第四代的產品都有,但它的主要產品還是第三代的微狗(TD-MH),該代產品中有干擾晶元,能隨時產生無用的干擾信號,更加有效的對抗邏輯分析儀;雖然有第四代的強勁狗(CS-QA),但好象有不少問題,所以推出的USB介面的加密鎖還是兼容微狗的。彩虹天地的加密強度不高,最簡單的pj方法就是隨便買一個狗,然後復製成要解的狗。
深思洛克:也是一個比較有名的,至2001年初最主要的產品就是第四代的深思Ⅲ型加密狗,特點就是用戶可在狗中定義自己的演算法,這大大加強了其保護能力,但它的CPU功能還不夠強,演算法上有漏洞,而且只提供一種加密方式,所以也是可以擊破的,並且也能硬體復制原狗。此類狗加密的產品有Pkpm 結構計算軟體、分析家股票軟體、圓方cad軟體等等。
深思 Ⅲ 的n階黑箱模型法:
深思 Ⅲ 的n階黑箱模型法並不是簡單的記憶,而是通過深思 Ⅲ 獨特的完全可編程使得深思 Ⅲ 鎖對於輸入和輸出呈現高階黑箱控制模型的特徵。每次調用代碼運行時使用鎖內存儲作為運算變數和參數,改變鎖的狀態影響後續的調用。用戶自定義的代碼沒有任何的說明書和特徵,甚至兩次相同的調用會返回不同的有用的結果。這是深思 Ⅲ 獨特之處。
以上加密範例並不要求加密者尋找復雜並難以預料的函數關系加以移植。
如果是採用0階黑箱模型那麼輸入與輸出具有直接的對應關系 y=f(x1,x2),其中x1,x2為本次輸入,y為本次輸出。這時如果函數關系簡單就很容易被解密者破譯,比如用迭代法、插值法和列表法等方法逼近;這就迫使加密者尋求復雜函數來防止解密者的破譯和模擬。但由於鎖內資源的限制使得軟體移植幾乎不可能。現在採用n階黑箱模型,就使得輸入與輸出的對應關系復雜化: yn=f(yn-1,yn-2,yn-3,...,y1,xn1,xn2),其中,y1,y2,...,yn-1為以前n-1次調用輸出或隱藏的結果, xn1,xn2為本次(第n次)調用的輸入參數。
面對這樣的復雜關系,解密者簡單地取消中間的任何一次調用都可能使後邊的結果發生錯誤,既使是簡單的函數關系也可以被這高階黑箱過程隱藏得難以推測。這樣,藉助於高階黑箱模型法很容易找到應用軟體中可以利用的公式或函數作為加密的對象。
n階黑箱模型法使用過程中一樣可以使用碼表法,例如,範例中的第一次調用。
但是,這樣的碼表法不同的加密點互相關聯,必須進行整體解密,這就大大地提高了加密強度。使用傳統的0階黑箱模型時,不同的加密點之間互不關聯只需各個擊破分別解密即可,其復雜度無法與n階黑箱模型相比。對於比較復雜的函數,盡管鎖內沒有足夠的資源,還是可以通過n階模型法進行加密處理我們可以將復雜函數化為簡單函數的運算組合,例如:y=(a-b)*(a+b)+c可以先計算(a-b)和(a+b)然後將結果相乘再加c。
n階模型嚴格說是不可解的(只是目前理論上,也請深思公司記住這一點),因為第n次輸出依賴於前n-1次輸入和輸出,而前n-1次輸出可能已部分或全部被隱藏,所以第n次輸出無法推測,至少推測n-1次輸入產生的輸出要比一次輸入產生的輸出復雜度有質的飛躍。
深思 Ⅲ 具有完備的指令系統,可以通過編程實現n階或任意階黑箱模型,每次調用互相關聯,並且可以絕對隱藏中間結果,只要使用得當,理論上是不可解的( 我的理論是沒有不可解的:)
飛天誠信:是新崛起的一家,主要產品是ROCKEY-IV和相兼容的USB狗,技術支持比較好,功能比較多,它的外殼加密程序很不錯,用在加密上主要是8號功能(種子碼)和14、15、16號功能(都是自定義演算法),它的自定義演算法比深思的產品好,「沒有」漏洞(目前理論上說)。如果很好地使用它加密,是極難pj的。但大多數開發商都很偷懶,比如就只用8號功能(種子碼)來加密。
製作和出售軟體狗的公司很多,你只要注意一下計算機雜志上的廣告就能得知。各公司生產的軟體狗除了上述特點外,一般都有一些為吸引用戶而附加的功能,主要是一些工具軟體,其核心技術卻是大同小異。

加密狗的一般特點
1、不佔用並行口,因為它雖然插在並行口上,但是它又提供了一個跟原來一致的並行口。
2、軟體具有防解密功能,可對抗各種調試工具的跟蹤。
3、一狗一密碼或一種線路,軟硬體不可互換,就像一把鎖一把鑰匙那樣。
4、提供各種語言的編程介面以及一套實用工具,方便用戶在自己開發的程序中嵌入加密模塊。
5、提供對可執行文件的加密工具,以便用戶對已有的產品進行加密。

目前主流軟體加密鎖的不足
對軟體加密保護產品而言,使用者最關心的是加密的有效性,產品的兼容性和穩定性。目前市場上主要的軟體加密鎖硬體內部均含有單片機,即所謂內置CPU,軟體廠商主要是利用演算法功能進行加密。加密鎖通常還增加了一些輔助功能,比如倒計數器、遠程升級等。這類型加密鎖主要產品有彩虹天地的「微狗」 「SuperPro」、深思洛克的「深思Ⅰ、III型」、 ALADDIN的HASP3、4等。通過對這些軟體鎖進行分析,認為從安全性上講他們至少有三方面致命的薄弱點:
薄弱點1:設計原理有很大缺陷
目前主流的加密鎖硬體提供了讀、寫和演算法變換功能,且演算法變換關系難以pj和窮舉。但這類加密鎖最大的缺陷是演算法不向軟體廠商公開,鎖內的變換演算法在出廠時已經固定,軟體加密者只能設置演算法的參數。這樣就限制了廠商對演算法的使用,要麼預先記錄演算法結果然後在軟體運行時核對(使用碼表),要麼在軟體中至少變換兩次然後比較結果是否一致;如果解密者截獲這些數據,通過統計、分析就有可達到解密目的。
薄弱點2:加密鎖受處理能力的限制,無法為軟體提供強有力的保護
市場上曾先後推出了幾款「可編程」加密鎖。這類型加密鎖最大的特點就是可以讓用戶自行設計專用演算法。「可編程」加密鎖的出現的確是軟體加密技術的一次進步。深思洛克的「深思III」、飛天誠信的「Rockey4」均屬此類產品。
但由於成本限制,這類型加密鎖往往只能採用10~20元人民幣的通用8位單片機或同檔次的ASIC晶元作為核心微處理器。這種低檔單片機的處理運算能力是相當弱的,這就給 「可編程」加密鎖造成了很大的局限性,主要表現在:1、演算法變換的復雜度不夠高,2、指令編碼空間較小,3、程序區的空間較小。這些局限性使得用戶根本不可能利用「可編程」加密鎖實現理想的高強度加密方案。
薄弱點3:硬體本身抵抗惡意攻擊的能力較弱
隨著集成電路設計、生產技術的發展,安全產品的核心晶元硬體本身受到攻擊的可能性越來越大。典型的硬體攻擊手段有電子探測攻擊(如SPA和DPA)和物理攻擊(探測,如採用SiShell技術),下面我們就這方面進行簡要的分析。
電子探測(SPA和DPA)攻擊技術的原理是:單片機晶元是一個活動的電子元器件,當它執行不同的指令時,對應的電功率消耗也相應的變化。通過使用特殊的電子測量儀和數學統計技術,來檢測和分析這些變化,從中得到單片機中的特定關鍵信息。
物理攻擊的方法有:通過掃描電子顯微鏡對晶元內部存儲器或其它邏輯直接進行分析讀取;通過測試探頭讀取存儲器內容;通過從外部無法獲取的介面(例如廠家測試點)對存儲器或處理器進行直接數據存取;再激活單片機的測試功能等。
由於通用低檔單片機並非定位於製作安全類產品,沒有提供有針對性的防範物理攻擊手段,因此比較容易通過電子探測(SPA和DPA)攻擊直接讀出存儲器內的數據。雖然大多數普通單片機都具有熔絲燒斷保護單片機內代碼的功能,但此類晶元應用場合廣、發行批量大,隨著廠商間委託加工與頻繁技術轉讓,使得利用該類晶元下載程序的設計漏洞,利用廠商的晶元測試介面,通過特殊的燒寫時序和數據讀出信息成為比較容易的事情。
ASIC晶元是完全根據用戶需求而特別定做,屬於小批量生產。由於其採用特殊的邏輯電路且不會輕易公開測試功能介面,因此只要以其為基礎開發的系統不是保存重要的信息或者不用於高級別的安全場合還是可以防範一般情況下的物理攻擊。
加密鎖性能判定
加密鎖很小巧,包含的技術內容卻很豐富。一般我們從三個方面分析加密鎖的性能:
第一個是加密原理,或者說加密鎖有些什麼功能,這往往是針對一些解密方法發展起來的,最需要創造性的地方就是這里。國內產品在這個方面一直與國外產品具備足夠的競爭能力。
第二個是加密鎖的可靠性、穩定性、兼容性、透明性等。這些是對鎖的基本要求,但是做完整並不容易,尤其是兼容性、透明性問題,加密廠家在這方面有著豐富的經驗,但是沒有誰可以100%保證。透明性是鎖的一個比較特殊的指標,由於鎖是工作在並口(列印口),並口還會有其他設備,比如列印機、繪圖儀、硬碟、光碟機等,鎖如果影響到原來設備的正常工作就是透明性不夠好,完全的透明是難以做到的,一般的加密廠家不保證鎖對並口硬碟、光碟機等設備的透明性。
最後一個是鎖的易學性、易用性。

軟體狗加解密技術的簡單介紹(我將在以後陸續加入並詳細介紹)
涉及到加、解密的技術可以說是包羅萬象,基本的有匯編語言、調試工具、操作系統等,還需要一些密碼學的基本常識,如果對數據結構、編譯原理等有一定的了解會更有幫助。當然,這並不是說沒有這些基礎就做不好加密,在使用加密鎖時,很多工作已經由加密廠家完成了,其實加密者只要對「隨機性」有一些基本的認識,就可以完成很出色的加密。這個隨機與一般意義上的隨機有所不同,這里強調的是「不可預測性」。如果解密者可以預知加密鎖返回的數據,就可以用程序代替鎖來返回,軟體就無法知道鎖是否真正存在,就是被解密了。這就是我們常說的「模擬」,在密碼學中就是假冒攻擊。所以,加密的一個重要思路就是讓解密者看來:鎖輸入輸出數據有很強的隨機性。目前,加密設計中最迫切解決的就是構造隨機性的問題。
常有人這樣加密:在軟體中反復檢查鎖內的數據,而且運用了很復雜的檢查方法,比如中間插入一些運算或者垃圾程序等,加密的工作量很大,以為「我查了那麼多次鎖還不夠嗎?」。但這在解密者眼裡不值一提,只要發現鎖返回數據的規律性就足夠解密了,根本不必理會軟體是怎麼使用的。這種加密失敗在於,只是用了些讀操作,沒有構成返回數據的隨機性。那麼,如果擴大加密鎖存儲容量,或者進行些寫操作就行嗎?顯然還是隨機性太差。因為這點,第一代加密鎖很難勝任真正的加密工作了。也因為這點,過去比較繁榮軟加密技術難以深入發展。這提醒我們,如果加密原理不合理,再大的加密工作量也是徒勞無益的。
使用演算法變換就可以增強隨機性,但是有人這樣加密:在軟體中大量調用演算法變換,變換的數據量也很大(即演算法碼表很大),可還是被輕易解密了。為什麼呢?是不是演算法被破了?不是。這種加密方法在解密者看來和上個沒有什麼不同,只要把每次變換的數據內容都記錄下來,如果軟體再用同樣的數據調用演算法,解密者自然知道應該返回什麼數據了。失敗原因是,碼表內容是固定的,被解密者窮舉了,沒有構成隨機性,這說明可以窮舉的東西是不具備隨機性的。那麼怎麼才能防止被窮舉呢?由於加密者也不知道演算法方程,實際上是做不到的。但是,我們可以給解密者增加很多窮舉困難。我們知道,只要讓解密者抓到一次,這個數據就再也沒有加密作用了,因此不能讓軟體運行一次就用完所有碼表,另外還可以用些隨機數來做變換,這就考驗解密者的分辨能力了。這是個技巧性比較高的問題,需要不小的工作量,但這的確對加密強度有貢獻。
如果加密者知道演算法內容,而解密者不知道,這樣就可以用任何數據來訪問加密鎖的演算法功能,解密者就無法窮舉了,第三代「可編程」加密鎖就能實現這種思想。
由於第三代鎖的出現,需要補充另外一個話題,就是加密鎖的功能。如果解密者可以通過數學方法解析出鎖的內部功能,就可以「模擬」了。如何設計鎖的功能才不易被破呢?這涉及到一點密碼學,一般的加密者只要能夠將不同類型的運算混合使用就夠。對於第一、二代加密鎖,解密者沒有必要去分析程序是如何使用鎖返回數據的(模擬的思路),而對於第三代鎖,這種方法常成了解密者唯一希望,寄希望於通過跟蹤鎖返回數據的使用過程而推測出鎖的內部功能。這時候幾乎任何能夠降低程序可讀性的手段都會提高加密效果,比如程序垃圾、反復的數據搬動、嵌入匯編、插入浮點運算等等。這點很吸引人,即使你剛明白加密,也能讓解密專家圍著你團團轉。
加密者往往遠不如解密者專業,隨著互聯網的發展,解密技術正以更快的速度傳播,這給加密帶來了更大的挑戰。

軟體狗的加密技術介紹
解密一個軟體狗可以從兩方面入手,其一是軟體,只要把檢查軟體狗的那部分代碼解除,那麼軟體狗就成了一隻「死狗」。其二是從硬體入手的解密方法,其含義是要仿製一個加密盒,不管機密做的如何好,如果加密盒被仿製了,那麼軟體狗的加密作用也就不存在了。因此,從硬體入手的解密跟從軟體入手的解密其效果是一樣的,只不過後者需要付出一定的額外代價—硬體成本而已。
那麼既然從軟體、硬體著手都能解密,用它來保護軟體還有什麼作用?不用著急,讓我們來談談如何更地保護您的軟體。
針對解密的兩種方法,我們也從這兩方面來加強軟體的加密功能。

增強軟體狗加密功能的方法
一、軟體加密
全面我們說,從軟體入手的解密方法很多,針對這種情況,人們也研製出了很多行之有效的防解密措施,在次,我們把一些常用的防止軟體跟蹤解密的措施列於下面:
1、計算程序執行時間,並判斷程序的執行時間是否過長;
2、關鍵程序部分禁止 鍵盤中斷,並檢查鍵盤中斷是否被開放;
3、關鍵程序部分禁止顯示輸出和列印輸出;
4、在軟體中多做幾次軟體狗檢查;
5、把程序的重要部分加以編碼加密,在運行時才解密;
6、修改斷點中斷功能;
7、利用除零中斷或溢出中斷是否有程序跟蹤;
8、利用時鍾中斷檢查是否有程序跟蹤;
9、在程序中調用INT 7;
10、程序不要寫得很結構化,要多一些「廢話」;
11、若干種加密方法綜合使用;
12、用黃玫瑰軟體製作組出品的BITSHELL作外層防護;
...... ......
==================================================
[ 附:外殼反跟蹤反破譯程序BITSHELL簡介
一、系統簡介
BITSHELL是一套可反跟蹤反破譯的軟體加密系統,主要用語保護軟體開發者的合法權益,防止未經授權的復制、演算法解讀及目標碼反匯編。它是我們應高級開發者的要求從BITLOK中提煉出來的,專為應用軟體提供pj保護的系統。應用軟體開發者可以充分發揮自己的才智編寫或精巧或復雜的程序,有 BITSHELL的保護不用擔心競爭者對商品軟體進行逆向分析。應用軟體開發者更可以設計自己的反拷貝介質(加密卡、加密狗等),然後用BITSHELL 進行外層保護,從而不必擔心訪問反拷貝介質的代碼被截獲。應用軟體開發者也可以購買商品化的加密卡,加密狗等,在應用系統內部秘密地存取加密卡、加密狗,用BITSHELL作外層保護,防止訪問反拷貝介質的代碼被截獲。
主要功能和性能如下:
千變萬化的加密方案
內含隨機可選的二十套加密演算法,構造出千變萬化的反跟蹤反破譯方案,特別適合加密有多個單獨執行程序的軟體。
先進超強的反跟蹤技術
採用加密虛擬機、多層間址多 鏈解等獨創的世界領先技術,結合傳統的加密方法,具備超強的動態反跟蹤能力。防範各種軟硬體調試器對其破譯。不僅防止了國際上通用的調試器,如:Soft-ICE,Turbo Debugger,Symdeb等,還重點防範了國內開發的各種專用調試器。
可靠性高、兼容性好、使用面最廣泛
經BITSHELL1.0加密過的軟體日夜運行在超過60萬台機器上,經過了最廣泛、最嚴格的測試。BITSHELL2.0具備同樣可靠的性能,加密過的軟體可以在各種廠牌各種機型上正常運行,兼容各種流行的DOS系統。
功能全面、使用方便
可加密各種帶覆蓋模塊的執行文件,特別適合加密有Clipper,FoxPro等編譯的各種資料庫應用系統。
提供OBJ嵌入式加密模塊。這樣,用戶還可以在源程序里加入加密模塊,與外殼部分相互關聯,有效地提高破譯難度。
可以為用戶定製專用BITSHELL反跟蹤反破譯系統,可以滿足用戶的獨特需求。
二、快速入門
BITSHELL經過了用戶嚴格的檢驗,作者對其精雕細琢反復修正,現在的版本使用極容易。確保BITSHELL硬碟或網路安裝已經成功,或BITSHELL源盤在軟碟機中,加密方法如下:
BITSHELL<源文件><目標文件>
例如:
把TEST.EXE加密成TESTOK.EXE。輸入以下命令
BITSHELL TEST.EXE TESTOK.EXE
把TEXE.EXE加密不保留未加密的程序。輸入以下命令。
三、操作指南
1、BITSHELL參數的詳細說明
BITSHELL可以用KEY環境變數來設定一些參數,這樣可以簡化使用過程。設置方法如下:
SET KEY=[SCHEMExx,][STAY,][CHECKOVL]
BITSHELL各項參數的意義如下:
(1)參數SCHEMExx,若給出則依用戶的要求使用指定的變形演算法,否則將隨機抽取一種加密演算法。BITSHELL2.0共有20種演算法可選。
每一種演算法都有自己

Ⅱ 目前常用的加密方法主要有兩種是什麼

目前常用的加密方法主要有兩種,分別為:私有密鑰加密和公開密鑰加密。私有密鑰加密法的特點信息發送方與信息接收方均需採用同樣的密鑰,具有對稱性,也稱對稱加密。公開密鑰加密,又稱非對稱加密,採用一對密鑰,一個是私人密鑰,另一個則是公開密鑰。
私有密鑰加密

私有密鑰加密,指在計算機網路上甲、乙兩用戶之間進行通信時,發送方甲為了保護要傳輸的明文信息不被第三方竊取,採用密鑰A對信息進行加密而形成密文M並發送給接收方乙,接收方乙用同樣的一把密鑰A對收到的密文M進行解密,得到明文信息,從而完成密文通信目的的方法。

這種信息加密傳輸方式,就稱為私有密鑰加密法。

私有密鑰加密的特點:

私有密鑰加密法的一個最大特點是:信息發送方與信息接收方均需採用同樣的密鑰,具有對稱性,所以私有密鑰加密又稱為對稱密鑰加密。

私有密鑰加密原理:

私有加密演算法使用單個私鑰來加密和解密數據。由於具有密鑰的任意一方都可以使用該密鑰解密數據,因此必須保證密鑰未被授權的代理得到。

公開密鑰加密

公開密鑰加密(public-key cryptography),也稱為非對稱加密(asymmetric cryptography),一種密碼學演算法類型,在這種密碼學方法中,需要一對密鑰,一個是私人密鑰,另一個則是公開密鑰。

這兩個密鑰是數學相關,用某用戶密鑰加密後所得的信息,只能用該用戶的解密密鑰才能解密。如果知道了其中一個,並不能計算出另外一個。因此如果公開了一對密鑰中的一個,並不會危害到另外一個的秘密性質。稱公開的密鑰為公鑰;不公開的密鑰為私鑰。

Ⅲ 密碼學當中有什麼類型的密碼

大體上分為經典密碼學和現代密碼學經典密碼學中最古典的兩個加密技巧是移位式和替代式還有就是多字元加密法現代密碼學的研究主要在分組密碼和流密碼及其應用上你說的只是某個地區或部門所用的密碼 就像當年二戰時美軍通過當地土著人所發明的納瓦霍密碼一樣還有摩登密碼

Ⅳ 常用的加密演算法有哪些

對稱密鑰加密

對稱密鑰加密 Symmetric Key Algorithm 又稱為對稱加密、私鑰加密、共享密鑰加密:這類演算法在加密和解密時使用相同的密鑰,或是使用兩個可以簡單的相互推算的密鑰,對稱加密的速度一般都很快。

Ⅳ 計算機密碼學中有哪些加密演算法

、信息加密概述

密碼學是一門古老而深奧的學科,它對一般人來說是莫生的,因為長期以來,它只在很少的范圍內,如軍事、外交、情報等部門使用。計算機密碼學是研究計算機信息加密、解密及其變換的科學,是數學和計算機的交義學科,也是一門新興的學科。隨著計算機網路和計算機通訊技術的發展,計算機密碼學得到前所未有的重視並迅速普及和發展起來。在國外,它已成為計算機安全主要的研究方向,也是計算機安全課程教學中的主要內容。

密碼是實現秘密通訊的主要手段,是隱蔽語言、文字、圖象的特種符號。凡是用特種符號按照通訊雙方約定的方法把電文的原形隱蔽起來,不為第三者所識別的通訊方式稱為密碼通訊。在計算機通訊中,採用密碼技術將信息隱蔽起來,再將隱蔽後的信息傳輸出去,使信息在傳輸過程中即使被竊取或載獲,竊取者也不能了解信息的內容,從而保證信息傳輸的安全。

任何一個加密系統至少包括下面四個組成部分:

( 1)、未加密的報文,也稱明文。

( 2)、加密後的報文,也稱密文。

( 3)、加密解密設備或演算法。

( 4)、加密解密的密鑰。

發送方用加密密鑰,通過加密設備或演算法,將信息加密後發送出去。接收方在收到密文後,用解密密鑰將密文解密,恢復為明文。如果傳輸中有人竊取,他只能得到無法理解的密文,從而對信息起到保密作用。

二、密碼的分類

從不同的角度根據不同的標准,可以把密碼分成若干類。

(一)按應用技術或歷史發展階段劃分:

1、手工密碼。以手工完成加密作業,或者以簡單器具輔助操作的密碼,叫作手工密碼。第一次世界大戰前主要是這種作業形式。

2、機械密碼。以機械密碼機或電動密碼機來完成加解密作業的密碼,叫作機械密碼。這種密碼從第一次世界大戰出現到第二次世界大戰中得到普遍應用。3、電子機內亂密碼。通過電子電路,以嚴格的程序進行邏輯運算,以少量制亂元素生產大量的加密亂數,因為其制亂是在加解密過程中完成的而不需預先製作,所以稱為電子機內亂密碼。從五十年代末期出現到七十年代廣泛應用。

4、計算機密碼,是以計算機軟體編程進行演算法加密為特點,適用於計算機數據保護和網路通訊等廣泛用途的密碼。

(二)按保密程度劃分:

1、理論上保密的密碼。不管獲取多少密文和有多大的計算能力,對明文始終不能得到唯一解的密碼,叫作理論上保密的密碼。也叫理論不可破的密碼。如客觀隨機一次一密的密碼就屬於這種。

2、實際上保密的密碼。在理論上可破,但在現有客觀條件下,無法通過計算來確定唯一解的密碼,叫作實際上保密的密碼。

3、不保密的密碼。在獲取一定數量的密文後可以得到唯一解的密碼,叫作不保密密碼。如早期單表代替密碼,後來的多表代替密碼,以及明文加少量密鑰等密碼,現在都成為不保密的密碼。

(三)、按密鑰方式劃分:

1、對稱式密碼。收發雙方使用相同密鑰的密碼,叫作對稱式密碼。傳統的密碼都屬此類。

2、非對稱式密碼。收發雙方使用不同密鑰的密碼,叫作非對稱式密碼。如現代密碼中的公共密鑰密碼就屬此類。

(四)按明文形態:

1、模擬型密碼。用以加密模擬信息。如對動態范圍之內,連續變化的語音信號加密的密碼,叫作模擬式密碼。

2、數字型密碼。用於加密數字信息。對兩個離散電平構成0、1二進制關系的電報信息加密的密碼叫作數字型密碼。

(五)按編制原理劃分:

可分為移位、代替和置換三種以及它們的組合形式。古今中外的密碼,不論其形態多麼繁雜,變化多麼巧妙,都是按照這三種基本原理編制出來的。移位、代替和置換這三種原理在密碼編制和使用中相互結合,靈活應用。

Ⅵ 密碼加密的方法有那些

用戶密碼加密方式

用戶密碼保存到資料庫時,常見的加密方式有哪些?以下幾種方式是常見的密碼保存方式:

1. 明文保存

比如用戶設置的密碼是「123456」,直接將「123456」保存在資料庫中,這種是最簡單的保存方式,也是最不安全的方式。但實際上不少互聯網公司,都可能採取的是這種方式。

2. 對稱加密演算法來保存

比如3DES、AES等演算法,使用這種方式加密是可以通過解密來還原出原始密碼的,當然前提條件是需要獲取到密鑰。不過既然大量的用戶信息已經泄露了,密鑰很可能也會泄露,當然可以將一般數據和密鑰分開存儲、分開管理,但要完全保護好密鑰也是一件非常復雜的事情,所以這種方式並不是很好的方式。

總結

採用PBKDF2、bcrypt、scrypt等演算法可以有效抵禦彩虹表攻擊,即使數據泄露,最關鍵的「用戶密碼」仍然可以得到有效的保護,黑客無法大批量破解用戶密碼,從而切斷撞庫掃號的根源。

【加密軟體編輯推薦】
易控網盾加密軟體--重要文件防泄密專家!輕松實現單位內部文件自動加密保護,加密後的文件在單位內部正常流轉使用。未經許可,任何私自拷貝加密文件外發出去,都將打開為亂碼,無法使用!對於發送給客戶等第三方的文件,可實現控制打開時間和打開次數等防泄密參數!同時可設置對員工電腦文件自動備份,防止惡意刪除造成核心數據的遺失!從源頭防止企業核心文件被外泄!
相關頁面:加密軟體,文件加密,文檔加密,圖紙加密軟體,防泄密軟體,CAD加密軟體,文件外發加密

Ⅶ 加密方式有幾種

加密方式的種類:

1、MD5

一種被廣泛使用的密碼散列函數,可以產生出一個128位(16位元組)的散列值(hash value),用於確保信息傳輸完整一致。MD5由美國密碼學家羅納德·李維斯特(Ronald Linn Rivest)設計,於1992年公開,用以取代MD4演算法。這套演算法的程序在 RFC 1321 標准中被加以規范。

2、對稱加密

對稱加密採用單鑰密碼系統的加密方法,同一個密鑰可以同時用作信息的加密和解密,這種加密方法稱為對稱加密,也稱為單密鑰加密。

3、非對稱加密

與對稱加密演算法不同,非對稱加密演算法需要兩個密鑰:公開密鑰(publickey)和私有密鑰(privatekey)。公開密鑰與私有密鑰是一對,如果用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密。

如果用私有密鑰對數據進行加密,那麼只有用對應的公開密鑰才能解密。因為加密和解密使用的是兩個不同的密鑰,所以這種演算法叫作非對稱加密演算法。

(7)高階密碼學加密方法擴展閱讀

非對稱加密工作過程

1、乙方生成一對密鑰(公鑰和私鑰)並將公鑰向其它方公開。

2、得到該公鑰的甲方使用該密鑰對機密信息進行加密後再發送給乙方。

3、乙方再用自己保存的另一把專用密鑰(私鑰)對加密後的信息進行解密。乙方只能用其專用密鑰(私鑰)解密由對應的公鑰加密後的信息。

在傳輸過程中,即使攻擊者截獲了傳輸的密文,並得到了乙的公鑰,也無法破解密文,因為只有乙的私鑰才能解密密文。

同樣,如果乙要回復加密信息給甲,那麼需要甲先公布甲的公鑰給乙用於加密,甲自己保存甲的私鑰用於解密。

Ⅷ 數據加密主要有哪些方式

主要有兩種方式:「對稱式」和「非對稱式」。
對稱式加密就是加密和解密使用同一個密鑰,通常稱之為「Session Key 」這種加密技術目前被廣泛採用,如美國政府所採用的DES加密標准就是一種典型的「對稱式」加密法,它的Session Key長度為56Bits。
非對稱式加密就是加密和解密所使用的不是同一個密鑰,通常有兩個密鑰,稱為「公鑰」和「私鑰」,它們兩個必需配對使用,否則不能打開加密文件。這里的「公鑰」是指可以對外公布的,「私鑰」則不能,只能由持有人一個人知道。它的優越性就在這里,因為對稱式的加密方法如果是在網路上傳輸加密文件就很難把密鑰告訴對方,不管用什麼方法都有可能被別竊聽到。而非對稱式的加密方法有兩個密鑰,且其中的「公鑰」是可以公開的,也就不怕別人知道,收件人解密時只要用自己的私鑰即可以,這樣就很好地避免了密鑰的傳輸安全性問題。
一般的數據加密可以在通信的三個層次來實現:鏈路加密、節點加密和端到端加密。(3)
鏈路加密
對於在兩個網路節點間的某一次通信鏈路,鏈路加密能為網上傳輸的數據提供安全證。對於鏈路加密(又稱在線加密),所有消息在被傳輸之前進行加密,在每一個節點對接收到消息進行解密,然後先使用下一個鏈路的密鑰對消息進行加密,再進行傳輸。在到達目的地之前,一條消息可能要經過許多通信鏈路的傳輸。
由於在每一個中間傳輸節點消息均被解密後重新進行加密,因此,包括路由信息在內的鏈路上的所有數據均以密文形式出現。這樣,鏈路加密就掩蓋了被傳輸消息的源點與終點。由於填充技術的使用以及填充字元在不需要傳輸數據的情況下就可以進行加密,這使得消息的頻率和長度特性得以掩蓋,從而可以防止對通信業務進行分析。
盡管鏈路加密在計算機網路環境中使用得相當普遍,但它並非沒有問題。鏈路加密通常用在點對點的同步或非同步線路上,它要求先對在鏈路兩端的加密設備進行同步,然後使用一種鏈模式對鏈路上傳輸的數據進行加密。這就給網路的性能和可管理性帶來了副作用。
在線路/信號經常不通的海外或衛星網路中,鏈路上的加密設備需要頻繁地進行同步,帶來的後果是數據丟失或重傳。另一方面,即使僅一小部分數據需要進行加密,也會使得所有傳輸數據被加密。
在一個網路節點,鏈路加密僅在通信鏈路上提供安全性,消息以明文形式存在,因此所有節點在物理上必須是安全的,否則就會泄漏明文內容。然而保證每一個節點的安全性需要較高的費用,為每一個節點提供加密硬體設備和一個安全的物理環境所需要的費用由以下幾部分組成:保護節點物理安全的雇員開銷,為確保安全策略和程序的正確執行而進行審計時的費用,以及為防止安全性被破壞時帶來損失而參加保險的費用。
在傳統的加密演算法中,用於解密消息的密鑰與用於加密的密鑰是相同的,該密鑰必須被秘密保存,並按一定規則進行變化。這樣,密鑰分配在鏈路加密系統中就成了一個問題,因為每一個節點必須存儲與其相連接的所有鏈路的加密密鑰,這就需要對密鑰進行物理傳送或者建立專用網路設施。而網路節點地理分布的廣闊性使得這一過程變得復雜,同時增加了密鑰連續分配時的費用。
節點加密
盡管節點加密能給網路數據提供較高的安全性,但它在操作方式上與鏈路加密是類似的:兩者均在通信鏈路上為傳輸的消息提供安全性;都在中間節點先對消息進行解密,然後進行加密。因為要對所有傳輸的數據進行加密,所以加密過程對用戶是透明的。
然而,與鏈路加密不同,節點加密不允許消息在網路節點以明文形式存在,它先把收到的消息進行解密,然後採用另一個不同的密鑰進行加密,這一過程是在節點上的一個安全模塊中進行。
節點加密要求報頭和路由信息以明文形式傳輸,以便中間節點能得到如何處理消息的信息。因此這種方法對於防止攻擊者分析通信業務是脆弱的。
端到端加密
端到端加密允許數據在從源點到終點的傳輸過程中始終以密文形式存在。採用端到端加密,消息在被傳輸時到達終點之前不進行解密,因為消息在整個傳輸過程中均受到保護,所以即使有節點被損壞也不會使消息泄露。
端到端加密系統的價格便宜些,並且與鏈路加密和節點加密相比更可靠,更容易設計、實現和維護。端到端加密還避免了其它加密系統所固有的同步問題,因為每個報文包均是獨立被加密的,所以一個報文包所發生的傳輸錯誤不會影響後續的報文包。此外,從用戶對安全需求的直覺上講,端到端加密更自然些。單個用戶可能會選用這種加密方法,以便不影響網路上的其他用戶,此方法只需要源和目的節點是保密的即可。
端到端加密系統通常不允許對消息的目的地址進行加密,這是因為每一個消息所經過的節點都要用此地址來確定如何傳輸消息。由於這種加密方法不能掩蓋被傳輸消息的源點與終點,因此它對於防止攻擊者分析通信業務是脆弱的。

Ⅸ AES什麼加密方式,起到什麼作用!

AES是高級加密標准,但是對普通的地電腦用戶是不需知道的,我們能用到的都是基於此標准開發的各種加密方法,EFS,MD5,無線網路的WEP,WAP等

Ⅹ 密碼學是怎麼樣通過加密和解密的,

你是想知道密碼學怎樣加解密還是?
近代密碼學:編碼密碼學主要致力於信息加密、信息認證、數字簽名和密鑰管理方面的研究。信息加密的目的在於將可讀信息轉變為無法識別的內容,使得截獲這些信息的人無法閱讀,同時信息的接收人能夠驗證接收到的信息是否被敵方篡改或替換過;數字簽名就是信息的接收人能夠確定接收到的信息是否確實是由所希望的發信人發出的;密鑰管理是信息加密中最難的部分,因為信息加密的安全性在於密鑰。歷史上,各國軍事情報機構在獵取別國的密鑰管理方法上要比破譯加密演算法成功得多。

密碼分析學與編碼學的方法不同,它不依賴數學邏輯的不變真理,必須憑經驗,依賴客觀世界覺察得到的事實。因而,密碼分析更需要發揮人們的聰明才智,更具有挑戰性。

現代密碼學是一門迅速發展的應用科學。隨著網際網路的迅速普及,人們依靠它傳送大量的信息,但是這些信息在網路上的傳輸都是公開的。因此,對於關繫到個人利益的信息必須經過加密之後才可以在網上傳送,這將離不開現代密碼技術。

1976年Diffie和Hellman在《密碼新方向》中提出了著名的D-H密鑰交換協議,標志著公鑰密碼體制的出現。 Diffie和Hellman第一次提出了不基於秘密信道的密鑰 分發,這就是D-H協議的重大意義所在。
PKI(Public Key Infrastructure)是一個用公鑰概念與技術來實施和提供安全服務的具有普適性的安全基礎設施。PKI公鑰基礎設施的主要任務是在開放環境中為開放性業務提供數字簽名服務。

要查看具體的某個密碼體系的知識可參考《密碼學概論》。

閱讀全文

與高階密碼學加密方法相關的資料

熱點內容
主機虛擬雲伺服器 瀏覽:617
刪除分區加密的空間會不會恢復 瀏覽:702
京東app客戶上門怎麼看搜索量 瀏覽:739
怎麼在農行app購買黃金 瀏覽:45
c型開發板和單片機 瀏覽:146
虛擬機建立用戶的模板文件夾 瀏覽:904
無錫代碼編程培訓班 瀏覽:631
eps圖形數據加密 瀏覽:933
沒有滴滴app怎麼打車 瀏覽:101
大數乘法java 瀏覽:1001
如何登錄伺服器看源碼 瀏覽:526
如何做伺服器端 瀏覽:157
注冊伺服器地址指什麼 瀏覽:434
文本命令行 瀏覽:98
撲克牌睡眠解壓 瀏覽:196
rc4演算法流程圖 瀏覽:161
胡蘿卜解壓方法 瀏覽:38
掃描pdf格式軟體 瀏覽:879
程序員在銀行開賬戶 瀏覽:517
android資料庫下載 瀏覽:752