Sharing

2012年2月2日 星期四

Homomorphic Encryption and Unhosted

雲端上的隱私還滿重要的, 如何能讓提供服務的人幫你解決問題, 但又不需要透露太多真實資料給對方, 變成是現在大家努力尋找的解答,這感覺很像是隔空就醫, 醫生幫你醫了病, 但又不知道你是誰, 不知道你長什麼樣。或是你請人運送東西, 對方只要負責送達即可, 不需要告訴他你要送的是什麼。

這兩篇有一些資訊, 不過其實看了有些霧煞煞

http://www.openfoundry.org/tw/foss-forum/8599-tech-of-protecting-privacy-on-the-cloud-homomorphic-encryption-and-unhosted

http://ckhung0.blogspot.com/2011/09/homomorphic-encryption-and-unhosted.html

先看以下的說明會比較容易了解什麼是 Homomorphic Encryption, 再回頭看文章應該就會明白了

同代加密(Homomorphic Encryption)
一般而言,密文對不持有金鑰的人而言是均勻分佈的亂數字串,無法進行有意義的計算。 在某些特殊狀況下,加密方會希望能不經加密金鑰而直接在密文上運算,產生與明文相對應的效果。
例如密文上的*運算對應明文上的+運算:
If c=a+b, then E(c)=E(a)+E(b)
具備這樣特性的加密法E()稱為同代加密。




原文: 雲端運算, 其實 「運算」 不見得一定要發生在 「雲端」 上 



不過對於  Unhosted  Application 的想法, 我覺得總是那裡怪怪的, 按照原文的意思來看, 似乎暗指"運算"會變成都在本地執行, 這和雲端概念其實是有些相違背, 原文又提到


 (1) 自己的資料放在雲端上 (2) 大家共用一套來自雲端的軟體


雲端其實並不只是這樣, 更重要的是服務商提供大量的硬體及運算能力, 讓大家能夠共享這些資源, 不必家家戶戶都具備高性能的機器, 將來每個人手中拿著手機, 拿著 pod, 用的就算是十年前的機種, 仍可以使用這些服務, 因為大部份的運算都在雲端上, 資料也在雲端上, 所以我覺得 Unhosted application / Unhosted accout 只能使用在部份甚至是很少的範圍內, 又或許他必須還是要搭配著 Homomorphic Encryption 使用, 而非獨立存在。

我又找了幾篇英文說明

http://i4bi.org/?p=344
http://nezerbahn.wordpress.com/2011/01/02/2011-is-the-year-of-unhosted/
http://www.readwriteweb.com/cloud/2010/12/unhosted.php?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+readwriteweb+%28ReadWriteWeb%29

解釋什麼是  Unhosted Application
http://lwn.net/Articles/424822/

Unhosted is a new project attempting to break the monopoly that SaaS providers have over users' data by seperating applications from data
http://unhosted.org/index.html


看完後, 我認為最上面的兩個連結對於  Unhosted 的解釋不全然是對的,  Unhosted 重頭到尾最重要的概念只是 "資料" 和 "程式" 要分開管理, 這樣我們可以針對資料做更好的控管及保護, 並不是說運算要改在本地執行, 事實上, 這樣子的分工影子已經在 Amazon EC2 & EBS 實現了, 資料的流向是
                                             Data                                 Result
                  Storage Provider  ----->  Compute Provider  --------> User
又或者

                                             Data            Data                               Result
                  Storage Provider  ----->  User -----> Compute Provider  --------> User


可以全部在本地執行的程式, 一般來說還是集中在小型程式, 大型的應該不會這樣做, 所以我認為 Unhosted 的概念是幫助我們實現更多的安全性機制的第一步, 最終還是要仰賴適合的加密演算法來達到終極保密。




沒有留言: