Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
pickbox @ OSDC.tw 2013 Lightning Talk
Search
Szu-Kai Hsu (brucehsu)
April 20, 2013
Programming
0
53
pickbox @ OSDC.tw 2013 Lightning Talk
Szu-Kai Hsu (brucehsu)
April 20, 2013
Tweet
Share
More Decks by Szu-Kai Hsu (brucehsu)
See All by Szu-Kai Hsu (brucehsu)
Running Life Lean
brucehsu
0
160
Core Unleashed Part II: Introduction to GobiesVM (and STM) @ RubyKaigi 2014
brucehsu
0
1.9k
[RubyConf.tw 2014] Cores unleashed - Exploiting Parallelism in Ruby with STM
brucehsu
0
2.1k
用 Go 打造程式語言執行環境:實例剖析 [OSDC.tw 2014]
brucehsu
3
2.3k
Building Web 2.0 APIs
brucehsu
1
140
由Spanner來看Google資料庫的前世今生
brucehsu
4
270
Rapid Web Development by Example
brucehsu
3
3.1k
TechWed@CCU #0
brucehsu
2
450
Chromium OS
brucehsu
2
190
Other Decks in Programming
See All in Programming
CSC509 Lecture 09
javiergs
PRO
0
100
JaSST 24 九州:ワークショップ(は除く)実践!マインドマップを活用したソフトウェアテスト+活用事例
satohiroyuki
0
260
[PyCon Korea 2024 Keynote] 커뮤니티와 파이썬, 그리고 우리
beomi
0
110
go.mod、DockerfileやCI設定に分散しがちなGoのバージョンをまとめて管理する / Go Connect #3
arthur1
10
2.4k
プロジェクト新規参入者のリードタイム短縮の観点から見る、品質の高いコードとアーキテクチャを保つメリット
d_endo
1
1k
とにかくAWS GameDay!AWSは世界の共通言語! / Anyway, AWS GameDay! AWS is the world's lingua franca!
seike460
PRO
1
540
Honoの来た道とこれから
yusukebe
19
3k
Go言語でターミナルフレンドリーなAIコマンド、afaを作った/fukuokago20_afa
monochromegane
2
140
Server Driven Compose With Firebase
skydoves
0
400
Snowflake x dbtで作るセキュアでアジャイルなデータ基盤
tsoshiro
2
430
Vitest Browser Mode への期待 / Vitest Browser Mode
odanado
PRO
2
1.7k
Sidekiqで実現する 長時間非同期処理の中断と再開 / Pausing and Resuming Long-Running Asynchronous Jobs with Sidekiq
hypermkt
6
2.7k
Featured
See All Featured
Measuring & Analyzing Core Web Vitals
bluesmoon
1
40
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
290
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.2k
Thoughts on Productivity
jonyablonski
67
4.3k
Teambox: Starting and Learning
jrom
132
8.7k
Building Applications with DynamoDB
mza
90
6.1k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
Optimizing for Happiness
mojombo
376
69k
Intergalactic Javascript Robots from Outer Space
tanoku
268
27k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
13
1.9k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Transcript
pickbox Szu-Kai Hsu (brucehsu) ⼤大家好,我今天的喉嚨有點不舒服,因為我昨天跑去跟⼈人夜唱⼀一整晚沒睡,所以還請⼤大家多包涵 我要講的題⺫⽬目是pickbox,光看標題可能沒⼈人知道這是什麼。
pickbox Szu-Kai Hsu (brucehsu) yet another Dropbox copycat 其實它就是另外⼀一個⼭山寨版的Dropbox
Before you pull my plug 在你們想說⼜又來⼀一個佔lightning talk位置的,準備跑上來拔我插頭之前還請各位留步,要講的當然不是如何⼭山 寨⼀一個dropbox這種被講到爛的東⻄西
因為市⾯面上已經太多這種東⻄西了,除了Dropbox本⾝身,我們還有Box、前陣⼦子很紅的copy,還有微軟的 skydrive以及sugarsync。但是⽐比起這些,pickbox技術上會更接近另外⼀一個服務
因為市⾯面上已經太多這種東⻄西了,除了Dropbox本⾝身,我們還有Box、前陣⼦子很紅的copy,還有微軟的 skydrive以及sugarsync。但是⽐比起這些,pickbox技術上會更接近另外⼀一個服務
因為市⾯面上已經太多這種東⻄西了,除了Dropbox本⾝身,我們還有Box、前陣⼦子很紅的copy,還有微軟的 skydrive以及sugarsync。但是⽐比起這些,pickbox技術上會更接近另外⼀一個服務
因為市⾯面上已經太多這種東⻄西了,除了Dropbox本⾝身,我們還有Box、前陣⼦子很紅的copy,還有微軟的 skydrive以及sugarsync。但是⽐比起這些,pickbox技術上會更接近另外⼀一個服務
因為市⾯面上已經太多這種東⻄西了,除了Dropbox本⾝身,我們還有Box、前陣⼦子很紅的copy,還有微軟的 skydrive以及sugarsync。但是⽐比起這些,pickbox技術上會更接近另外⼀一個服務
那就是bitcasa,或許在座有些⼈人有聽過這個名字
它們號稱提供無限的儲存空間,實際上只是提供的空間⼤大到應該還沒有⼈人⽤用得完這樣,像是從這張網路上找到 的圖就可以看到它有500多tb可以⽤用這樣。當然,bitcasa除了砸錢買storage之外,⼀一定還有其它的撇步才能 夠提供這麼多的空間。
Convergent Encryption File content security De-duplication 這個技術就是convergent encryption,⼀一來保證了檔案內容的安全性,同時也讓重複檔案所佔的容量降到最 低
Traditional Encryption 我們就先從傳統的加密⽅方式看起。⾸首先我們要有⼀一把key,通常就是⽤用密碼這種只有⾃自⼰己知道的字串,像是在這 個例⼦子裡就是不能亡的56;再來就是要加密的內容,在這裡當然就是⼀一個檔案,像是內容為Hello OSDC!的 test.txt;把這兩者傳⼊入⼀一個encryption algorithm function中,像是AES-256後,我們就可以得到⼀一串作為 結果的cipher text,⽽而只有知道key是5566的⼈人才能把這串⻤⿁鬼畫符轉回Hello
OSDC!這句話
Traditional Encryption 5566 我們就先從傳統的加密⽅方式看起。⾸首先我們要有⼀一把key,通常就是⽤用密碼這種只有⾃自⼰己知道的字串,像是在這 個例⼦子裡就是不能亡的56;再來就是要加密的內容,在這裡當然就是⼀一個檔案,像是內容為Hello OSDC!的 test.txt;把這兩者傳⼊入⼀一個encryption algorithm function中,像是AES-256後,我們就可以得到⼀一串作為 結果的cipher
text,⽽而只有知道key是5566的⼈人才能把這串⻤⿁鬼畫符轉回Hello OSDC!這句話
Traditional Encryption test.txt 我們就先從傳統的加密⽅方式看起。⾸首先我們要有⼀一把key,通常就是⽤用密碼這種只有⾃自⼰己知道的字串,像是在這 個例⼦子裡就是不能亡的56;再來就是要加密的內容,在這裡當然就是⼀一個檔案,像是內容為Hello OSDC!的 test.txt;把這兩者傳⼊入⼀一個encryption algorithm function中,像是AES-256後,我們就可以得到⼀一串作為 結果的cipher
text,⽽而只有知道key是5566的⼈人才能把這串⻤⿁鬼畫符轉回Hello OSDC!這句話
Traditional Encryption test.txt Hello OSDC! 我們就先從傳統的加密⽅方式看起。⾸首先我們要有⼀一把key,通常就是⽤用密碼這種只有⾃自⼰己知道的字串,像是在這 個例⼦子裡就是不能亡的56;再來就是要加密的內容,在這裡當然就是⼀一個檔案,像是內容為Hello OSDC!的 test.txt;把這兩者傳⼊入⼀一個encryption algorithm
function中,像是AES-256後,我們就可以得到⼀一串作為 結果的cipher text,⽽而只有知道key是5566的⼈人才能把這串⻤⿁鬼畫符轉回Hello OSDC!這句話
Traditional Encryption 我們就先從傳統的加密⽅方式看起。⾸首先我們要有⼀一把key,通常就是⽤用密碼這種只有⾃自⼰己知道的字串,像是在這 個例⼦子裡就是不能亡的56;再來就是要加密的內容,在這裡當然就是⼀一個檔案,像是內容為Hello OSDC!的 test.txt;把這兩者傳⼊入⼀一個encryption algorithm function中,像是AES-256後,我們就可以得到⼀一串作為 結果的cipher text,⽽而只有知道key是5566的⼈人才能把這串⻤⿁鬼畫符轉回Hello
OSDC!這句話
Traditional Encryption 7b21fefc9f4aee23d4f69731fde08924 我們就先從傳統的加密⽅方式看起。⾸首先我們要有⼀一把key,通常就是⽤用密碼這種只有⾃自⼰己知道的字串,像是在這 個例⼦子裡就是不能亡的56;再來就是要加密的內容,在這裡當然就是⼀一個檔案,像是內容為Hello OSDC!的 test.txt;把這兩者傳⼊入⼀一個encryption algorithm function中,像是AES-256後,我們就可以得到⼀一串作為 結果的cipher
text,⽽而只有知道key是5566的⼈人才能把這串⻤⿁鬼畫符轉回Hello OSDC!這句話
Traditional Encryption 但是如果拿這種⽅方法來作服務加密就會遇到⼀一個很⼤大的問題,假設說有兩個使⽤用者都擁有⼀一個相同的檔案,除 ⾮非兩個⼈人都⽤用1234當密碼,不然的話cipher text就會因為key的不⼀一樣⽽而產⽣生兩份不同的結果,如果這個檔案 很⼤大的話,⽐比⽅方說29.7GB,那就會多浪費了29.7GB的空間。
Traditional Encryption 但是如果拿這種⽅方法來作服務加密就會遇到⼀一個很⼤大的問題,假設說有兩個使⽤用者都擁有⼀一個相同的檔案,除 ⾮非兩個⼈人都⽤用1234當密碼,不然的話cipher text就會因為key的不⼀一樣⽽而產⽣生兩份不同的結果,如果這個檔案 很⼤大的話,⽐比⽅方說29.7GB,那就會多浪費了29.7GB的空間。
Traditional Encryption 更慘的是,如果這個檔案⾮非常地熱⾨門,那這樣浪費的空間就會很多很多……
Convergent Encryption 所以,這時候就是convergent encryption出場的時機了。既然我們知道說只要key不⼀一樣,產⽣生的cipher text 就會不⼀一樣,那這樣只要找個共同的東⻄西作為key就好了嘛,既然我們是為了處理file duplication,那最直覺 的⽅方法,就是直接拿檔案的hash來當key,這樣相同的檔案產⽣生出來的cipher text就都會⼀一樣了,只要儲存到 server時再⽤用cipher
text的hash作為檔名以便同步就功德圓滿了
Convergent Encryption 所以,這時候就是convergent encryption出場的時機了。既然我們知道說只要key不⼀一樣,產⽣生的cipher text 就會不⼀一樣,那這樣只要找個共同的東⻄西作為key就好了嘛,既然我們是為了處理file duplication,那最直覺 的⽅方法,就是直接拿檔案的hash來當key,這樣相同的檔案產⽣生出來的cipher text就都會⼀一樣了,只要儲存到 server時再⽤用cipher
text的hash作為檔名以便同步就功德圓滿了
Convergent Encryption 嗎?假設說有⼈人剛好不知怎麼取得了這個file的hash,那他也就可以decrypt這個檔案,如果是像這張圖⼀一樣⼀一 般的檔案還沒關係,如果是有著機密內容的⽂文件,像是政府預算的使⽤用什麼的,那就有點危險了。
Convergent Encryption 所以當我們得到hash之後,我們還要再⽤用傳統的⽅方式把這個hash加密起來,這樣儲存後就算流出了還是⽐比較安 全,除⾮非你的密碼也跟著被幹⾛走了。
Convergent Encryption 所以當我們得到hash之後,我們還要再⽤用傳統的⽅方式把這個hash加密起來,這樣儲存後就算流出了還是⽐比較安 全,除⾮非你的密碼也跟著被幹⾛走了。
https://github.com/brucehsu/pickbox Thank you for listening! 以上就是convergent encryption⼀一個簡單的介紹,感謝⼤大家沒有拔我的插頭,雖然我不知道有沒有⼈人irc上開 炮。如果想看source code的話可以在github上找得到,不過因為當時是在趕project的死線寫得有點醜就是 了,再次謝謝⼤大家沒有在我初登板的時候就把我戰爆XD。