X



トップページ数学
408コメント123KB
暗号数学について語ろう。ROUND 5
■ このスレッドは過去ログ倉庫に格納されています
0101132人目の素数さん
垢版 |
2012/01/13(金) 11:26:11.97
>>100
量子通信
0102大谷
垢版 |
2012/01/13(金) 21:08:20.96
残念ながらレポートに上乗せできないな
0103132人目の素数さん
垢版 |
2012/01/13(金) 22:56:05.38
WWW
0104132人目の素数さん
垢版 |
2012/01/29(日) 19:26:36.25
兼六園で僕と握手!
0108132人目の素数さん
垢版 |
2012/02/08(水) 22:46:43.20
NTTと三菱電機の暗号チームは、新しいハッシュ関数を作らないかなあ・・・
0109132人目の素数さん
垢版 |
2012/02/09(木) 15:37:18.90
すいません、ソフト開発関連のスレで聞いても回答がないので教えてください。
64〜128ビット幅程度の0または正の数値と暗号キーにあたる充分長いパラメータを
与えると元の数を同じ範囲内の数値に変換する関数で、それぞれの変換後の
数値は重複せず、複数の変換結果があって関数が知られてしまってもパラメータの
特定が困難で、パラメータを持つものには逆方向の計算が容易でマイコンレベルの
計算能力でも済む、なんてものはないでしょうか。
0111132人目の素数さん
垢版 |
2012/02/10(金) 02:11:54.34
それぞれはパラメータと関数で変換した値かな?
とりあえず、仕様がわかりにくくてしょうがないので箇条書きとかにしてほしい
0112132人目の素数さん
垢版 |
2012/02/10(金) 10:20:43.14
1) ・元の数を同じ範囲内の数値に変換する関数で、
2) ・それぞれの変換後の 数値は重複せず
3) ・複数の変換結果があって

N(1)=N(2) なのに 複数の結果なんてありえないだろ。
0114132人目の素数さん
垢版 |
2012/02/23(木) 12:37:48.66
乱数性のチェック方法なんですが、
TestU01というのを使いたくて色々調べてます。
しかし出力から乱数性を調べるコマンドがどうしてもわかりません。
英語は余り得意では無いので、分かる人がいたら教えて下さい。
よろしくお願いいたします。
http://www.iro.umontreal.ca/~simardr/testu01/tu01.html
0115132人目の素数さん
垢版 |
2012/03/04(日) 18:03:58.51
B-CASカードの暗号を破ったBLACASカードが
流通して話題になっています。

B-CASは楕円曲線暗号を使っているようですが、
詳しい方、解説おながいします。
0117132人目の素数さん
垢版 |
2012/03/11(日) 16:55:56.38
委員会に暗号学をかじった人はいなかったの?
あれって対タンパ性あったんじゃないの?
仕様を技術者から盗んだら簡単にcrackできちゃいました。
とかそんな話?
暗号を扱う技術者が、まさか、

秘匿によるsecurity

なんかで安全だなんて思ってるわけじゃないでしょ?
まさかねー?
0119132人目の素数さん
垢版 |
2012/03/12(月) 21:43:16.09
>>28
この暗号ようやく解けた。
20ビットでこれか。
次は50ビットに挑戦だ。

誰か50ビット出せや。
0123132人目の素数さん
垢版 |
2012/03/24(土) 13:18:47.72
暗号やってる人たちの数学の記述はどうしてあんなに方言丸出しなの?
0125132人目の素数さん
垢版 |
2012/03/24(土) 13:40:18.28
>>123
具体的に例えばどういう記述?
0132132人目の素数さん
垢版 |
2012/03/24(土) 14:24:31.44
つまり具体的には言えないんですね
0136132人目の素数さん
垢版 |
2012/03/24(土) 17:35:26.61
つまり具体的には言えないんですね
0142132人目の素数さん
垢版 |
2012/03/24(土) 21:05:48.75
数学記号の変な使い方といえば典型的なのが一つあるけど
(前に某先生が解説記事で、数学ではこれこれの記号は違う意味を持つから
正しい名前を使おう、と書いてた)
それをすぐ挙げればすむ話だから
>>129以降のレスは>>123とは別人が書いてるんだと思う

