2011年7月18日 星期一

PKCS#1 unpadding

許多api都已經將unpadding綁在RSA的加解密功能裡。因此我們不常碰到自己解padding的情況。

而這個需求,jackmis就碰到了。

天呀,老師一定會覺得我玩完密碼學後真的學以致用了。(學密碼學的同學們出來很少有人再碰了)

以下介紹的PKCS#1 unpadding法,其實RSA實驗室的文件裡就有寫到。但是那篇文件轉來轉去,竟然把unpadding的部份省略了,jackmis就是那篇「簡化」過的文章的受害者。當然,也可能是RSA事後才補進去的。在下對這個歷史沒多大興趣,我們還是進入正題吧。有興趣的人也可以直接去RSA實驗室看原文。(我在這裡寫下來,是因為中文資源真的很少,讓小弟留下一些中文的資訊吧)

PKCS#1定義了RSA加解密的基礎規則。padding是用來補足資料長度,以便做RSA加密運算。當我們將密文解回來後,我們會看到一個落落長的資料。而明文,其實只是這個資料中的一部份。因此,我們要unpadding,跳過非資料的部份,取出我們所要的明文。

將密文正確解密後,應得到以下的資訊:
EB = 00 ∣∣ BT ∣∣ PS ∣∣ 00 ∣∣ D

「∣∣」是字串連接的意思。

EB是encryption block,就稱它為加密區塊吧。(因為我是讀加密的部份來看padding的方式,所以這裡的加密區塊,指的是,這串資料是準備要拿去加密的。)
開頭的00是1個十六進制的byte資料。
BT是block type,長度為1個byte。在文件中有00, 01與02三種。
PS就是重點的Padding字串,長度至少為8個byte。
然後再一個00。
D就是我們要取出來的明文。
整個EB的長度為128byte。文件中指稱可以擴張。

當BT為00時,我們要指定D的長度,或D的開頭必為00。如果知道D的長度,那當然就可以拿資料了(從後面拆),但走「D的開頭必為00」時要怎麼取D?這點jackmis還在想。也歡迎大家補齊。
BT為01或02時,必須確定PS中沒有00值。這樣的話只要從第10位byte(開頭的00+block type+至少8byte的PS)往後找到下一個00,之後的就是D了。

因為jackmis只用的到block type為02這種,所以其他沒研究...(人的一天只有24hr呀...),其他的,留給以後或各位幫忙囉。

2011年6月19日 星期日

三木聰 - 熱海搜查官

這是一部相當耐人尋味的作品,故事雖然以輕鬆的方式呈現,其中懸疑氣氛卻壓得讓人喘不過氣來,可以說是非常棒的懸疑作品。更重要的是,這部作品的整體佈局,在您看完後才能慢慢感受出來。若您看完該作後還故事仍有疑慮,因為本站一向不喜歡破壞未觀賞者的興致,所以只能請您上網查詢相關資料,相信對這部作品作完整介紹的網站,能夠解開您的疑惑,並讓您更驚更喜。

故事發生在『南熱海市』。三年前,四位高中女學生在乘校車前往學校,校車司機發現一位老人倒在地上。司機停下車,上前查看老人的狀況,卻在此時,校車自動動了起來,衝進濃霧裡。數個小時候,有人發現校車司機在一座草原上狂奔大叫。而車上的四位少女中,其中一位在一個月後(也好像是一年= =)被發現在路旁,陷入失憶。另外三位則和校車一起不見蹤影。

主角星崎劍三就是被派來處理此事件的『廣域』搜查官(故事中虛構的單位,職權與FBI類似)。星崎的辨案方式不案牌理出牌,常常有令人汗顏的想法與不合時宜的『啊!原來是這樣呀!』這讓jackmis很困擾,很想知道他到底知道了什麼,而他所知道的東西...有點道理又好像沒什麼道理。不過,這個謎團也會在結束後真相大白。

失蹤的少女
失憶的少女
神祕的邪教
奇怪的男女關係
奇怪的男女主角

究竟這個奇妙的事件背後隱藏著什麼樣的真相呢?不可思議的南熱海市又是個什麼樣的地區?廣域搜查官星崎劍三又是位什麼樣的角色?相信看過這部作品後,您一定不會覺得浪費了自己的時間。

2011年6月16日 星期四

橫山秀夫 - 深追い

或許是先前日劇播送的橫山秀夫短篇懸疑作品的成功,之後又出了同性質的四部作品。本篇所討論的《深追い》就是其中一篇。本這次系列的故事集中在三村田警署。描述警員與事件之間發人醒思的故事。

《深追い》故事中主角原本在五年前是重型機車隊的一員,因為在執勤時追趕小轎車,導致小轎車翻覆爆炸而上了新聞,被認為破壞了警方的形象,才被貶到一般的交通科,處理車禍等小事故。

有一次,主角接到一起死亡車禍的事故。便和同事趕去現場。現場在一個狹小的隧道,死者因為腳踏車失控倒下而被後面的車子輾斃。就在主角調查死者的時候,意外發現死者的老婆竟然是自己的初戀情人。雖然身為警員不該藉著警方的情資接近事件相關人,但是主角忘不了往日情誼,開始接近他的初戀情人了。 然而,正當主角以為一切發展順利時,初戀情人卻自殺了。

這部作品非常專注在《深追い》的標題上。主角的奔撞總是為他帶來難以預料的問題。作者利用這部作品,告訴我們三思後行的重要。一頭熱的栽裡去,偶爾會造成不良的影響。