演講內容

首頁
演講摘要
演講內容
相關資料
相關連結
製作小組

 

        謝謝連教授的介紹,講課講得好呀….不是講得好,是笑話講得多,在我們學校裡邊,都要準備一些笑話,看到學生只要開始打瞌睡的時候,一個笑話就跑出來,就會有心情往下聽,那今天我要跟各位講的題目呀,叫做具自我驗証的公開金鑰系統,其中我會介紹這種系統怎樣應用在資訊安全裡面相關的應用,那首先我先來解釋什麼叫具自我驗証,每個人都用過鈔票用過錢,各位想想這個環境,如果各位要用這一仟塊、伍百塊,你在用一仟塊、伍百塊的時候,還要有一張証明,臺灣銀行開出來的証明,証明這些張鈔票是正確的,這樣我才敢去收這個錢,否則怎麼知道這是真鈔還是假鈔?現在不管是印刷的技術還是造錢幣裡面不是有牽這個線嘛,這種技術上都是可行的,不是不可行的,那你怎麼樣去証明這個錢是對的,所以你只好說好吧,臺灣銀行會發一個証明來証明這個東西是對的,這樣這個一仟塊錢你敢不敢收?你一看,它有一張臺灣銀行的証明証明這一仟塊是對的,敢收的人舉手,不敢收?大家都不敢收,為什麼不敢收?因為你不曉得那張臺灣銀行的証明是對的還是假的,所以我還要有一張証明,中央銀行的一張証明証明臺灣銀行發出來的証明是對的,是不是?這樣你才能相信這一仟塊是對的,不要說一仟塊,以後我們的鈔票都會很大,一萬塊是對的,這樣你敢不敢收?你敢不敢收這一萬塊?假如我們有一萬塊的鈔票,照剛才那樣講,你也會懷疑,中央銀行的那張証是的對的呢?那我要拿什麼証明來証明中央銀行的証明是對的?那我就拿世界銀行,聯合國發的一個証明來証明我們中央銀行發的証明是對的,那你就往後再去推,推得完嗎?推不完。這一定要推到一個地方為止就是說,今天我就算是閉上眼睛也要相信這個東西是對的,那你推到閉上眼睛相信這個東西是對的以後呀,那就面臨到一個問題,到底你應該在什麼地方?我應該只要到臺灣銀行能出這個証明我就相信了,還是到中央銀行出這個証明就相信了,所以在實用的範圍裡面,會發覺這很難去做,但是如果說這個鈔票,這個一萬塊的鈔票,我告訴你,你今天拿到這張鈔票的時候你不需要額外拿一張証明來証明這張鈔票是對的,你可以拿出來在有陽光的時候在陽光底下照,比如,它就會有一個雷射光的浮水印,有一隻鴿子呀或是臺灣寶島字樣就會出現,那我就相信這是對的,所以本身這個鈔票就是具自我驗証特性,self-certify,所以你要使用一張鈔票的時候,須不須要拿臺灣銀行的証明?不需要。那在電子社會裡面怎麼做?在網路裡面在電子社會裡面怎麼樣做?等一下再來介紹。

   我要講的就是這整個這方面的應用,我今天要怎麼証明這是對的還是不對的,基本上我們就是要去做資料的保護,不讓這資料、data、文件、被誤用或盜用。怎麼樣去保謢這些文件?protection需要有些方法和機制或是系統來做protection。這個protection是什麼? Crypto system,密碼系統,所以密碼系統是整個資料保護裡面核心的技術,那密碼系統我就稍微介紹一下,因為或許有些同學不是這樣的background,那我就簡單的介紹一下。一個密碼系統可以被切割成二個大元件,一個是明文,或是原文,這裡在商業應用裡面是有區別的,原文就是prime text,你原本賣的這個樣子,明文就是clear text,你可以看得清楚,你可以懂它的意思。譬如我告訴你ack0506。各位知道它意思是什麼?不知道它的意思,所以它對你們來說不是clear text。但是對我而言ack0506clear text,也是prime text,對你們而言只是prime text。在實務的應用裡面它會有這樣的區分,ack0506代表的是一筆交易的確認,第605號,在銀行裡面或許就可以這樣解釋,那一般我們還是把這兩個混在一起,對映到底下的這個,叫做密文。什麼叫做密文? Cipher text。密文就明文經過一個轉換以後,你看不懂,等到要去看它原來意思的時候,還要經過一個轉換。把密文轉換成原來的明文或者原來的原文,這個轉換過程我們就叫做加密轉換或者是解密轉換。還有一個,你在做加密轉換或解密過程的時候,必須有個東西,確保轉換過程只有某些人才能做,安全就是說你只能讓某一些人能夠做這件事情,並不是每一個人都能夠做,所以必須有個東西去卡住那個地方,這個卡住的地方,一般我們在學理上稱做是暗門,所以大家想想看,某些系統常有些暗門,事實上就是被卡住了,所以這個門就是獨享的,你可以自由進出的,所以那個東西叫做key,所以加密的過程需要一把加密的key,解密的過程也需要一把解密的key,當然我們在電子社會裡面,不只是做明文和密文之間的轉換,我們有些社會也會對文件做些簽章,sign。這種簽章我們稱作數位簽章。它跟我們手寫的簽章不一樣,手寫的簽章裡面,你簽的名跟那份文件有沒有關係?沒有關係。你什麼文件還是簽相同的名字。早上簽這樣的名字,晚上還是簽這樣的名字。所以你這個簽章很容易受到某些人的冒用或者假冒,但是如果用數位簽章的時候,這項缺點就可以改變。所以我們現在數位簽章的技術都能夠把手寫的這些簽章改變。同樣一個人簽署相同的文件在不同的時間會造成不同的簽章,然後這個簽章很容易很方便透過一個運算式,去驗証。那我們現在手寫的簽章,幾手要經過一套很特別的設備去比對,記得在今年,選舉前光是簽名的比對就是件大新聞了。我跟你講,如果用數位簽章,根本就不必講,馬上就知道yes or no了,哪須要一個月兩個月,還要送到或國外去?這個就是數位簽章裡面一個很重要的特點,不容易偽造,又可以很方便驗証,所以在網路社會裡面,這就是最基本的,你要加點密保謢你的資料,你要數位簽章來証明你的這份資料是對的,要來証明這份資料屬於某人,或証明這份資料沒有被更改,都需要一個簽章,那現在我們這個密碼學,密碼系統,在設計加解密的轉換或是數位簽章的程序大部份都是應用數學上一些計算難題,也就是你要去破解這樣一個方法,你用電腦是不可行的,這種我們稱作 computational infeasible。計算上是不可行的,我給你全世界最強大的super computer,給你最多的memory,你要多少就多少,你在合理的時間之內還是得不到答案,這密碼系統就被認為是安全了,這跟我們剛剛講的偽造鈔票,偽造一份文件,一份實體的文件,這難度是完全不同。我要偽造鈔票我要偽造印章,這些都很容易,但是你要去偽造電子文件或是電子印章,剛剛講利用現在既有的computer,甚至是五年內十年內你可以從這樣的方式來推論這是不可行的,目前有了這些方法,有了幾個難題,第一個是排列的難題,我想各位都是資訊係的,都知道computational NP complete,很多NP completeprogram,第二個是分解元素,比如我告訴你15是哪兩個質數的乘積?你很快告訴是3乘5,如果我告訴你有一個數,它總共有100個bit,是兩個各是50個bit的質數的乘積,50個bit可能一下子就傻眼了,你會怎麼做?以前我們在高中的時候就教過一個叫輾轉相除法,我們利用這個方法就能夠把這個因數求出來,50個bit你就能這樣得到,如果我告訴你是500個bit呢?你就算不出來了吧!我告訴500個bit是某個質數的乘積?你要回答我這兩個質數是什麼?你從現在去run,你的兒子出來了,你的孫子出來了,computer還沒run完。它可能要run好幾萬年,以現在的computer,這就是我們所謂的難題,每個人都知道怎麼去分解元素,每個人都知道算輾轉相除法,你也可以寫一個程式去run,但是問題就是在合理的時間之下,你就是run不出來,你可能要computer一直run一萬年,或者一百萬年。所以有些密碼的設計理論就是利用這個原理。另外一個我們叫做離散對數,例如我們告訴你,y是等於ax次方,在mod數底下某個東西算出來的結果,那我告訴你xa還有那一個mod數,你可以很容易算出y,但是如果我告訴你y,跟a還有mod的那個數,你算不出那個x,你在合理的時間下算不出來,比如我告訴你,42的幾次方mod 15,比如是這樣,那你很容易算嘛,4就是22次方mod 15嘛,所以那個x就可以算出來,這是很小的例子,那如果我們把那個數放大一點,叫computer去算就算不出來,這種難題呀就叫做離散對數的難題,所以本身密碼學的發展跟數學,尤其在數論方面有很大的關系,那我們現代在設計密碼學,大概都是以這個方式來做一個設計的考量,由於在演算法方面很多屬於NP complete的問題,都可以應用在密碼學的應用,像一個比較著名的NP complete問題叫做背包問題,那也是曾經被設計成一個密碼系統,並且在全界相當有名,只不過是這個系統存活不過一年而已,經過一年被人家給破解了,那密碼系統到目前為止沒有一個方法在理論上是絕對安全的,包括我以前在博士班,還有在博士班之後我做了一些研究,研究過好幾個密碼系統,到目前為止沒有一個存活過,所以就愈做愈洩氣,然後也愈做愈不甘心,繼續還是要往前去走,如果今天我能做出一個東西,它能經過十年二十年的考驗,已經算是全世界的大師級,我曾經還想出一個方法,這個方法非常好,令我非常自豪,論文刊登出來不到三個月,就有一個讀者寫信過來說我方法有錯,可以被破解,很難呀,要做一個不被破解的密碼系統。

  那整個加密的模式就是這個樣子。明文經過一個轉換變作一個密文,它要有一個加密的key,這個key翻譯叫作金鑰,來區隔它,然後它變作一個密文,密文以後再經過一個減密的程序又再還原成它的明文,也是要有一個key區隔它,各位看到這個翻譯有沒有覺得很奇怪,key就是key,為什麼我們又要把它翻譯成金鑰?為什麼不叫做鉰鑰鐵鑰,為什麼要叫做金鑰?各位曉不曉得這個原因?這個有典故的,很多人都不知道這為什麼叫做金鑰,事實上我們標準檢驗局用法就叫做金鑰,key的翻譯就叫作金鑰,這個典故是這樣,各位知道清朝有位皇帝,很愛附薈風雅,時常下江南去遊山玩水,這個皇帝自號十全老人,這個皇帝就是乾隆皇帝,乾隆皇帝破壞國寶不遺餘力呀,各位有空到故宮去看的時候,你去看明朝或者宋朝的一些大師的畫或者寫的詩,旁邊就有一行像是小學生寫的字,狗啃的呀,旁邊題說有什麼意見,最後蓋一個印章是十全老人,破壞國寶畫面,本來蘇東坡寫的字是非常蒼勁拔逸的,旁邊就有像小學生寫的字一樣,還做眉批,然後如果大家有看連續劇,宰相劉羅鍋,乾隆裡面的文字獄,講出來一無是處,今天講的就跟乾隆有關,乾隆裡面最有貢獻在什麼地方,我們雖是不同領或但也要知道歷史呀,乾隆的最重要的貢獻在哪裡?你看宰相劉羅鍋也有演到這一段,乾隆皇帝最大的貢獻在哪裡?乾隆皇帝的最大貢獻就是把以前的一些古書古籍整理起來,弄成四大巨冊,叫做經史子集,因為他自認是風雅之士,所以這東西整理出來了,他很自豪,雖然這東西不是經由他整理的,而是叫翰林大學士做的,所以他認為這是他最重要最寶貴的東西,別人都不能動他,所以他在他的書房裡面放著這個東西,還上鎖使得打掃的太監不能隨便摸,皇帝的東西要上鎖,配鑰匙,皇帝可以配個銅鑰匙嗎?或者鐵鑰匙嗎?皇帝當然沒辦法配個鐵鑰匙呀,皇帝配的鑰匙是什麼顏色的?是金的呀。所以就記載這一段,要保管這麼貴重的東西,放在某一個地方,你要去拿這東西取用就要拿金鑰啟之,所以今天這個密文非常重要,你要拿一個金鑰啟之,推動減密的轉換變作明文回來,所以這不是我亂編的,各位可以去讀讀歷史看看,數位簽章呢?是另外一個模式,這裡為什麼把這些不同模式畫成一樣,是因為基本上它們的原理是一樣的,一個訊息進來經過一個簽署,也會有一個金鑰,啟之變作一個簽章,這個簽章傳遞到對方去驗証的時候,它就把這簽章還原成訊息,所以上面這一段很像我們的加密和減密,只不過是,這個密文呀這個簽章,是人人都可以去驗証的,跟我們簽名一樣,應該只有我們可以去簽名,所以這兩把key裡面哪一把是不能給別人的?如果這一把給別人,是不是代表別人都可以用一把假用我的名義來簽名?另一把key是我可以給大家的,大家可以用這把key來驗証我的簽名,所以這個動作很像加密和減密的模式,那我們回過頭來看,哪一把不能給別人?如果別送祕密的東西給我,這一把給別人不就讓人知道了?那這一把可以給別人,那也可以不給別人,不給別人的意思代表說,我自己保管我自己的資料,所以這種加密方法就有兩種,所有的key都由自己保管不給別人知道,那這種加密方法適合用來保護個人的資料,那如果說一把鑰匙可以給別人,在網路裡面,每個人都有我的public key,每個人都可以加密送文件給我,但是文件只有我自己解得開,所以如果有一把key是公開的,可以用在網路或者通信的環境。所以我們在網路或者通信的環境都是使用這樣的模式。這一種就叫做public-key系統,公開金鑰系統。那公開金鑰系統,剛才講最主要應用在兩個,加減密跟數位簽章,那事實上我們在應用數位系統裡面,不只以上提到的兩個,我們還有金鑰交換,我們要開一個祕密會議的時候,我們希望這個會議只有我們兩個人知道,或者我們一群人知道,其他人不能知道,我們還需要交換這種,這個時候我們都需要密碼技術,那事實上密碼技術怎麼來,不是用加減密就是用數位簽章,這些方法擴充而來。

    好了,剛剛我們講一個公開的key,公開的金鑰是要給別人的,如果連教授說這支金鑰是我的,有個同學它就把連教授的key給取代掉了,把它改掉了,所以我們認為我們要送個訊息,期中考考得很不好,要跟老師來懺悔,送個密文給教授,用教授的public key,那第二天發現這封信在全校廣為盛傳,因為某人把連教授的public key給取代了,所以我們在用這個系統時,就算有個東西是public出來,我們也要有個東西來証明這個東西是對的,是連教授的,所以我們在用public key之前,要先去驗証這個public key是對的,還是不對,這個就叫做公鑰的驗証,這是很重要的部份;我們現在大部份的系統,目前我所看過的,或是在research上,很少人投入去做這個東西,他們認為這個很平常,可以公開的東西為什麼要去保護?對不對?沒錯,可以公開的東西不需要去保護,但是可以公開的東西你要防止人家去濫用,防止人家冒用,所以這就是公開金鑰需要去驗証的主要原因。那現在我們要怎麼樣去驗証這個公鑰?我這個演講的主題就是以這個為我的主軸。

  怎麼樣來驗証?目前有三種方法,或許大家都知道第一種方法,第一種方法我們叫作certificate base,就像我們現在的環境一樣,有一個公信的中心,大家可以信任的,叫作CA,這個CA就要去發一個certificate,憑証,你今天要join這個系統,你就把你的public key拿過來,所以各位如果要來學校註冊,你要怎麼証明你是政大的學生呢?你就要填資料,學生証上面填一些資料,填完以後註冊組那邊就蓋一個章,証明這張學生証是你的,所以未來你可以拿這張學生證來証明你是誰,所以這個CA,在userjoin的時候就發一個certificateCA就幫你蓋一個章,怎麼樣去蓋這個章,電子化的話就用數位簽章,那裡面我到底要針對什麼內容來簽章?針對key,針對user各人的身份,還有針對發行者,三個連這個key合在一起蓋一個章,意思就是說以後這個certificate拿出來的時候,要跟人有關,跟key有關,跟發出來的東西有關,所以你可以解讀這個certificate,意思就是說,當我把這個certificate拿出來,我是要証明這把key是屬於某一個人的,那誰來幫我証明這個key是屬於某個人呢?是CA來証明這個東西是屬於某一個人的,所以我如果証明對的,而你不滿意的話,你就去找那個CA,因為是它幫我証明的,懂這個意思嗎?這叫做certificate base,所以每一次你要去用key的時候,今天你要用我的key,我不只要把我的key傳給你,還要把我的certificate傳給你。這個certificate在學理上叫作public key certificate,不是我們一般講的身份証,是public key certificate,它是証明這個key是屬於某一個人的,所以從這個地方我們可以知道,一個人可以有幾張certificate?可以有很多張certificate,因為如果你有很多不同的應用,需要不同的key,你就可能有很多張certificate。第二種叫作id baseidentity base,就是說你的public key就是你的姓名,如果我要寫一封信加密送給你,假如你的ip address就是你的public key,如果我不知道你的ip address,我就不曉得怎麼加密這封信送給你,所以這個時候它就不需把這個certificate傳遞到對方手裡了,這就是id base,它比certificate有個優點就是,它不需要把這個certificatekey傳到對方的手裡,但是也有個的缺點,就是這個id是個public key,那相對地就要有個secrete key,這個secrete是由系統中心幫它產生,所以系統中心就知道所有使用者的private key,這個時候,你是不是要假設說,這個中心是很公正的,不會濫用不會誤用,像前年我們國內在推動IC card,本來是有一家廠商得標了,就要去做,但是有一些學者專家來抗議,為什麼要抗議?因為我們不能trust這個廠商有了我們的所有資料後,會不會拿去做其它用途?因為個人資料是受到個人資料法的保護,所以這個案子就受到這個event,因為沒有辦法達到保護個人資料的隱私的要求作廢,所以這個等於就是在identity base裡面,是要大家可以相信的,那從這樣一個觀點來看,我們是不是可以找到另外一種辦法,到目前為止,甚至到公元兩千元或是到2005年為止,全世界都還是用certificate的作法,不能有不一樣的作法嗎?現在就有人想到不一樣的作法,我這個key拿出來,每個user可以自己去驗証這把key是對還是不對,這是第一個目的,所以就有人去想怎麼去做出這把key來讓每個user去驗証對還是不對。第二個目的就是,比如說我們要去做解密,要去做數位簽章的時候,我一定要先去驗証key,驗証完了以後,才去做解密或是做數位簽章,我能不能把驗証key的動作延遲,延遲到我在做解密或是做數位簽章的時候,我在解密或是在做數位簽章的時候,一併達到驗証這個key的功能,這樣子我的效率就提高了,我在整個計算的效率就提高了,所以就有人這麼想,從這個角度想self-certify的用意,第一個它要減少通信的成本,因為它不再送一張certificate給你了;第二個是要那兩個步驟不要那麼獨立地去做,就二合一就可以做到驗証key和驗証密碼應用的功能,這就是self-certify;那self-certify我們做一個簡單的摘要,它的特點是第一個,keycertificate是合而為一的,所以這個key本身就具自我驗証,第二個是系統不需要額外的空間去維護certificate;第三個是使用者註冊以後,系統幫他產生一把public key,不能把private key丟給系統,比如我就跟系統註冊,它就幫我產生一把public key,它也不知道我的private key是什麼,所以private key我就可以祕密保存,它幫我算以後,我可以去驗証它幫我算得對不對。