数学板っていまどきIDがないから、そういう変ななりすましが多いし
0143132人目の素数さん
垢版 |
2012/03/25(日) 01:05:52.78
いろいろ実名出すのはちょっと気の毒なので、分野だけ書くと
関数型暗号システムの群論にかかわる記述など、
数学科の3年で、集合と位相、群論、体論を叩き込まれた人にとっては噴飯モンじゃないかな。
ウソは書いてないよ、一応、念のため。
でも多分、well-definedなんてことは気にしてないんだと思う。
安全性の形式的証明を考えなければならなくなったとき、考えがまとめられなくて悩むだろうね。
指導教官がどんな記述をしてようが、正統的な、数学の概念と記述を身に付けるべき。
0144132人目の素数さん
垢版 |
2012/03/25(日) 04:44:31.98
数学系の人と記法が違ったり、
厳密でなかったりするのは
工学系の人が書いてるからじゃないだろうか?
よくある話。
0146132人目の素数さん
垢版 |
2012/03/31(土) 07:40:48.26
>>144 形式手法を使おう、というのが工学においても世界的な動向だけど、
このままだとまた例によって日本は苦労しそうだね。
0147132人目の素数さん
垢版 |
2012/04/07(土) 16:37:01.98
遠縁スレ

【サイエンス】東大教授が引責辞任 Cellにアクセプトされた論文を取り下げ「データに不適切な処理があったため」
http://uni.2ch.net/test/read.cgi/newsplus/1333775986/
0148猫vs運営 ◆MuKUnGPXAY
垢版 |
2012/04/07(土) 17:28:45.63
まあ馬鹿を全員追い出すまでは「そういう事」にして戴きます。


0152132人目の素数さん
垢版 |
2012/05/05(土) 20:53:54.66
http://toro.2ch.net/test/read.cgi/tech/1331894668/231
[ プログラム ] 【初心者歓迎】C/C++室 Ver.78【環境依存OK】

231 名前:デフォルトの名無しさん []: 2012/05/05(土) 15:44:17.44
一般数体篩法のオープンソース GGNFS
素因数分解には試し割り法, モンテカルロ法, 楕円曲線法, 二次篩法など多数のアルゴリズムが存在するが,その中でも一般数体篩法は100 桁以上の数を分解するには現在知られる最速のアルゴリズムである.
2005年には 200桁の数(rsa200)が一般数体篩法で分解された.本研究では,オープンソースの一般数体篩法ソフトウェアGGNFSについて,性能測定を行なう.
http://cryptology.cocolog-nifty.com/blog/2008/01/ggnfs_b47a.html

ここでは、素因数分解のための各種アルゴリズムについて解説する。対象は、以下のとおり。
Brute force method
ρ method(Pollard, Brent)
p-1 method
p+1 method
連分数法
複数多項式二次ふるい法
楕円曲線法
http://www.asahi-net.or.jp/~kc2h-msm/mathland/math12/index.htm

まず、素因数分解のためのプログラムを入手する必要がある。
Windows PC 上で動作する主なものとしては、
factor (Windows (DOSプロンプト))
ppmpqs (Windows (DOSプロンプト), Linux)
UBASIC (Windows (DOSプロンプト))
SNFS (Windows (DOSプロンプト)) 等がある。
http://www.asahi-net.or.jp/~kc2h-msm/mathland/matha1/howto.htm


分解するにあたっての方針(戦略)について
まず、速いマシンを長時間利用できる場合、90桁以下の数をppmpqsで分解することを薦める。これは、時間さえかければ、確実に分解できるというメリットがある。
マシンがそれ程速くない場合、途中で中断しなければならない場合、90桁以上の数を対象とする場合は、GMP-ECMを使うことを薦める。
http://www.asahi-net.or.jp/~kc2h-msm/mathland/matha1/howto.htm
0153132人目の素数さん
垢版 |
2012/05/05(土) 20:54:28.85
232 名前:デフォルトの名無しさん []: 2012/05/05(土) 15:51:46.64

GGNFSはNFS法(the Number Field Sieve method; 数体ふるい法)を用いる素因数分解プログラムです。
SNFS法(the Special Number Field Sieve method; 特殊数体ふるい法)と
GNFS法(the General Number Field Sieve method; 一般数体ふるい法)の両方に対応しています。
http://homepage2.nifty.com/m_kamada/math/ggnfs_ja.htm

GMP-ECMはECM(Elliptic Curve Method; 楕円曲線法)を用いる標準的な素因数分解プログラムです(オプションでP-1法やP+1法も選択できます)。
小さな素因数を手早く抽出することができるので、SIQS法やNFS法の前処理として、
あるいはSIQS法やNFS法を適用するには大きすぎる合成数を分解したいときに利用されています。
http://homepage2.nifty.com/m_kamada/math/ecm_ja.htm

Msieve は MPQS 法 (the self-initializing Multiple Polynomial Quadratic Sieve; 自己初期化複数多項式二次ふるい法) と
GNFS 法 (the General Number Field Sieve; 一般数体ふるい法) を用いる素因数分解プログラムです。
前処理として P-1 法、P+1 法、ECM (Elliptic Curve Method; 楕円曲線法) なども実装しており、さまざまな数に柔軟に対応します。
http://homepage2.nifty.com/m_kamada/math/msieve_ja.htm

GGNFS - A Number Field Sieve implementation
http://www.math.ttu.edu/~cmonico/software/ggnfs/index.html

一般数体ふるい法 ソース - Google 検索
http://www.google.com/search?q=%E4%B8%80%E8%88%AC%E6%95%B0%E4%BD%93%E3%81%B5%E3%82%8B%E3%81%84%E6%B3%95+%E3%82%BD%E3%83%BC%E3%82%B9
0154132人目の素数さん
垢版 |
2012/05/13(日) 00:24:08.95
楕円曲線暗号の計算がうまく行かないので知恵をお貸し下さい。

http://www.faireal.net/articles/8/23/

上記サイトの公式に当てはめて「点8の二倍算」を試しているのですが、
どうやってもどの点にもなりません。
xが一致する事はあっても、それに対応するyになりません。
レベルの低い質問で申し訳ないのですが、計算の順番など、
詳しいやり方を実際の数字を当てはめて教えて頂けないでしょうか。
0156132人目の素数さん
垢版 |
2012/05/13(日) 20:34:42.35
>>155
レス有難う御座います。
お恥ずかしながらプログラムを組む事が出来ないので手計算です。
0157132人目の素数さん
垢版 |
2012/05/13(日) 21:06:56.31
あれは作者さんが誤解を招きやすい書き方をしているんだ。
2*(y1^-1) ←として計算してて、引っかかってるんでしょ。
以下の計算式で解いてごらん。

lmd = (3 * (x1 ^ 2) + a) * ((2 * y1) ^ -1) (mod prime)

wikipediaを見て回るなど、複数の情報源に当たることも重要かもね。
http://en.wikipedia.org/wiki/Elliptic_curve
http://upload.wikimedia.org/wikipedia/en/math/4/b/b/4bbfabfcd349fd11e3075d7fb630d26e.png
0159154
垢版 |
2012/05/13(日) 21:50:42.76
>>157
レス有難う御座います。
そのやり方も一応やってみたつもりなんですが、やっぱり一致しないんです。
具体的に当てはめると

