アカウント名:
パスワード:
リリース文書PDFを読んで、 科学に明るくない私のような者でも分かるよう 一生懸命にかみ砕いて書いてくれている心遣いを感じましたが、 「不確定性を用いて第三者には正しい情報を読み取らせないようにしつつも 特定の相手にだけ確定的な正しい情報のやりとりができるってのがなんだかすごいんだ」 ってことまでしか分かりませんでした。 せっかくかみ砕いてくれたのに、飲み込めなくてゴメンなさい。
世間一般にアピールしようとするからわかりにくいのかも?たとえばC(C++?)プログラマ向け解説にするとこんなかんじになるのだろうか?文中の「送信者」はあくまでも光信号の送信者であって、データの送信者は文中の「受信者」であることに注意。「送信者」が送ってきたランダムデータを利用して、「受信者」が「送信者」にデータを送ります。
送信・受信共通ヘッダ:enum E_ISOU { E_NEGATIVE=-1, E_POSITIVE=1};struct SData{ E_ISOU isou; // 位相 float prob; // 確率};
NETWORK g_stream; // 光通信の通信路 受光できるかは運任せNETWORK g_replyStream; // データ番号を送信者へと送る、何かの通信路 どのデータ番号を送るかは受信者が決めれる
// 送信者コード
// 微弱な光信号を送信する 送信する位相はランダム 送信した位相はpSendに保存void Sender(E_ISOU *pSend, unsigned int size){ for(unsigned int i=0;isize;i++){ pSend[i]=(rand()%2)==1 ? E_POSITIVE : E_NEGATIVE; SData data; data.isou=pSend[i]; data.prob=(rand()%100000)/100000.0f; Push(data, g_stream); }}
// 返信されたデータ番号を元に、受信者からのデータを解読するvoid Decoder(E_ISOU *pSend, bool *result, unsigned int size){ unsigned int pair, delay; for(unsigned int i=0;isize;i++){ PopReply(g_replyStream, &pair, &delay); result[i]=(pSend[pair]+pSend[pair+delay]) != 0 ? true : false; }}
// 受信者コード
// 受信した光信号を重ねあわせ、光子を検出できた場合はその番号と位相を保存するvoid Receiver(unsigned int *pPair, bool *pIsou, unsigned int size, unsigned int delay){ SData data; int result; int count=0; for(unsigned int i=0;isize;i++){ result=AddData(g_stream, i, i+delay); // 受けた光を重ねあわせる 光検出できたらSUCCESSビットが立ち、同位相だったかどうかがSAME_ISOUビットに立つ if(result&SUCCESS){ pPair[count]=i; pIsou[count]=(result&SAME_ISOU) ? true : false; count++; } }}
// 送信者に送信したいデータと一致する、保存したデータ番号と位相データの組を探し送信者に知らせるvoid Replyer(bool *pData, unsigned int dataSize, unsigned int *pPair, bool *pIsou, unsigned int pairSize, unsigned int delay){ for(unsigned int i=0;isize;i++){ int pair=FindPair(pData[i], pPair, pIsou, pairSize); // pData[i]と同じboolean値となったpPair値を探す PushReply(g_replyStream, pair, delay); }}
長くなってしまったので分割。秘匿化のポイントは、ReceiverにあるAddData関数。AddDataがSUCCESSするかどうかはある意味運。Replyerが送信するデータ番号において同位相だったか逆位相だったかは、盗聴者は一定確率でしか知り得ない。一方、ReplyerはSUCCESSしたものだけを用いて、確実な手段で送信者にデータ番号を送るためこちらは成功率100%。このように、波束の収縮を利用して送信者と受信者が共有でき、盗聴者には一部しか共有できない鍵を送信者が受信者に送ることで秘匿化を実現しています。これの強みは、盗聴するには送信者か受信者を直接Crackするしかないこと。通信経路からの完全な盗聴は、物理法則が防いでくれます。
同じくリリースを読んでみた。あまり一般人に分かりやすいようには書けてないと思う。つか、最初読んだときはどこに量子効果をつかってるのかさっぱり分からなかった。
しかし素朴な疑問だが、中間者攻撃は防げるのか?
同じ位相差のパルス・ペアが複数あって、それが量子効果で重なってるから、どのペアが検出されるか分からない。って事で良いかな?
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
にわかな奴ほど語りたがる -- あるハッカー
学術成果の世間アピールって大変そう (スコア:2)
リリース文書PDFを読んで、
科学に明るくない私のような者でも分かるよう
一生懸命にかみ砕いて書いてくれている心遣いを感じましたが、
「不確定性を用いて第三者には正しい情報を読み取らせないようにしつつも
特定の相手にだけ確定的な正しい情報のやりとりができるってのがなんだかすごいんだ」
ってことまでしか分かりませんでした。
せっかくかみ砕いてくれたのに、飲み込めなくてゴメンなさい。
世間じゃないところ向けにアピールすると? (スコア:2, 興味深い)
世間一般にアピールしようとするからわかりにくいのかも?
たとえばC(C++?)プログラマ向け解説にするとこんなかんじになるのだろうか?
文中の「送信者」はあくまでも光信号の送信者であって、データの送信者は文中の「受信者」であることに注意。
「送信者」が送ってきたランダムデータを利用して、「受信者」が「送信者」にデータを送ります。
送信・受信共通ヘッダ:
enum E_ISOU { E_NEGATIVE=-1, E_POSITIVE=1};
struct SData{
E_ISOU isou; // 位相
float prob; // 確率
};
NETWORK g_stream; // 光通信の通信路 受光できるかは運任せ
NETWORK g_replyStream; // データ番号を送信者へと送る、何かの通信路 どのデータ番号を送るかは受信者が決めれる
// 送信者コード
// 微弱な光信号を送信する 送信する位相はランダム 送信した位相はpSendに保存
void Sender(E_ISOU *pSend, unsigned int size){
for(unsigned int i=0;isize;i++){
pSend[i]=(rand()%2)==1 ? E_POSITIVE : E_NEGATIVE;
SData data; data.isou=pSend[i]; data.prob=(rand()%100000)/100000.0f;
Push(data, g_stream);
}
}
// 返信されたデータ番号を元に、受信者からのデータを解読する
void Decoder(E_ISOU *pSend, bool *result, unsigned int size){
unsigned int pair, delay;
for(unsigned int i=0;isize;i++){
PopReply(g_replyStream, &pair, &delay);
result[i]=(pSend[pair]+pSend[pair+delay]) != 0 ? true : false;
}
}
// 受信者コード
// 受信した光信号を重ねあわせ、光子を検出できた場合はその番号と位相を保存する
void Receiver(unsigned int *pPair, bool *pIsou, unsigned int size, unsigned int delay){
SData data; int result; int count=0;
for(unsigned int i=0;isize;i++){
result=AddData(g_stream, i, i+delay); // 受けた光を重ねあわせる 光検出できたらSUCCESSビットが立ち、同位相だったかどうかがSAME_ISOUビットに立つ
if(result&SUCCESS){
pPair[count]=i; pIsou[count]=(result&SAME_ISOU) ? true : false;
count++;
}
}
}
// 送信者に送信したいデータと一致する、保存したデータ番号と位相データの組を探し送信者に知らせる
void Replyer(bool *pData, unsigned int dataSize, unsigned int *pPair, bool *pIsou, unsigned int pairSize, unsigned int delay){
for(unsigned int i=0;isize;i++){
int pair=FindPair(pData[i], pPair, pIsou, pairSize); // pData[i]と同じboolean値となったpPair値を探す
PushReply(g_replyStream, pair, delay);
}
}
Re:世間じゃないところ向けにアピールすると? (スコア:2, 興味深い)
長くなってしまったので分割。
秘匿化のポイントは、ReceiverにあるAddData関数。
AddDataがSUCCESSするかどうかはある意味運。Replyerが送信するデータ番号において同位相だったか逆位相だったかは、盗聴者は一定確率でしか知り得ない。
一方、ReplyerはSUCCESSしたものだけを用いて、確実な手段で送信者にデータ番号を送るためこちらは成功率100%。
このように、波束の収縮を利用して送信者と受信者が共有でき、盗聴者には一部しか共有できない鍵を送信者が受信者に送ることで秘匿化を実現しています。
これの強みは、盗聴するには送信者か受信者を直接Crackするしかないこと。通信経路からの完全な盗聴は、物理法則が防いでくれます。
Re: (スコア:0)
同じくリリースを読んでみた。
あまり一般人に分かりやすいようには書けてないと思う。
つか、最初読んだときはどこに量子効果をつかってるのか
さっぱり分からなかった。
しかし素朴な疑問だが、中間者攻撃は防げるのか?
Re:学術成果の世間アピールって大変そう (スコア:1)
同じ位相差のパルス・ペアが複数あって、それが量子効果で重なってるから、どのペアが検出されるか分からない。
って事で良いかな?
the.ACount