像這樣子就把系統中心把它定位成在說它就很單純的去幫你計算,把它當成真正的sogosogo的意思就是幫人家去做服務,它就幫你去做服務的工作,這個就非常適合現代的整個computingnetwork的工作,sogo就是不管你是turst或不turst,你不turst也好,你不turst幫我算出來的東西,能夠去檢驗你幫我算錯了,那第四個特點,就是我的公鑰的驗證跟學後的密碼應用能夠在一個邏輯步驟完成,所以竟能我可以降低公鑰驗證所須要的成本,另外還有主動供給,主動供給把key替代,那你把key替代有沒有辦法替代,人家就可以驗證,對不對,自我驗證嘛,對不對,你要加密的時候,一加密一解出來,就解不出你的訊息出來,一做數位驗證也做不對,所以啊你沒辦法去替代任何一個人的public,這是sertify的一個特點,好我們講到幾點,好啦我們講到三點半,我把這個sertify這個key裡面啊,這個設計的原理,跟各位做一個比較詳細的介紹,那後面的這個key怎麼去做keep change,我不講,讓各位有一思考的空間,好這個是我設計出來的一個方法,這個方法也在一些期刊上有發表,一些國際期刊都有發表過這個方法,那這個方法裡邊呢它怎麼做,它的作法裡邊呢它怎樣做,它的作法裡邊它的系統中心,它就先定義幾個參數,定義p這個很大的質數,q也是一個p-1的一個很大的質數,還有h是一個答錯函數,阿法是一個gfpxxxxxxxxx,一個fill一個長,底下的一個orderq的一個generate,那加馬跟貝塔就是這個資料的共用,講到這樣大家都還是不懂,對不對,想盡辦法讓各位聽懂,質數我們剛剛不是講說,我們在設計密碼學的過程裡面啊,我們希望我的這個問題是變的很難的,對不對,變的很難的問題,別人沒辦法去解,我剛剛也舉例了,比如說像我們這個問題啊,是屬於像什麼樣的問題,是屬於離散對數,什麼叫離散對數,就像這樣,貝塔是等於阿法的加馬次方羺pp是一個質數,對不對,p是一個質數,阿法是一個fanbertive generator,那意思就是說,如果你今天告訴我加馬,都很容易算錯貝塔,對不對,我在log的時間log的乘法我就能算出貝塔,是不是,如果你告訴我貝塔、告訴我阿法、告訴我p,我要算出這個加馬呢是天方夜譚,是天方夜譚很難的,我們剛剛我們講說離散對數理論上我們希望達到這樣一個效果,對不對,問題來了,問題來了,來了什麼地方呢?來在說,我剛剛不是舉個例子,如果我告訴你這裡是四,這裡是二,這裡是二是不是,然後這裡是多少,這裡是七好了,你能不能說好了你從b從這個貝塔這個阿法從這個p,你能不能去找到這個加馬呢?!你很容易嘛,對不對,你很容易,意思就是說這種難題啊有一些是很簡單的有一些是很難的,所以啊這裡啊,我們的p裡邊,如果這個p,它是一個質數,它減一以後還有質因數,也就是說這個質因數是很大,懂我意思嘛!這個p呢減一以後還有質因數,那這種數呢我們就給它稱做長質數,用這種數所做出來的要去算離散對數的問題啊,是所有離散對數裡邊是最難的那一種,then啊,為什麼我們要去選這個參數的時候,我們要去選這個讓人家破是最難的,所有的密碼設計都是基於這樣一個道理,不是說我任意選一個,如果你選出來p是不好的時候,人家會容易去破解,那第二個裡邊呢,裡邊講的就是單向雜錯函數h,這整個密碼應用尤其要應用到數位簽章的應用,所謂數位簽章就是要驗證這個東西是對還是不對這個屬於某一個人,比如說我今天我要去驗證比如說掌紋,一個掌紋,有一個掃描器掃進去,對不對,下一次你要進來的時候,你也是掌紋掃進去,然後他就去比對,各位想想看,它怎麼比對,它是把全部的掌紋變做一個image,一個掌紋這樣下來,總共它要花多少個size,這個data量多大,非常非常大,對不對,所以我們要去比對,你一個一個在那邊怎樣,要花比較長的時間,懂這意思嗎?!那我們通常我們怎麼去做這種比對,各位如果有在做影像處理的這個研究,我們也找control point,找control point,這種我們找某一段,能夠來表示掌紋的特徵,這個我們等一下稱做tatelist value特徵值,所以我們就從你的這個影像掃進來以後,我就去找一些特徵值,資料怎麼樣,蠻小的,那這樣子下一次某個人要進來掌紋我要比對,我也是一樣的在那個位置取那個特徵值出來,都很快可以個完全matchmatch到了,我就相信你這個是對的,所以啊在密碼的應用裡邊,我今天我要去證明1MB的資料,1MB的資料裡邊,有沒有某一個bit被人家更改,那你這1MB的資料就要去做簽章了,懂我意思嗎?那你要簽多久,所以啊我們不需要這樣子,我就先把這1MB資料裡面去把它壓縮,去取它的什麼特徵值,可能只有160bits,可能只有128bits,那這168bits或這128bits就代表,它代表的是這個整個1MB資料,所以你今天你要另外找出1MB的資料,這等於我取出來的這個特徵值是很難的,這個機率要小於十的九次方分之一,好,如果是這樣子,那你設計出來的這種h啊就是安全的,這代表說,別人在有效的時間之內沒辦法去取代,就是用不同的文件造出假的文件,但是跟你的文件有相同的特徵值,做數位簽章我們不是對資料來簽章,我們針對什麼來簽章,是針對那個特徵值來簽章,所以你1MB的資料,是把你壓縮成160個位元,然後去簽章,所以這個是在密碼應用系統裡邊啊,一個很重要的h,好那底下呢,我就來說明,這整個方法裡邊啊,它怎麼樣來設計,因為它要讓使用者,讓這個使用者有權利來決定自己的public key、祕密的key,所以這個public key是使用者自己決定,要注意啊,那我要跟註冊的那個人,他不知道,他不知道,他怎麼做呢?他就先任選一個隨機亂數叫做kk然後去算阿法負的h這個,我就把這個資料連接起,ki呢,它就是自己的身分,然後就去算出v出來,那這個v啊,就很像這個使用都啊,他自己決定我自己的特徵值在哪裡?而且是動態的去決定,然後呢,我就把i我個人的相關資料,跟這個v,這個v啊,就是我從這個資料裡邊壓出來的結果,對不對,我就要來跟sa來註冊,所以sa也不知道我選的k是什麼,因為如果sa可以知道我選的k是什麼,以後,那就跟它怎麼樣,sa就可以假借我去做很多事情啊,所以user所選的祕密參數啊,sa啊他都不知道,他都不能知道,那這裡為什麼不能知道呢,它透過兩層的保護,第一層,它透過的是一個h,我們剛剛講它是一個單向的函數,那麼多壓到那麼小,這是單向,你不可能從很小壓還原成很多嘛,對不對,這從這資訊理論裡面啊,有講到xxxxx,這個你沒辦法去改變啊,這是理論上的,所以你從這個結果,你沒辦法去找出這個函數所包含的k,這第一層保護,可是光這樣保護這樣就夠了嗎?也不能,你要防止人家去知道這個結果,整個h出來的結果,所以啊你就把它提到指數這個地方,基本上啊,使用者自己選的參數上它經過了兩層的保護,這是第一個,接下來以後,好我的這個sa,我收到這個user i這個人要來申請,那申請了之後啊,我就自己亂選了一個數叫做zi,任選一個數,那任選這個數zi以後,我就去幫他去算他的public key叫做yipublic key是從這個式子來,各位先不要急著想說這個式子為什麼這樣子想,因為各位可能要經過八年的功力才有可能去推這樣的式,但是你要知道它這個原理在哪裡,這樣子以後你就可以去設計,或許你不一定要用跟我一樣的方法,你可以不一定透過數學的方法,你可以透過影像處理的方法,你可以去透過其它的資訊科技,都有可能的方法,去design一個這樣的系統出來,等一下在演講的最後面,我會跟簡單的報告我最近的一個想法。

