アカウント名:
パスワード:
一定のアルゴリズムで暗号化したデータに対して、暗号のまま四則演算やビット演算が行える技術ですね。数学的には平文と等価だけれども入力も出力も暗号のままで、処理している中間データや返却値を覗いても解読できず、サービス運営者や作業者は知る必要がない情報を知らずに済むというやつ。
ただ、どの方式も計算量が膨大で実用にならないまま何十年も経過していたような。
ゼロ知識証明と関連があるのかなちょっと似てそうな素人の印象
なるほどわからん。どうやってデバッグするんだろう...
# 組み込みでopenssl、期待通り動かないときのデバッグがしんどいんだよね...
処理プログラムの形式的証明で……みたいな理想論に理想論を重ねた世界に入っていきそう。
ルーチンがおかしいのか中身がおかしいのかわからんな。開発中は中身がわかってるモックデータ使うのだろうけど、本番環境などで予期していないデータがきておかしなことになってたとしても再現させられないのでは。
ネーミングが最高に良い
思うにDBテーブル構造を社外に晒した時点でもうダメwカラム一個にまとめてレコードにも状態シフト入れるくらいじゃないと全文検索どころか操作更新もままならないクソ仕様秘密にしたい深さ線引の問題なんだろうけど
>思うにDBテーブル構造を社外に晒した時点でもうダメw
そこら辺は、分析サービス用のレコード形式に、参加者が合わせればいいだけではないでしょうか。
最近のCPUには、コードやデータを暗号化したまま処理できる機能があるものが多い平文はCPUダイ内でのみ存在し、CPUダイの外では暗号化されたものしか存在しないDRAM上でももちろん暗号化されてる
そういった命令群を使えば(実装にバグやバックドアがなければ)、比較的容易にそういったことが可能では?
CPUで暗号化解除したら「暗号化したまま処理」してないからw大体、研究とサービス設計の区別もついてないし…w
f()が暗号化する関数とすれば、f(x+y)=f(x)+f(y)とかf(xy)=f(x)f(y)ってことでいいんだよね?もともとの代数構造を保存してしまう暗号化って、「ぐちゃぐちゃ度」が低くなって、そこが弱点になりがちなんじゃないのか?という疑問がわくけど、どうなんだろ?
ノー。f(x+y)=g(f(x),f(y))が正しい。安全性を落とさずに、足し算や掛け算以外のいろんなのに対してfやgを上手く作ってる。
言い方悪かった。f(x+1y)=f(x)+2f(y), +1 がもとの代数系の和で+2が暗号化した代数系の和。この和の計算は実際には複雑なものになっても、交換性とか、和の持っている性質は満たしているということでいいのかな?暗号強度への影響はどうなんだろ?
RSAがf(xy)=f(x)f(y)満たしますねさて、弱点でしょうか
寡聞にてまったく存じませんでしたが、なんか、公開鍵暗号方式のときと同じ様に、意味はわかるが、実現可能?、そんなの不可能では?って感じの「夢の技術」ですね。
理屈の上では、暗号アルゴリズムと暗号鍵(あと平文)から、暗号化データ、「だけじゃなく」、暗号型加算プロシージャ、暗号型減算プロシージャ、比較、等々の暗号型プロシージャを生成すれば、できるって発想なんだろうけど。 比較プロシージャ( ==, 0x01, 0x02 ) #=> False そうなるよな 暗号型比較プロシージャ( ==, 0x01, 0x02 ) #=
追記 掛け算で例えたほうが、おもしろいかも。
算術プロシージャ( ✕, 0x01, 0x02) #=> 0x02 1✕2は2暗号型算術プロシージャ( ✕, 0x01, 0x02) #=> 0x20 1✕2は20倍やぞ!
AIと相性が良い部分があるのはわかるんだけど、時間データとかの時系列をどう担保するんだろう
そんなこともないみたいですよ。だいたいスクリプト言語での処理と同じくらいのスピードらしい。https://www.jstage.jst.go.jp/article/essfr/12/1/12_12/_article/-char/ja [jst.go.jp]
うーん。十分に遅い。
クラウドサーバでデータの平均値を求めたいとする。データをクラウドにアップロードして、平均値を求めるプログラムを実行して、結果をダウンロードする。
ただこれだと、クラウドからデータが流出する危険があるので、そういうことが起こらないと信用できるクラウドサービスしか使えない。
そこで、秘密の値Xを用意して、データを全部X倍するという、すごいあんごうか、をしてからクラウドにアップロードする。平均値を求めると、X倍された平均値が求まる。それをダウンロードしてからXで割ることで復号すると、欲しかった平均値が求まる。
秘密の数値Xはクラウドサービス提供者に渡す必要が無い。自分以外の誰も見れないように厳重に管理する。自分の管理外に出るデータは全部、秘密の数値Xで暗号化されているので、それらが流出しても、元データは復元できない。この方法なら、クラウド業者がうっかりやらかしても、産業スパイが紛れ込んでてもデータ流出の被害は無い。
例えば、通販サイトを運営するのにAmazonのクラウドを使って大丈夫? こっそりデータを抜かれたりしない? という心配はありえる。今現在は、Amazonみたいな最大手がそんなしょおもない犯罪に手を出さないだろうとか、もしそうなっても裁判で十分な損害賠償金を引っ張り出せるはずとかで、まあ、多分、そういう心配は杞憂なわけで、クラウドサービスの信頼というのは社会通念とか契約とかをベースに成り立ってる。それを完全に技術の話にしてしまって、誰が提供しているんだかさっぱり分からないクッソ安い怪しいクラウドサービスでも安心して使えるようにしよう、というのが、極端な話、このネタの目標。
もちろんこの例みたいに、X倍してXで割る、なんて安易な方法だとそこまで安全にはならないし、平均値ぐらいパソコンで求めろよという話になる。暗号方式をちゃんとした十分に頑丈な暗号方式にした上で、平均値よりももっと複雑な計算もできるようにしよう、というのが、この手の秘密計算技術の話。どれぐらい頑丈な暗号で、どれぐらい複雑な計算をさせられるか、という限界を広げる研究がずっとされてる。
「ものすごく簡単に」っていうのは推敲の程度のことかな?
そのサービスで流出させたけど、暗号化されてたので無問題!->複合処理も同じクラウドに乗せてたので流出しました、まで見えた。
数年前に発表を聞いた限りだと実用化まで程遠いという印象だったな。しかし秘密計算だけで発表者が集まるのかなと他人事ながら心配になった。
作業者に平値AとBのXORを計算させたいが、AとBは秘密にしたい場合。
暗号鍵Kを決め、XORをとり暗号値aとbを計算する。暗号値aとbを作業者に渡し、XORを計算させる。その答えはAとBのXORと同じである。 a ⊕ b = ( A ⊕ K ) ⊕ ( B ⊕ K ) = A ⊕ B
みたいな感じ?(この場合、計算結果は知られてしまうが)
秘密結社 計算研究会
にすればよかったのに。
それは既に存在している。秘密結社だから知られていないだけで
秘密戦隊は少なくとも1975年から知られていたようですね。秘密なのに。
じゃあ次はアクマイ算3で
服装は多分これ [wikipedia.org]
多次元宇宙みたいだな無限・無数に存在しそうだつまり、重ね合わせの状態
陰謀は必ず露見するとか言うけど露見していない陰謀は存在を認識されないだけなのでは
私立恵比寿中学っていうアイドルグループのファンクラブが秘密結社ブラックタイガーっていう・・・
#もう全員成人してる
つまり計算研究会とはブランケットの事だったんですね(違
かっこ使うし。[それブラケット]
結社「秘密結社 計算研究会」
伝染るんです。に、全部秘密のお店の宣伝みたいなネタがあったのを思い出した。
#うろ覚えなので全然違うかも
ピタゴラス教団「2の平方根の計算結果は秘密だからな」
暗号化したデータはクラウドで、手元のマシンで複合化して計算すりゃええやん
暗号資産とかで使うんやで。それぞれの残高や取引金額が、本人にしかわからない形で(暗号化したままで)取引ができる。
取引相手が存在して、取引を仲介する仕組みがあって、かつ、仲介者にも金額を秘密にしたいときに秘密計算を使う。
手元のプアな計算リソースではなく、クラウドのパワフルな計算リソースで計算させたいし、秘密も保持したい、って話なんじゃね?
そりゃそう。今すぐ広く役に立つような話なら、とっくに誰かが実用サービス化してる。
とりあえず数学者の玩具としては研究しがいのあるネタとして愛されてきたけど、色々とネタも貯まってきてるし、本当に使えるかどうか真面目に考えてみようか、という段階。
もしかすると、この方法がぴったりくるニッチな用途がどこかに埋もれてるかも知れないので、間口を広げようとしてる。
概念は分かるけど、中間者が隠匿したデータを計算する様な処理を入れられるなんてのは、意図しない中間者に改竄されても追いようがない事が問題、ブロックチェーンと組み合わせればなんとかなるのかな
複合化して計算、って本件の秘密計算みたいな
だから、それを高度にやろうとしてる。
誰が暗号化するかの問題で、サーバ提供者側に任せると「暗号化したっす(嘘」とかできるので不安が残る。仮にちゃんと暗号化されていても、提供者が暗号化に使われたパスワードをこっそりメモってたら、暗号化されてないのと変わらない。提供者が「暗号化のパスワード? いえいえ、全く知らないっすよ。覗き見るハズがないじゃないですかー」と言っても信用する根拠が無い。インターネット経由で操作している以上、サーバを借りる側は操作内容をサーバ提供者から隠しきれないからパスワードは筒抜けだし。
それを防ぐには、手元でサーバなりのイメージを暗号化してそれをアップロードして、さらに、暗号化されたまま実行する必要があって、結局、秘密計算の話になる。
CPU上では暗号化できないCPU上でも暗号のまま暗号データに暗号データをぶつけて特殊な方法で計算する理論が秘密計算
話が分からないなら分かるようになってから書けよ
安全だけど、それだと何も出来ない。データを安全に保管しておけるだけ。記録されたファイルに何かの処理を加えようとすると、ファイルを展開(危険)→処理→もう一度暗号化(これ以降は安全)、となる。
秘密計算の仕組みを使うと、暗号を解除しないまま、そこに保存されたデータを集計するとか分析するとかの処理を加えられる。ファイルが暗号化されたまま計算(安全)→暗号化された分析結果(安全)。
なお、本当に役に立つ計算を使いでのある形でさせられるかどうか、はまだ研究途上。
そういう発想の人が「与えられたハッシュ値の逆を求めるプログラムを十万円でお願いします動くことをチャットで証明して頂きます」とかクラウドワークスに投げて笑われるわけだ
ハッシュ値の逆?
sha256の逆変換ツール(固定報酬制100,000円 〜 300,000円) https://crowdworks.jp/public/jobs/6135065 [crowdworks.jp] sha256の逆変換ツール(交通費・食事付き)(固定報酬制100,000円 〜 300,000円) https://crowdworks.jp/public/jobs/6137904 [crowdworks.jp] sha256の逆変換ツール(見積依頼)(コンペ11,000円) https://crowdworks.jp/public/jobs/6139839 [crowdworks.jp]
仕事内容は「任意のHash(64桁)の入力値に対し、sha256の逆変換を10秒以内で求めるプログラムを作成して下さい。」
発注者は【確率統計のエ
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson
秘密計算とは (スコア:5, 参考になる)
一定のアルゴリズムで暗号化したデータに対して、暗号のまま四則演算やビット演算が行える技術ですね。数学的には平文と等価だけれども入力も出力も暗号のままで、処理している中間データや返却値を覗いても解読できず、サービス運営者や作業者は知る必要がない情報を知らずに済むというやつ。
ただ、どの方式も計算量が膨大で実用にならないまま何十年も経過していたような。
Re: (スコア:0)
ゼロ知識証明と関連があるのかな
ちょっと似てそうな素人の印象
Re: (スコア:0)
なるほどわからん。どうやってデバッグするんだろう...
# 組み込みでopenssl、期待通り動かないときのデバッグがしんどいんだよね...
Re:秘密計算とは (スコア:2)
処理プログラムの形式的証明で……みたいな理想論に理想論を重ねた世界に入っていきそう。
Re: (スコア:0)
ルーチンがおかしいのか中身がおかしいのかわからんな。
開発中は中身がわかってるモックデータ使うのだろうけど、本番環境などで予期していないデータがきておかしなことになってたとしても再現させられないのでは。
Re: (スコア:0)
ネーミングが最高に良い
Re: (スコア:0)
思うにDBテーブル構造を社外に晒した時点でもうダメw
カラム一個にまとめてレコードにも状態シフト入れるくらいじゃないと
全文検索どころか操作更新もままならないクソ仕様
秘密にしたい深さ線引の問題なんだろうけど
Re: (スコア:0)
>思うにDBテーブル構造を社外に晒した時点でもうダメw
そこら辺は、分析サービス用のレコード形式に、参加者が合わせればいいだけではないでしょうか。
Re: (スコア:0)
最近のCPUには、コードやデータを暗号化したまま処理できる機能があるものが多い
平文はCPUダイ内でのみ存在し、CPUダイの外では暗号化されたものしか存在しない
DRAM上でももちろん暗号化されてる
そういった命令群を使えば(実装にバグやバックドアがなければ)、
比較的容易にそういったことが可能では?
Re: (スコア:0)
CPUで暗号化解除したら「暗号化したまま処理」してないからw
大体、研究とサービス設計の区別もついてないし…w
Re: (スコア:0)
f()が暗号化する関数とすれば、f(x+y)=f(x)+f(y)とかf(xy)=f(x)f(y)ってことでいいんだよね?もともとの代数構造を保存してしまう暗号化って、「ぐちゃぐちゃ度」が低くなって、そこが弱点になりがちなんじゃないのか?という疑問がわくけど、どうなんだろ?
Re:秘密計算とは (スコア:1)
ノー。f(x+y)=g(f(x),f(y))が正しい。安全性を落とさずに、足し算や掛け算以外のいろんなのに対してfやgを上手く作ってる。
Re: (スコア:0)
言い方悪かった。f(x+1y)=f(x)+2f(y), +1 がもとの代数系の和で+2が暗号化した代数系の和。この和の計算は実際には複雑なものになっても、交換性とか、和の持っている性質は満たしているということでいいのかな?暗号強度への影響はどうなんだろ?
Re: (スコア:0)
RSAがf(xy)=f(x)f(y)満たしますね
さて、弱点でしょうか
Re: (スコア:0)
寡聞にてまったく存じませんでしたが、
なんか、公開鍵暗号方式のときと同じ様に、意味はわかるが、実現可能?、そんなの不可能では?って感じの「夢の技術」ですね。
理屈の上では、暗号アルゴリズムと暗号鍵(あと平文)から、暗号化データ、「だけじゃなく」、暗号型加算プロシージャ、暗号型減算プロシージャ、比較、等々の暗号型プロシージャを生成すれば、できるって発想なんだろうけど。
比較プロシージャ( ==, 0x01, 0x02 ) #=> False そうなるよな
暗号型比較プロシージャ( ==, 0x01, 0x02 ) #=
Re: (スコア:0)
追記 掛け算で例えたほうが、おもしろいかも。
算術プロシージャ( ✕, 0x01, 0x02) #=> 0x02 1✕2は2
暗号型算術プロシージャ( ✕, 0x01, 0x02) #=> 0x20 1✕2は20倍やぞ!
Re: (スコア:0)
AIと相性が良い部分があるのはわかるんだけど、時間データとかの時系列をどう担保するんだろう
Re: (スコア:0)
そんなこともないみたいですよ。だいたいスクリプト言語での処理と同じくらいのスピードらしい。
https://www.jstage.jst.go.jp/article/essfr/12/1/12_12/_article/-char/ja [jst.go.jp]
Re: (スコア:0)
うーん。十分に遅い。
ものすごく簡単に言うと (スコア:2, 参考になる)
クラウドサーバでデータの平均値を求めたいとする。
データをクラウドにアップロードして、平均値を求めるプログラムを実行して、結果をダウンロードする。
ただこれだと、クラウドからデータが流出する危険があるので、そういうことが起こらないと信用できるクラウドサービスしか使えない。
そこで、秘密の値Xを用意して、データを全部X倍するという、すごいあんごうか、をしてからクラウドにアップロードする。
平均値を求めると、X倍された平均値が求まる。
それをダウンロードしてからXで割ることで復号すると、欲しかった平均値が求まる。
秘密の数値Xはクラウドサービス提供者に渡す必要が無い。自分以外の誰も見れないように厳重に管理する。
自分の管理外に出るデータは全部、秘密の数値Xで暗号化されているので、それらが流出しても、元データは復元できない。
この方法なら、クラウド業者がうっかりやらかしても、産業スパイが紛れ込んでてもデータ流出の被害は無い。
例えば、通販サイトを運営するのにAmazonのクラウドを使って大丈夫? こっそりデータを抜かれたりしない? という心配はありえる。
今現在は、Amazonみたいな最大手がそんなしょおもない犯罪に手を出さないだろうとか、
もしそうなっても裁判で十分な損害賠償金を引っ張り出せるはずとかで、まあ、多分、そういう心配は杞憂なわけで、
クラウドサービスの信頼というのは社会通念とか契約とかをベースに成り立ってる。
それを完全に技術の話にしてしまって、誰が提供しているんだかさっぱり分からないクッソ安い怪しいクラウドサービスでも安心して使えるようにしよう、というのが、極端な話、このネタの目標。
もちろんこの例みたいに、X倍してXで割る、なんて安易な方法だとそこまで安全にはならないし、平均値ぐらいパソコンで求めろよという話になる。
暗号方式をちゃんとした十分に頑丈な暗号方式にした上で、平均値よりももっと複雑な計算もできるようにしよう、というのが、この手の秘密計算技術の話。
どれぐらい頑丈な暗号で、どれぐらい複雑な計算をさせられるか、という限界を広げる研究がずっとされてる。
Re:ものすごく簡単に言うと (スコア:1)
「ものすごく簡単に」っていうのは推敲の程度のことかな?
Re:ものすごく簡単に言うと (スコア:1)
そのサービスで流出させたけど、暗号化されてたので無問題!
->複合処理も同じクラウドに乗せてたので流出しました、まで見えた。
Re: (スコア:0)
数年前に発表を聞いた限りだと実用化まで程遠いという印象だったな。
しかし秘密計算だけで発表者が集まるのかなと他人事ながら心配になった。
Re: (スコア:0)
作業者に平値AとBのXORを計算させたいが、AとBは秘密にしたい場合。
暗号鍵Kを決め、XORをとり暗号値aとbを計算する。
暗号値aとbを作業者に渡し、XORを計算させる。その答えはAとBのXORと同じである。
a ⊕ b = ( A ⊕ K ) ⊕ ( B ⊕ K )
= A ⊕ B
みたいな感じ?(この場合、計算結果は知られてしまうが)
名前 (スコア:0)
秘密結社 計算研究会
にすればよかったのに。
Re:名前 (スコア:4, おもしろおかしい)
それは既に存在している。
秘密結社だから知られていないだけで
Re:名前 (スコア:1)
秘密戦隊は少なくとも1975年から知られていたようですね。
秘密なのに。
Re: (スコア:0)
じゃあ次はアクマイ算3で
Re: (スコア:0)
服装は多分これ [wikipedia.org]
Re: (スコア:0)
多次元宇宙みたいだな
無限・無数に存在しそうだ
つまり、重ね合わせの状態
逆生存バイアス (スコア:0)
陰謀は必ず露見するとか言うけど露見していない陰謀は存在を認識されないだけなのでは
Re: (スコア:0)
私立恵比寿中学っていうアイドルグループのファンクラブが
秘密結社ブラックタイガーっていう・・・
#もう全員成人してる
Re: (スコア:0)
つまり計算研究会とはブランケットの事だったんですね(違
Re: (スコア:0)
かっこ使うし。
[それブラケット]
Re: (スコア:0)
結社「秘密結社 計算研究会」
Re: (スコア:0)
伝染るんです。に、全部秘密のお店の宣伝みたいなネタがあったのを思い出した。
#うろ覚えなので全然違うかも
Re: (スコア:0)
ピタゴラス教団「2の平方根の計算結果は秘密だからな」
そんなにクラウドで管理したいなら (スコア:0)
暗号化したデータはクラウドで、手元のマシンで複合化して計算すりゃええやん
Re:そんなにクラウドで管理したいなら (スコア:2)
暗号資産とかで使うんやで。
それぞれの残高や取引金額が、本人にしかわからない形で(暗号化したままで)
取引ができる。
取引相手が存在して、取引を仲介する仕組みがあって、
かつ、仲介者にも金額を秘密にしたいときに秘密計算を使う。
Re:そんなにクラウドで管理したいなら (スコア:1)
手元のプアな計算リソースではなく、クラウドのパワフルな計算リソースで計算させたいし、秘密も保持したい、って話なんじゃね?
Re: (スコア:0)
そりゃそう。今すぐ広く役に立つような話なら、とっくに誰かが実用サービス化してる。
とりあえず数学者の玩具としては研究しがいのあるネタとして愛されてきたけど、色々とネタも貯まってきてるし、本当に使えるかどうか真面目に考えてみようか、という段階。
もしかすると、この方法がぴったりくるニッチな用途がどこかに埋もれてるかも知れないので、間口を広げようとしてる。
Re: (スコア:0)
概念は分かるけど、中間者が隠匿したデータを計算する様な処理を入れられるなんてのは、意図しない中間者に改竄されても追いようがない事が問題、ブロックチェーンと組み合わせればなんとかなるのかな
Re: (スコア:0)
複合化して計算、って本件の秘密計算みたいな
Re:VPSごと暗号化しろよ (スコア:1)
だから、それを高度にやろうとしてる。
誰が暗号化するかの問題で、サーバ提供者側に任せると「暗号化したっす(嘘」とかできるので不安が残る。
仮にちゃんと暗号化されていても、提供者が暗号化に使われたパスワードをこっそりメモってたら、暗号化されてないのと変わらない。
提供者が「暗号化のパスワード? いえいえ、全く知らないっすよ。覗き見るハズがないじゃないですかー」と言っても信用する根拠が無い。
インターネット経由で操作している以上、サーバを借りる側は操作内容をサーバ提供者から隠しきれないからパスワードは筒抜けだし。
それを防ぐには、手元でサーバなりのイメージを暗号化してそれをアップロードして、さらに、暗号化されたまま実行する必要があって、結局、秘密計算の話になる。
Re:VPSごと暗号化しろよ (スコア:1)
CPU上では暗号化できない
CPU上でも暗号のまま暗号データに暗号データをぶつけて特殊な方法で計算する理論が秘密計算
Re: (スコア:0)
話が分からないなら分かるようになってから書けよ
Re: (スコア:0)
安全だけど、それだと何も出来ない。データを安全に保管しておけるだけ。
記録されたファイルに何かの処理を加えようとすると、ファイルを展開(危険)→処理→もう一度暗号化(これ以降は安全)、となる。
秘密計算の仕組みを使うと、暗号を解除しないまま、そこに保存されたデータを集計するとか分析するとかの処理を加えられる。
ファイルが暗号化されたまま計算(安全)→暗号化された分析結果(安全)。
なお、本当に役に立つ計算を使いでのある形でさせられるかどうか、はまだ研究途上。
Re: (スコア:0)
そういう発想の人が「与えられたハッシュ値の逆を求めるプログラムを十万円でお願いします
動くことをチャットで証明して頂きます」とかクラウドワークスに投げて笑われるわけだ
Re: (スコア:0)
ハッシュ値の逆?
Re: (スコア:0)
sha256の逆変換ツール(固定報酬制100,000円 〜 300,000円)
https://crowdworks.jp/public/jobs/6135065 [crowdworks.jp]
sha256の逆変換ツール(交通費・食事付き)(固定報酬制100,000円 〜 300,000円)
https://crowdworks.jp/public/jobs/6137904 [crowdworks.jp]
sha256の逆変換ツール(見積依頼)(コンペ11,000円)
https://crowdworks.jp/public/jobs/6139839 [crowdworks.jp]
仕事内容は「任意のHash(64桁)の入力値に対し、sha256の逆変換を10秒以内で求めるプログラムを作成して下さい。」
発注者は【確率統計のエ