(3*(7^2)+19)*(2*(218^-1)(mod 307)

の場合は-1=238ですよね?

それで(3*(7^2)+19)*((2*218)^-1)(mod 307)

の場合は-1=119と。

そのどちらでやっても、また、「^-1乗」としても、
「^-1で掛ける」としても、xが表の中の数値になる事はあるんですが、
yがそのxに対応しない値なんです。
これは逆数が間違っているのでしょうか?
或いは、yを求める時に何らかの間違いをしているのでしょうか。
0160154
垢版 |
2012/05/13(日) 21:52:06.90
連レス失礼します。

参考までに>>157で提示して頂いた方での計算を書かせて頂くと、

(3*(7^2)+19)*((2*218)^119)(mod 307)
=166*168
=258

258^2-7-7
=238

ですが、x=238は表にないのでこれは間違っていると思われます。
そして、「^-1乗」として間違っているのならばと「^-1で掛ける」
としてみた場合も

(3*(7^2)+19)*((2*218)*119)(mod 307)
=166*1
=166

166^2-7-7
=219

となって、こちらもやはりxが一致しません。

(3*(7^2)+19)*(2*(218^-1)(mod 307)

こちらでやると、xは一致する事もあるのですが、
やはりyが一致しない結果となります。
一応色々と検索をして、そのやり方でもやっているのですが、
どうしてもyがxに対応しなかったり、
xの時点で表にないモノとなったりしてしまうのです。
0161梅どぶろく(=155, 157)
垢版 |
2012/05/13(日) 22:51:46.00
>>160の計算は見ていませんが、以下が正しい計算です。
わからない箇所を聞いてください。

楕円曲線は、
y ^ 2 = x ^ 3 + 19x + 77 (mod 307)
order = 331

以下でmod 307は省略
double_y1_inv(=119) = (2*218, 307)
lmd(=106) = (3 * (7 ** 2) + 19) * 119
x3(=170) = lmd(=106) ** 2 - x1(=7) - x2(=7)
y3(=3) = lmd(=106) * (x1(=7) - x3(=170)) - y1(=218)
x3(=170), y3(=3)
P8 = (0x7, 0xda)
P = (0xaa, 0x3)
0162132人目の素数さん
垢版 |
2012/05/13(日) 23:08:31.11
http://www1.axfc.net/uploader/File/so/78916.zip

↑の解凍後に出てくるecc directory以下に、
以下の構成となるように各fileを配置してください。
ecc/math_154.py
ecc/ecc/__init__.py

で、__init__.py の202行目からの行をcomment outし、
以下のように実行すると、
python3 math_154.py

以下の出力が出ますので、計算方法が分かるかと思います。
double_y1_inv(=119) = (2*218, 307)
lmd(=106) = (3 * (7 ** 2) + 19) * 119
x3(=170) = lmd(=106) ** 2 - x1(=7) - x2(=7)
y3(=3) = lmd(=106) * (x1(=7) - x3(=170)) - y1(=218)
x3(=170), y3(=3)
P8 = (0x7, 0xda)
P = (0xaa, 0x3)
0163梅どぶろく
垢版 |
2012/05/13(日) 23:11:27.48
>>162を訂正

>>158解凍後に出てくるecc directory以下に、
>>162のzipに含まれる2つのfileを配置してください。

以下の様に配置します。
ecc/math_154.py
ecc/ecc/__init__.py
0164梅どぶろく(=155, 157)
垢版 |
2012/05/13(日) 23:26:23.71
>>159を見てて思ったけど、

x ^ -1 って
X = x ^ -1 とした時に、
x * X ≡ 1 (mod prime) を満たす値だよ。
gcdext()で求めるんだ。
0165154
垢版 |
2012/05/14(月) 00:40:15.25
>>梅どぶろくさん

何度もお付き合い下さり、有難う御座います。
UPして頂いたzipも有難く頂戴致しました。

先述の通り、プログラムについてはまだ勉強中ですので、
理解出来ていない部分もあるかも知れませんが、
実際の数字を当てはめて説明して頂いたおかげで
凡その計算法は分かりました。
皆さんに教わった事を踏まえ、もう少し試行してみようと思います。
また詰まる事があれば、ちゃっかりまた教わりに来るかも知れませんので、
その時はまた宜しくお願い致しますw

改めまして、皆さん、お付き合い下さって有難う御座いました。
0167132人目の素数さん
垢版 |
2012/05/18(金) 02:20:53.51
もし量子コンピューター、量子暗号が実現したら数学を利用した暗号は研究する価値が無くなりますか?
0170132人目の素数さん
垢版 |
2012/05/18(金) 22:15:16.45
あなたのことが好きです。
もう恋愛はやめにして結婚して下さい。
人生を共にしましょう。

って本気で言ったらどうなったと思う?
0179132人目の素数さん
垢版 |
2012/06/04(月) 12:39:06.81
もう特許公開された?
0184132人目の素数さん
垢版 |
2012/06/17(日) 20:10:29.82
SHA-3は5候補まできてるんだね。どれになるんだろう?
0186132人目の素数さん
垢版 |
2012/06/19(火) 06:10:57.27
富士通研と情報通信研と九大の合同チームがペアリング暗号解読278桁を
解読して世界一だなんて鼻高々の発表だが、スタッフ見て転げたわ、中国
韓国の研究員が大杉、足元の基礎から暗号解読どころじゃないだろう。
 泥棒に金庫番させるようなことやってて何が世界一なんだよ。甘いんだよな
日本人は。
0188132人目の素数さん
垢版 |
2012/06/19(火) 13:51:30.84
ペアリング暗号の解読というよりは、有限体上の離散対数問題の解読だな。
(DLPを効率的に解読できれば、ペアリング暗号も解読できるから間違いではないが)

ニュース記事みたとき、ペアリング暗号独自の解読方法が見つかったのかと思ってビビった。
0196132人目の素数さん
垢版 |
2012/09/08(土) 00:50:45.66
http://anago.2ch.net/test/read.cgi/scienceplus/1343919107/
【暗号技術】DEFCON参加の専門家、「MS-CHAP v2」をクラックするツールを発表
1 :ケンシロウとユリア百式φ ★:2012/08/02(木) 23:51:47.51 ID:???
暗号技術の専門家であるMoxie Marlinspike氏が米国時間7月28日、Microsoftのアルゴリズム「MS-CHAP V2」に基づく
  一般的な暗号プロトコルを用いたワイヤレスネットワークやバーチャルプライベートネットワーク(VPN)内の
パスワードを簡単にクラックするツールをDEFCONで公開した。

このツールは、PPTP(Point-to-Point Tunneling Protocol)で保護されたネットワークを利用している企業や組織が
  使っているWPA2(Wi-Fi Protected Access 2)パスワードやVPNパスワードをクラックするものだ。このPPTPが認証に
  MS-CHAP V2を使用している。

「ChapCrack」はMS-CHAP V2ハンドシェークをキャプチャし、 「CloudCracker」に送信可能なトークンに変換する。

同サービスはDES(Data Encryption Standard)キーをクラックしたうえで、 ChapCrackに別トークンの形で結果を返す。
  これに1日とかからない。 このデータを使用すると、企業の電子メールやパスワードなどの機密情報も含め、Wi-Fiネット
  ワーク全体を流れるすべての情報を第三者が見ることができる。明らかになったパスワードを使用して企業ネットワークに
  ログインすることも可能だ。

このツールは、侵入テストやネットワーク監査の担当者を対象として設計され、WPA2で保護されたネットワークやVPNの
  セキュリティをチェックするために用いるものだが、データを盗み出してネットワークへの不正アクセスを行いたい人に
  よって使われる可能性もある。

ソース:CNET(07/30 15:00) http://japan.cnet.com/news/service/35019787/
画像:Moxie Marlinspikes氏 http://japan.cnet.com/storage/2012/07/30/b92550d04b4f66d507cb3a6e009ea51e/Moxie_270x378.png
参考リンク:MS-CHAPv2クラックのアルゴリム解説(英文) https://www.cloudcracker.com/blog/2012/07/29/cracking-ms-chap-v2/
0197132人目の素数さん
垢版 |
2012/09/08(土) 02:15:20.19
人類は他の恒星系に行き着く技術を
開発する前に滅びるだろう。
0200132人目の素数さん
垢版 |
2012/09/25(火) 14:48:16.14
すいません、どなたかお力を貸していただけないでしょうか?
楕円曲線暗号の効率的な計算方法を理解できずに詰まっております。

曲線上の点の加算をする際に、lambdaを計算しますが、以下の計算式で計算します。
lambda = (y0 - y1) / (x0 - x1)

上式を計算する際、実際には、
A = x0 - x1・・・計算1
としておいて、
A^(-1) (mod p)・・・計算2(拡張ユークリッドの互除法使う)
を計算し、
lambda = (y0 - y1) * A^(-1)
を計算していると思います。

計算2の時に拡張ユークリッドの互除法を使うため計算量が多くなり、
そのため高速な演算が難しく、困っている。
x = X / Z
とおいて計算すると、
計算2の拡張ユークリッドの互除法を使用する必要がなくなり、
計算量を削減できる。
その分乗算が多くなるが、その乗算による計算量増加分は、
拡張ユークリッドの互除法を使用する計算量よりも少ないため、
結果として高速な点の加算ができる。

と言うことだと思いますが、
x = X / Z
と置けば、逆元を計算しないですむ理屈が分かりません。
いつまでも、(X0 - X1)が消えません。泣きそうです。
http://sehermitage.web.fc2.com/cmath/ec_calc_1.html
http://sehermitage.web.fc2.com/cmath/ec_calc_2.html
等を参考にしていますが、理解できません。
どなたか、ご教授いただけないでしょうか?
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況