就是利用這個setsetify的觀念的最近的想法,在電子商務的應用裡面會有很大的幫助,那我造出這個y以後就是userpublic key,事實在我在造這個y的過程,我把簽章含在裡面,那把簽章含在裡面,我當然要告訴user你以後怎樣來驗証這個y,所以這個註冊的時候這個RSA就把簽章算出來,叫做wi,所以我連你的public key和你的wi送給user,事實上這個wi就很像是一個我剛剛講驗証鈔票要誰來驗証鈔票,是台灣銀行,因為台灣銀行對的是中央銀行,這個w就是台灣銀行,來驗証他發出來的鈔票是對的,那以後這張鈔票user用的時候,那user還要不要拿jw出來一起用呢,不需要。所以我今天我去領鈔票,我領到鈔票以後我user可以去看看我領的這個鈔票是對還是不對,不需要再去拿証明,各位如果有去買美金啦或買什麼不是都會寫個匯單嗎,這就是一個証明,証明你買的美金是合法的,不是在黑市裡面亂買的,那當ui收到這個訊息以後,他就自己去算出一個xi,這個key去當作他的private key,這個xi事實上兩個人各有貢獻,user自已剛剛選的k還有sa剛剛選的z,合在一起算是他的xi,那這個z包在那裡呢,z是包在wi這個地方,意思就是說userkey也不是他自己一個人決定的,是兩個共同決定的,我們講什麼叫做安全,不是一個人知道叫做安全,我們講什麼叫做公平,不是一個人知道叫做公平,而是有很多人來share,就像你們系裡面計算機中心誰最大,大家都認為計算機中心主任最大,其實不是啊,是計算機中心裡面的技術員最大,他有superuser的權利嘛,他對所有的老師什麼的他都知道嘛,很怕他abuse這個資源,所以安全的方法像我們剛講的就是要讓這種應用不會被abuse,所以我們才需要密碼學來保護,所以好的安全的方法就是要把你的權利要share,要把你的密秘要share,這樣才是一個風險分擔的方法,所以user就可以算出他的key,那算出來以後,我怎麼知道他的key是對的,他就去驗証這一個式子,這個式子是從前面的式子推出來的,那各位要注意這個式子包含了右邊這邊,這邊也是在驗証yiii也就是個人身份在這個y裡面的驗証關係式,所以等於是我在驗証我的publicprivate key對還是不對的時候,我已經間接的驗証了我的yi是不是對的,你沒辦法去改我的yi所以這個是在整個設計上的一些方法和理念,不曉得講到這個地方各位有沒有問題,那我再講一個大家有興趣的問題,大家知道正字標記,這個同學那邊有一個紅茶,那邊有沒有貼一個什麼樣的mark,你今天買這個東西你怎麼相信他是安全的,好像沒有,買了就喝了,所以通常我們在買這個東西的時候我們會很注意這種mark,在實体上我們都是mark的社會,所以今天他會貼一個優良食品,如果是藥品,他會貼一個優良藥品,那貼這個mark的用意在哪裡,當然是讓消費者他來採用的時候比較安心,好了,那在網路社會裡面,很多人說他要上網路去購物,把你的credit card打進去了,結果放到帳單以後除了那一筆以外,還有其他好多筆你沒辦法預期的,這是什麼樣的原因呢,就是你的credit card被人家盜用,在國內這種情況非常非常多,每年發卡銀行損失非常慘重,客戶也一樣損失非常慘重,怎麼樣在這個環境裡面要怎樣去做呢,就有一些聰明的人想出聰明的方法,好幾隻老鼠就討論怎麼樣去免於貓的威脅,好那有些老鼠就提議我們在貓的脖子掛一個鈴噹,以後我們聽到鈴噹聲大家就知道要趕快烙跑,這方法好不好,高明不高明,非常好,接下來的問題是誰去掛鈴噹,好了,在網路社會裡面我們掛一個mark,好不好,這方法很好也很高明,以後我們每次上網一看到這個mark就代表你這個環境是優良網站是一個我可以信任的環境,所以我可以安心的購物,shopping時可以無後顧之憂,結果收到帳單還是一大疊,還是被盜用,為什麼? 因為那個網站為了去吸引別人來,他就去弄個mark,把這個mark從別的網站就給你借到我的網站,借過來,我沒有偷啊,那實体的東西被偷走以後,實体的東西不見了,information被偷走了,information還在啊,接下來就兩個人要來爭辯了,我有這個mark啊,我有這個mark是你使用者使用不當,如果是你你要怎麼來提出辯駁,你說那我們就來驗証那個mark對還是不對,是不是這樣,好啊,那我們就來驗証,那我們一般有兩種驗証的方法,一種就是叫法院來,看這個mark是對還是不對,法院一看,咦,你這個mark是屬於這個某某公司的,所以你對了他錯了,但是你很多人來抗議的時候,或是很多人進網站之前我一定要先驗証,縱使沒有發生糾紛我也要先來驗証看對不對,所以我每一次要驗証的時候不是就一定要先去法院看看去問一下,看我這個mark是對還是不對,對了我才敢去購物嘛,這樣不方便嘛,這個就是我們要做setsertify的原因,我user自己拿一個mouse在那邊點兩點,他就能夠驗証,自我驗証,所以我不需要再跑去法院說你來幫我看看這個mark到底對還是不對,懂這意思嗎,這個技術啊目前在做,那這個技術未來就是用在保護你很多的資料,我們知道浮水印,我告訴各位有一種浮水印是你撕不掉的,大部份你各位看到的浮水印都是透過image processing的方法,那個都是可以偽造的,只能透過密碼學的方法才不能偽造這個浮水印,甚至你拿都拿不掉,你透過影像的方法可以被人家貼上去,可以被改,但是你透過密碼學的方法沒辦法去貼,你貼了人家很容易就証明出來,為什麼証明出來,因為本來浮水印是跟你的content 有關,他是透過數位簽章所造出來的,剛剛在講這個sersetify的設計的過程裡邊,他這個利用數位簽章的方式來保証這個資料不被人家去更改,我相信這個問題各位可以再去想,因為我在資管系,我本身是讀資訊工程的,那像我們講到engineer這時候就比較直一點,做了很多的algorithm,做了很多的這個系統的應用技術,他但是都不太曉得,這個東西在商業上的應用,有什麼樣的技術,或許從現在開始妳可以慢慢去思考這樣的問題,怎樣來應用在商業行為,管理層面,應用在很多的公共事務,還有不要應用到犯罪,這個本身我跟調查局啦,刑事警察局啦他們本身也都有在聯系,我們可以了解學生的技術啊都比我們高明很多,但是問題是刑事局那邊都有很高明的人在後面,甚至他們有個team連合起來,所以你在網路的世界裡面隨時有人在看著你。

  我再把最後一張投影片,大家可以去思考這幾個問題,第一個,未來整個電子商務裡面,security將扮演很重要的角色,不是光考慮workable,還要考慮到secure,剛才所講到的電子購物,國內一直沒辦法去推動,我們在號稱電子商務是B2BB2C,為什麼都推不起來?就是沒有security,所以才推不起來,就是我們的security沒辦法獲得其它國際企業的肯定,所以我們沒辦法去推,也沒辦法去join網路的society,雖然說網路的society是無國界的,所以你要去步入國際的舞台,首先就必須要security,當然我們在security的考量裡面,一直增加很多security,你的系統overhead愈來愈大,performance愈來愈差,好不好?我的增加security,結果方便性愈來愈差,各位如果以後要進教室,先要把學生証拿出來,你以後會發現到學校去上課是一生最大的夢靨,不太願意來上課了,每走到一個地方都要拿學生証出來驗証,沒辦法去接受的,也許會說在學校裡面大家沒必要去知道誰是誰,像我在台科大上課,我也知道很多都不是我們的學生耶,很多旁聽生都是業界的人,因為他們如果要我到業界講一個小時要三仟塊,他來我們學校來聽還免費哩,所以我就不限制,什麼人來聽都可以,還有軍事單位的人也來,安全局的,調查局的都有來,反正我也不管,我只要上我的課,做好我的本份,把知識推出去,然後注意同學的反應,搞不好在我們讀了兩年了還不畢業,結果說是旁聽的;如果說以後的每一堂課都要點名,同學會認為上這堂課有趣味嗎?一點都沒有趣味,可是同學還是要接受啦,因為這是老師上課的一個必要手段啦,我也是一樣,一看到人數開始少的時候,就點個名,這樣人數才會多一點,我的目的是希望我把我的knowledge告訴你,因為那是你的權利,也是我的權利,而不是說你的權利是我的義務,我的義務是你的權利,不是這麼說的,你有受教權我有上課權,我就必須強迫你坐在這個課堂上去聽,縱使你聽不進去我還是強迫你要來這裡,曾經有個同學穿著脫鞋跑來上課,我就把他趕出教室,我說我有上課權你有自由權,你來上課你要尊重我,如果在我的研究室打著赤腳我都歡迎,到課堂必須穿著鞋子,那個學生就很不好意思,馬下跑到樓下的7-11買個鞋子;未來我們要走的路是要走standard還是要走customer-oriented,走standard有個好處,它的好處是有很多環境你可以跟別人共同去share的,甚至你也可以share別人的環境,standard也有個缺點,別人有的我都有,我有的別人也都有,搞不好別人有的我還沒有哩,那這樣子是不是變成沒有競爭優勢呢?所以從一些marketing的角度來看,有一些是我們希望去獲得security或者安全技術變成是企業組織的策略武器,所以我們會走著customer-oriented,不會去走standardcustomer-oriented在無形中會阻礙IC card在電子商務中的發展,很明顯的,像手機,每一個人的手機都不一樣,但是你想想看,如果手機standard了,手機還有什麼搞頭?沒有了,外殼就那麼大而已,要做很多的變化,要你很神你很賊,那你就需要很多的interfaceuser要去接觸很多不一樣的interface,就會阻礙這個應用和發展,這就是今天我演講一個簡單的結論。