トップページsec
1001コメント486KB

PGPってすごく良いの?

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001おぺけぺNGNG
PGPってみんな使ってるんだけど、
そんなに良い物なの?
絶対に破られない暗号化ソフトだから、CIAも使ってるって言ってたけど、
それって本当?
胡散臭
0855向こうから ◆tr.t4dJfuU NGNG
でばぐういんど

開始ーーーーーーー
1 9
2 18
3 15
4 9
5 18

44 18
45 15
46 9
47 18
余り= 18
16進表記 12

当たり前ですが、47回目の演算の余りを 答えとしているので、ループさせた意味が
分からないのですが?
これだけじゃ だめなのかな?
0856向こうから ◆tr.t4dJfuU NGNG
A=9
B=47
c=21

が 代入されてます

=ABEKIBMODC(9,47,21)

こんな関数になってます。
0857向こうから ◆tr.t4dJfuU NGNG
>>853
これが ヒントなのか・・・・
0858向こうから ◆tr.t4dJfuU NGNG
>>853
うーん・・・
わかりません

たとえば
if((x<0)||(p<1)) exit(2);
は、
IF X<0 OR P<1 THEN return

IF X<0 AND P<1 THEN return

なのかも、はたまた もっと違うのかも わかりません

BASIC風だと わかるのですが・・・

0859向こうから ◆tr.t4dJfuU NGNG
>>853
int aaaa(int a,int x,int p);
ここらへんは・・・

ユーザー定義型
Type ステートメントを使って、異なるデータ型を組み合わせた独自のデータ型を作成できます。ユーザー定義型には 1 つまたは複数のデータ型の要素、配列、または事前に定義したユーザー定義型を格納することができます。次に例を示します。

Type aaaa
a As As Integer ' 整数型変数
x As As Integer ' 整数型変数
p As As Integer ' 整数型変数
End Type

なのか??? わかりません。。。
0860名無しさん@お腹いっぱい。NGNG
a,b は0以上の整数
p は自然数

( a + b ) mod p == ( ( a mod p ) + ( b mod p ) ) mod p
( a * b ) mod p == ( ( a mod p ) * ( b mod p ) ) mod p
a mod p == ( a + b*p ) mod p
0861名無しさん@お腹いっぱい。NGNG
-----BEGIN PGP MESSAGE-----
Version: 6.5.8ckt

qANQR1DBjgPWp+EIWSWCcxAB/3tw9qlJERkDAJgmOUogIBPhU8aM1AR7Ifb9Ne7V
zK0BjnP/PzcMpQLS16nLmQBu7m3HCWfgndGcgUej9sUA16AB/0Ai5snlu3UuEgtU
wIEvEgmMseCLrfu4OEogWWX8cG3+IxnReQarW0sGihUV0TBs/ulkRtbZvpb5HbIc
3i7oK+3Jc9OlkW4kVm/yAWx4VzFzr6lQp1R7tpyTQMM9NZev6A+tMaiw6EnoVKfI
ZWsFbvv9SSdqpMxN/Uoq8r2ChmmBAtz9x8jVeahZeQf6Nq5Gz/CBh3m3hyS4Z7Ks
heLrmU1qhmxOkAOk9Yfd+9ldDd2c9MKLYQI=
=mSQu
-----END PGP MESSAGE-----
0862向こうから ◆tr.t4dJfuU NGNG
えっと目的は =MOD((9^47),21) で・・・・

書き換えると

(9^47) MOD 21   で・・・

これ「( a * b ) mod p == ( ( a mod p ) * ( b mod p ) ) mod p 」にあてはめると

(9*47)mod21 = ((9 mod 21)*(47 mod 21)) mod 21 で・・・

関数表現では =mod(mod(9,21)*mod(47,21),21)   かな・・

とりあえずエクセルに入れたら、「3」がでました・・

で・・ いいのかな・・

16進でも 3は 3で
00 00 00 00 00 00 00 03
のなか?
でも ASCIIコードに 00 も 03 も 文字は 割り当てられてないです・・

それに
これと>( a + b ) mod p == ( ( a mod p ) + ( b mod p ) ) mod p
これ>a mod p == ( a + b*p ) mod p
を使ってないので
まだまだ だめなんでしょうか・・・




0863向こうから ◆tr.t4dJfuU NGNG
もしかして ここのスレは私語禁止ですか?(w

暗号で 話してるんですか?

0864名無しさん@お腹いっぱい。NGNG
a^0 == 1
a^1 == a
a^2 == a*a
a^3 == a*a*a
a^4 == a*a*a*a
a^5 == a*a*a*a*a

a^n == (a^(n-1))*a
a^(n+1) == (a^n)*a

2^2 == 4
10^3 == 1000
9^2 == 81
0865向こうから ◆tr.t4dJfuU NGNG
ん?

9^47=(9^(47-1))*9
はい
わかります

その次も

9^48=(9^47)*9

はい・・ で・・・

あ〜
なんか 頭わるいみたい

こんなのもOKですか?
9^47=(9^10)*(9^10)*(9^10)*(9^10)*(9^7)

でも・・・ 意味ないか・・・

0866向こうから ◆tr.t4dJfuU NGNG
9^10=3486784401
で計算できたけど・・・

=MOD((((9^10)*(9^10)*(9^10)*(9^10)*(9^7))),21)
こーすると エラーだし・・・
0867名無しさん@お腹いっぱい。NGNG
( 9 ^ 47 ) mod 21
== ( ( ( 9 ^ 46 ) mod 21 ) * 9 ) mod 21
== ( ( ( ( ( 9 ^ 45 ) mod 21 ) * 9 ) mod 21 ) * 9 ) mod 21
== ( ( ( ( ( ( ( 9 ^ 44 ) mod 21 ) * 9 ) mod 21 ) * 9 ) mod 21 ) * 9 ) mod 21
中略
== 18
0868向こうから ◆tr.t4dJfuU NGNG
さっきの
あまりを 積算した 502 から

502 mod 21 = 19

19は 16進で 13

でも &H13でも 文字はないなぁ・・
0869名無しさん@お腹いっぱい。NGNG
( 9 ^ 2 ) mod 21 == 18

( 9^3 ) mod 21
== ( (9^2) * 9 ) mod 21
== ( ( ( 9^2 ) mod 21 ) * ( 9 mod 21 ) ) mod 21
== ( 18 * 9 ) mod 21
== 15

( 9^4 ) mod 21
== ( (9^3) * 9 ) mod 21
== ( ( ( 9^3 ) mod 21 ) * ( 9 mod 21 ) ) mod 21
== ( 15 * 9 ) mod 21
== 9

( 9^5 ) mod 21
== ( (9^4) * 9 ) mod 21
== ( ( ( 9^4 ) mod 21 ) * ( 9 mod 21 ) ) mod 21
== ( 9 * 9 ) mod 21
== 18

以下同様に ( 9^47 ) mod 21 まで続ける。
0870向こうから ◆tr.t4dJfuU NGNG
ん・・

一番したは、

(((・・・(((9^1)mod21)*9)mod21)*9)・・・・mod21)*9)

になってるはずだから・・・


X=(9^1)mod21
for I=1 to 47-1

 X=X*(Xmod21)*9)

ありゃ・・

(9^1)mod21 に mod21)*9) を 47(か46) 回 掛け合わせるればいいと・・

ここに再帰が 使われる? のか・・・ な・・

いや・・ これでいいのかな?
ちょっと 実験してきます・・・

0871向こうから ◆tr.t4dJfuU NGNG
>>869

== ( ( ( 9^46 ) mod 21 ) * ( 9 mod 21 ) ) mod 21

で    ↑

ここの(9^46)で オーバーフローする


だめだ・・・

再帰を つかうのか????
こんがらかって どうどうめぐり

0872向こうから ◆tr.t4dJfuU NGNG



(9^1)mod21 に


* 9 ) mod 21



47回 掛けるのか・・

X=(9^1)mod21
DIM Y

for I=1 to 47
 Y=X*9
 X=Y mod 21
next

かな・・


0873向こうから ◆tr.t4dJfuU NGNG
Dim A, B, C
Dim I, X, Y
A = 入力A: B = 入力B: C = 入力C
'A=9 B=47 C=21
Y = 0
X = A ^ 1 Mod C
Y = X
For I = 1 To B

Y = Y * 9
X = Y Mod C


Debug.Print I, X

Next I

Debug.Print "余り=", X

ABEKIBMODC = X

End Function
0874向こうから ◆tr.t4dJfuU NGNG
でばぐういんjんど

開始ーーーーーーー
1 18
2 15
3 9
4 18
5 15
6 9
7 18
8 15
ここで エラー

>>869 の 答えと 一致(偶然かも)

でも 9回目の ループ で 止まった・・・
なんで
0875向こうから ◆tr.t4dJfuU NGNG
開始ーーーーーーー
I Y X = 1 81 18
I Y X = 2 729 15
I Y X = 3 6561 9
I Y X = 4 59049 18
I Y X = 5 531441 15
I Y X = 6 4782969 9
I Y X = 7 43046721 18
I Y X = 8 387420489 15

原因

Yの値が オーバーフロー

馬鹿です 自分

やっぱ 再帰 かな・・
わからん
0876向こうから ◆tr.t4dJfuU NGNG
べき余り
218
315
49
518
   略
439
4418
4515
469
4718  <<<<

余りは 規則的に繰り返す

でも ・・・
プログラムで やったわけじゃない
エクセルで縦に並べた
0877名無しさん@お腹いっぱい。NGNG
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

合同式については

数学入門下 岩波新書青版 396
遠山啓 (著)
http://www.amazon.co.jp/exec/obidos/ASIN/4004160057/ref%3Dlm%5Flb%5F14/250-0526484-8392254

VIII 数の魔術と科学
が参考になるかも。
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQE+iE/+APsqAp/UiEgRAjCDAKCbcAMrdCgeeFsPZEWJ5CB3yvIrpgCdFN90
rWTvP1VNhrmrWT3PZOnq95o=
=t6Po
-----END PGP SIGNATURE-----
0878向こうから ◆tr.t4dJfuU NGNG
べき余り
2-18
3-15
4-9

43-9
44-18
45-15
46-9
47-18
0879向こうから ◆tr.t4dJfuU NGNG
結局分かりませんでしたが

ありがとう ございました

18でも 文字コードないですよな・・・
0880向こうから ◆tr.t4dJfuU NGNG
>>877
これは  漏れに対しての メッセージですか?

ありがとう
ございます
0881名無しさん@お腹いっぱい。NGNG
>>873

× X = A ^ 1 Mod C
○ X = A ^ 0 Mod C

× Y = Y * 9
○ Y = X * 9
0882向こうから ◆tr.t4dJfuU NGNG
Option Explicit

Public Function ABEKIBMODC(入力A, 入力B, 入力C) As Variant

Debug.Print "開始ーーーーーーー"

Dim A, B, C
Dim I, X, Y
A = 入力A: B = 入力B: C = 入力C
'A=9 B=47 C=21
Y = 0
X = A ^ 0 Mod C
Y = X
For I = 1 To B

Y = X * 9
X = Y Mod C


Debug.Print "I Y X ="; I, Y, X

Next I

Debug.Print "余り=", X

ABEKIBMODC = X

End Function
0883向こうから ◆tr.t4dJfuU NGNG
開始ーーーーーーー
I Y X = 1 9 9
I Y X = 2 81 18
I Y X = 3 162 15
I Y X = 4 135 9
I Y X = 5 81 18
 略
I Y X = 43 135 9
I Y X = 44 81 18
I Y X = 45 162 15
I Y X = 46 135 9
I Y X = 47 81 18

余り= 18

でました!!!!!!!!!!!!!!!!!!!!!!!!!!!!

0884名無しさん@お腹いっぱい。NGNG
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

ところで
向こうって何処?
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQE+iFVgAPsqAp/UiEgRAgzAAKDmiCW/qNlnG6vqd4EM9vfi/zgegQCfcH0m
GXgaE1WoFQeb1hoGp7vUBhQ=
=yPwa
-----END PGP SIGNATURE-----
0885向こうから ◆tr.t4dJfuU NGNG
あれ? 漏れを ここに 誘導してくれた
人じゃ ないんですか?

他のスレでPGPって暗号が 簡単に 使えると 紹介が あって、

漏れが興味を持ったのですが・・

そのほかのスレでは、スレチガイ! の お叱りが あって 

暗号解読の続きを ここで やってたんです
0886向こうから ◆tr.t4dJfuU NGNG
18で いいんですか??
0887名無しさん@お腹いっぱい。NGNG
あってる!

これを応用してeとnとdの値を大きくすると
伝えたい数字=mを大きくする事が出来るのです

n=210682641866528392339924267919521486832254575626011849551005435185793837676391
952488587737546451362177622385218482600517540050364571844864529848980677135592
71048127665947018785888345270242137737997411

e=5

dは秘密鍵だから公開しては駄目
0888名無しさん@お腹いっぱい。NGNG
送る側は
c=Mod(m^e,n)を出して

c=698554217608521722285159656025858094842043344042897409638522493078199478097402
453624389362145671555027608884321004068910953767391333601595127856237419999890
2499

=
7f32d8993f8fdbeeddf283513ebc3cf6c163b804690a7ca90387970f8d4cdbcfb66bec39dc37f
25b1f8c92a20edebe3e3df0d5dbdb20d52231535af0c2e25efbf70e3

を送る


0889向こうから ◆tr.t4dJfuU NGNG
>>887
来てくれたんですね ありがとです

でも・・

そんな 桁 エクセルでは 無理 ですね・・・

でも ありがとう ございました

m^eをnで割った余りをcとし、このスレで晒す

mが1234
として

1234^5 mod 2106・・・・・7411

もう 1234^5で フローします
それに、nの100桁とか 入らない。。

でも 頭の体操になりました
0890名無しさん@お腹いっぱい。NGNG
受け取った側は
m'=Mod(c^d,n)

=93076495688256089536609610280499

=496ca60b7bb3f3690289336ae33

を出して

(下位)8バイトを文字列に直して
キーを受け取る
0891名無しさん@お腹いっぱい。NGNG
>>889
どうにかして桁を増やす方法ないかな?
上の方の応用で出来ると思う
0892名無しさん@お腹いっぱい。NGNG
>>889
PGP使えば?
0893向こうから ◆tr.t4dJfuU NGNG
桁は そんな 100桁とかは 無理かと・・・

応用できる 頭は ありません

もしかしたら 10文字くらいの ミニPGPくらいなら できるかも(w

>PGP使えば?

暗号がやりたいんではなく

暗号の作成と解読の仕組みに興味を 持ったので・・
自分で(手計算かVBA)やってみたかったのです。
0894向こうから ◆tr.t4dJfuU NGNG
風呂も入らず
メシもくわずやってたので 疲れました(w
0895名無しさん@お腹いっぱい。NGNG
>>893
小さめのnとeとdを作ってnとeを晒してみて
0896名無しさん@お腹いっぱい。NGNG
>>894
0897向こうから ◆tr.t4dJfuU NGNG
>>895
では、近日中にやります
明日 仕事なもんで・・

こんど晒しておきますから また 遊んでください

 
0898bloomNGNG
http://www.agemasukudasai.com/bloom/
0899名無しさん@お腹いっぱい。NGNG
>>897
乙〜

pとqがバレるとnとeから誰でもdが出せてしまう
pとqを見つけるにはnを因数分解するしかない
nを大きくしなきゃいけない理由は
容易に因数分解出来てしまうから
0900名無しさん@お腹いっぱい。NGNG
-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.2.1 (GNU/Linux)

jA0EAgMBudCOxORtJM9gpCTQF9tuStvI2eyRIC5AhZJk1QWDqlT1e0uPFODI77C+
wmNVw7k=
=0/gF
-----END PGP MESSAGE-----
0901名無しさん@お腹いっぱい。NGNG
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


                \ │ /
                 / ̄\   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
               ─( ゚ ∀ ゚ )< PGPPGP!
                 \_/   \_________
                / │ \
                    ∩ ∧ ∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\∩ ∧ ∧ \( ゚∀゚)< PGPPGP!
PGP〜〜〜〜!   >( ゚∀゚ )/ |    / \__________
________/ |    〈 |   |
              / /\_」 / /\」
               ̄     / /
                    ̄
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iEYEARECAAYFAj6JgzoACgkQAPsqAp/UiEiLcACgk/FWFcu3CCoAyD/HmjY71lPB
iP4AoKCZUW6fT/iDlpq+lA/t7Qkk7iuI
=VJR4
-----END PGP SIGNATURE-----
0902向こうから ◆tr.t4dJfuU NGNG
おじゃまします
P=17
q=23

として、
n=p*q=17*23=391
s=(p−1)*(q−1)=16*22=352

で・・
>1 大きな素数(100桁くらい)を2つ作りp,qとする
>2 n=p*qとし、s=(p-1)(q-1)と互いに素(公約数が無い)なeを決める

この eを決めるところが、文章から理解できません。
0903名無しさん@お腹いっぱい。NGNG
>>902


352を2で割ってみると割り切れてしまう→×
352を3で割ってみると割り切れない→e=3


こうやってeを決めます
0904向こうから ◆tr.t4dJfuU NGNG
>>903
eは、尚且つ 素数で、

任意の数で いいんですね。

順番に2、3、5、7 ・・・
と 割っていって、割れなかった一番初めの素数である 必要はないですね?

では e=109
109は素数 で、352を割れない

0905名無しさん@お腹いっぱい。NGNG
>>904
オッケーです

でも
c=Mod(m^e,n)を出す時にeが小さい方が都合がいいですよね

そのかわりdが大きくなってしまうわけですが
0906向こうから ◆tr.t4dJfuU NGNG
すみません・・・
もうちょっと検討します・・

なにかというと、
eが小さい方がいいのですが・・・

d*109 が 352 の倍数+1 に なるところの 計算が 浮かばない

なんか ヒントいただけると うれしい

ちなみに素数を吐き出す 関数を作ってました
0907向こうから ◆tr.t4dJfuU NGNG
Public Function SOSUU(欲しい個数)
Debug.Print "素数の検索 開始ーーーーーーーーーーーーーー"
'欲しい個数分の素数を検索する

Dim 素数格納配列上限
Dim 素数配列()
素数格納配列上限 = 欲しい個数
Debug.Print "素数格納配列上限", 素数格納配列上限
ReDim 素数配列(素数格納配列上限)
素数配列(1) = 2 '素数の2は入れておく
素数配列(2) = 3 '素数3も入れておく
Dim 今の個数, 検索対象, 判定, i, j, k
今の個数 = 2

0908向こうから ◆tr.t4dJfuU NGNG


検索対象 = 5 '5から検索開始

For 検索対象 = 5 To 999999999 Step 2
判定 = "素数です"
For j = 3 To 検索対象 - 1

If 検索対象 Mod j = 0 Then
'割れたら素数ではない
判定 = "ダメ"
Exit For
End If
Debug.Print 検索対象; "/"; j; 判定
Next j

If 判定 = "素数です" Then
今の個数 = 今の個数 + 1
素数配列(今の個数) = 検索対象
If 今の個数 = 素数格納配列上限 Then
Exit For
End If
End If
Next 検索対象
0909向こうから ◆tr.t4dJfuU NGNG

Debug.Print "結果出力"
For k = 1 To 素数格納配列上限
'
Debug.Print k; "個目は、"; 素数配列(k)
Next

Debug.Print "以上"; 素数格納配列上限; "個の検索終了)"

SOSUU = "完了"

End Function
0910向こうから ◆tr.t4dJfuU NGNG
結果出力
1 個目は、 2
2 個目は、 3
3 個目は、 5
4 個目は、 7
5 個目は、 11
6 個目は、 13
7 個目は、 17

22 個目は、 79
23 個目は、 83
24 個目は、 89
25 個目は、 97
26 個目は、 101
27 個目は、 103
28 個目は、 107
29 個目は、 109
30 個目は、 113
以上 30 個の検索終了)

多分 いいと おもいます
0911名無しさん@お腹いっぱい。NGNG
>>906

#include<stdio.h>
main()
{
int k,i;
for(i=1;i<352;i++){
if((i*352+1)%109==0) {i=352;k=(i*352+1)/109;}
}
printf("%d\n",k);
}


cですがこんな感じです

0912向こうから ◆tr.t4dJfuU NGNG
>>911
ん?

わかりそうで わかりません 構文の意味からして・・・

こんなんは どうですか?

for i=1 to 352

if (i*109) mod 352 =1 then
 print i
endif

next

すみません 今日はこのへんまでに しておきます

また、暗号で話してるかたには スレ消費して すみません。
0913名無しさん@お腹いっぱい。NGNG
>>912
それだとdが見つからないです
なぜならeが小さい場合dは大抵大きな数になるからです
くり返しが多くなってしまい効率が悪くなります


その構文で書くならば

for i=1 to 352

if (i*352+1) mod 109 = 0 then
 print i
endif

next

にした方がいいです
0914名無しさん@お腹いっぱい。NGNG
>>913
訂正です

for i=1 to 352

if (i*352+1) mod 109 = 0 then
 print (i*352+1)/109
endif

next
0915向こうから ◆tr.t4dJfuU NGNG
>>913
んんん???

(i*352+1) mod 109 = 0 と

(i*109) mod 352 =1 は

同じなんですか?
違うんですか?

言葉で 現すと どんな感じでしょう?

ちょっと 風呂はいります・・・ 悩む(w
0916向こうから ◆tr.t4dJfuU NGNG
>>914
よけい こんらんです(w
風呂いきます

0917名無しさん@お腹いっぱい。NGNG
>>915-916
こう考えてみてください

s=2898443842392832878
e=5

の場合どちらの方が効率がいいのかわかると思います
0918向こうから ◆tr.t4dJfuU NGNG
>>917
えっと、
意味がしりたいのです
漏れのは、そのまま

i*109 を 352 で 割った 余りが 1 に なった時の i を 見つける
(繰り返しの上限は 352回では 足りないかもしれないけど)

意味か・・

もしくは
 両辺を109 で 割って・・
 両辺から1引いて・・
 ・・・・
みたいに、その判定式で i(dのこと)が導き出せる 確信が欲しいんです。

教えられた判定式を 意味も分からず 使うのは イヤなんです。
(すみません 生意気で)
暗号がやりたいのではなく、仕組に興味があるんです。。。
0919向こうから ◆tr.t4dJfuU NGNG
>>918
時間かけて 考えてみます・・・
0920名無しさん@お腹いっぱい。NGNG
>>918

a*b MOD c = 1 ‥‥‥(1)

∃a' s.t. (a'*c+1) MOD b = 0   



(1)より
a*b - 1 = a'*c

a*b = a'*c + 1

a = (a'*c + 1) ÷ b

∴(a'*c+1) MOD b = 0

0921名無しさん@お腹いっぱい。NGNG
>>918


>>912
i*109 を 352 で 割った 余りが 1 に なった時の i を 見つける

です


>>914
j*352+1 を 109 で 割った 余りが 0 に なった時の j を 見つける
[ちなみに i = (j*352+1)/9]

です
0922名無しさん@お腹いっぱい。NGNG
訂正
[ちなみに i = (j*352+1)/9]  →  [ちなみに i = (j*352+1)/109]
0923名無しさん@お腹いっぱい。NGNG
>>902
RSAの話なら、
s=(p-1)*(q-l)
ではなくて
s=LCM(p-1,q-1)
ではないのでつか?
0924向こうから ◆tr.t4dJfuU NGNG
>>920
なんとなく ・・・ でもないか・・・ むずいです・・

できたら 「∃a' s.t. 」の意味を 教えてください



自分で考えてたのは・・
d*109 が、 352の?倍 より 1少ない

d*109+1 = 352の?倍

行き詰まる・・・

もう少し >>920 を 考え(理解)させてください・・

今日は寝ます・・
0925向こうから ◆tr.t4dJfuU NGNG
>>922
これは、OKです。
気づきました
0926名無しさん@お腹いっぱい。NGNG
>>923
それでも合ってますね
s=φ(n)を求める方式しか知りませんでした
0927名無しさん@お腹いっぱい。NGNG
AI=1234
BI=4567

IF B>A
THEN
A=BI
B=AI
ELSE
A=AI
B=BI
ENDIF

WHILE (A MOD B) != 0
X=A MOD B
A=B
B=X
ENDWHILE

IF B==1
THEN
PRINT AI ,"と",BI,"は互いに素"
ENDIF

0928名無しさん@お腹いっぱい。NGNG
>>927
ユークリッドの互除法ですね
0929名無しさん@お腹いっぱい。NGNG
http://aitech.ac.jp/~koikelab/webp/cipher/cipher_02.html#2-3
0930名無しさん@お腹いっぱい。NGNG
教えていただきたいのですが、PCがクラッシュ
してしまい、バックアップのFDも息子が
使ってしまい秘密鍵が完全になくなってしまいました。
サーバに登録してある公開鍵を削除したい
のですが、当然秘密鍵がないので、削除できません。
このような場合どうしたらよいでしょうか?
0931向こうから ◆tr.t4dJfuU NGNG
独り言

紙と鉛筆で いろいろ考え中です
0932名無しさん@お腹いっぱい。NGNG
>>930
http://pgp.nic.ad.jp/faq/
0933932NGNG
言葉が足りなかった。

「どうすることも出来ない」(のではないか?)と、932に付け加えておく。
0934向こうから ◆tr.t4dJfuU NGNG
独り言(というより、930さんとは 別と言う意味で)

!!!
小さい数字で・・・
p=3   、q=5
n= 3*5 = 15
s=(3-1)*(5-1) = 2 * 4 = 8
e=7 は 、8を割れない素数で 7 とする。

求めたいのは、
d*7 mod 8 = 1

余ってしまう1を、d*7から 引いておけば、余りは出ない。

d*7-1 mod 8 = 0

d*7−1 は、8で割り切れる
いくつで割れるのかは不明なので、Xとすると、、、

d*7−1 = 8*X    ・・・・・式A

両辺に1を足して、
d*7 = 8*X+1

両辺を7で割ると、
d = (8*X+1)/7

8*X+1 を 7 で割ると、答えがdになるので、この割り算に 余りは 発生しない
だから、
8*X+1 mod 7 = 0 となる・・・・・・・

0935向こうから ◆tr.t4dJfuU NGNG


さらに、ここで 判明したX’(確定したXのこと)は、
式Aの X であるから、

d*7−1 = 8 * X’

d*7 = 8 * X' +1

d= (8 * X’ + 1)/7


>>918 と、>>924 を 併せて 考えました。

早速 打ち込みます(エクセルに)
0936向こうから ◆tr.t4dJfuU NGNG
訂正

>>920 と 、 >>924 を 併せて・・・
0937名無しさん@お腹いっぱい。NGNG
>>934-935
ばっちりです

ところでエクセルの桁数の上限はいくつですか?
0938名無しさん@お腹いっぱい。NGNG
上限を回避するために

493849238498129381298839284123981231みたいな数を
セルA1に4123981231
セルA2に8129883928
セルA3に2384981293
セルA4に493849
としてみたらどうでしょう
計算も工夫たらうまくいくと思います
0939向こうから ◆tr.t4dJfuU NGNG
データ型 記憶領域のサイズ  範囲
バイト型 (Byte)  1 バイト  0 〜 255
整数型 (Integer)  2 バイト  -32,768 〜 32,767
長整数型 (Long)  4 バイト  -2,147,483,648 〜 2,147,483,647
単精度浮動小数点数型 (Single)  4 バイト  -3.402823E38 〜 -1.401298E-45 (負の値)。
                            1.401298E-45 〜 3.402823E38 (正の値)。

倍精度浮動小数点数型 (Double)  8 バイト  -1.79769313486231E308 〜 -4.94065645841247E-324 (負の値)。
                             4.94065645841247E-324 〜 1.79769313486232E308 (正の値)。

通貨型 (Currency)  8 バイト  -922,337,203,685,477.5808 〜 922,337,203,685,477.5807
10 進型 (Decimal)  14 バイト  小数部分を持たない数値の場合、
-79,228,162,514,264,337,593,543,950,335 〜 79,228,162,514,264,337,593,543,950,335 の範囲の値をとります。
小数点以下 28 桁の数値の場合、
-7.9228162514264337593543950335 〜 7.9228162514264337593543950335 の範囲の値をとります。

文字列型 (String) (可変長) 10 バイト + 文字列の長さ 0 〜 2GB
文字列型 (固定長) 文字列の長さ 1 〜 2GB
バリアント型 (Variant) (数値) 16 バイト 倍精度浮動小数点数型の範囲と同じ。
バリアント型 (Variant) (文字列) 22 バイト + 文字列の長さ 可変長の文字列型の範囲と同じ。
ユーザー定義型 要素に依存 それぞれの要素の範囲はそのデータ型の範囲と同じ。

関係ありそうなのの抜粋

プログラム完成です・・
ただ、ループの上限をどうしたらいいのか 不明です・・・

0940名無しさん@お腹いっぱい。NGNG
>>939
ループの上限はeにしておけば大丈夫ですよ

意外に大きい値が扱えるようですね
0941名無しさん@お腹いっぱい。NGNG
そろそろプログラム板か数学板に移ったら?
0942向こうから ◆tr.t4dJfuU NGNG
>>941 すみません、もうチョットだけ・・ 先生(名無しさん)と相談させてください。


Public Function DKAKEEMODSEQ1TOD(入力E, 入力S)
'd?*e Mod s = 1 となる d? を 検索 する
Dim e, s, d
Dim i, j
e = 入力E
s = 入力S
Debug.Print "d*"; e; "Mod"; s; "=1 の検索開始ーーーーー"
For i = 1 To e
If (s * i + 1) Mod e = 0 Then
Debug.Print "i="; i
j = (s * i + 1) / e
Debug.Print "答えの d="; j
Debug.Print " "
End If

Next i
Debug.Print "終了ーーーーーーーーーーーーーーーーーーーー"

DKAKEEMODSEQ1TOD = "完了"
End Function
0943向こうから ◆tr.t4dJfuU NGNG
でばくういんど

d* 109 Mod 352 =1 の検索開始ーーーーー
i= 61
答えの d= 197
 
終了ーーーーーーーーーーーーーーーーーーーー

d=197
検算もしました
余り 零 でした!
0944名無しさん@お腹いっぱい。NGNG
>>943
完璧です!

では試しに少し大きめのeとnとdを作ってeとnだけ晒してみて下さい

>>941
スレ汚し失礼しました
0945向こうから ◆tr.t4dJfuU NGNG
e=11
n=1537

晒す
0946名無しさん@お腹いっぱい。NGNG
>>944 別にいいよ。セキュ板ってマジで厨房多くなったから
難しい話題もなくなったし・・・
0947名無しさん@お腹いっぱい。NGNG
こっちで続ければ?

RSA暗号 解読 助けてください!!
http://pc.2ch.net/test/read.cgi/sec/1026903337/
0948名無しさん@お腹いっぱい ◆40sw6QWs96 NGNG
ではc=416を晒しますので
m'を求めてそのキー(数字)でトリップ付けて下さい

一致すればオッケーです
0949向こうから ◆tr.t4dJfuU NGNG
先生

たしかに このスレ 誰も使ってないので、続きは、

RSA暗号 解読 助けてください!!
http://pc.2ch.net/test/read.cgi/sec/1026903337/

で、お願いします。

416ですね

解読します。

暗号で 話せるようになったら また 戻ってきましょう
0950名無しさん@お腹いっぱい。NGNG
-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.2.1 (GNU/Linux)

hI4D1qfhCFklgnMQAf90zi0HFTOAWwNrtzL5ZSDbKDlIgf+yHVk1e0Liykf5uKbw
neQSQRBZ0kXfAAoVhojDRr0jnx4uLbf8CPcX4uhLAf0SwYbEltRyNCG/1MVDLHju
fXg5mQIiGohKfci33oBw/JROTJWUDByN28n2hcy1RtgFtUsdzRV9MBe6XAymf5t2
pPcMOOfvbT78KpEh7HYT8y2L7Gem89ILjV2hX/o49kdcci5DWFpLc4UJ3dy1vqyO
+QQiZiSsKFuvdYpP7CFr/LmJPrXNV0jCtUOgEd3cSLgsULMlko9OhOYKFzUAMBQ0
fLolawPD/5rqQhD7Svhm6fIBTH9nCQ+ZkTfjGOfML8qI6/7ls908TtjYXAU2YL3R
X/97QvdY26Df8UrnJSZXkpLWlyQI7n1waEBjVimTS/bkj48tg/ZlJWFmYdNg4yne
dL1nMWJwjWqTdToHdhdvSU4inPZMRX2Q22IjABel6M0kuOwUVbAj+MC/KMNL24/B
MUYGJ+9CEHT8
=dP5Q
-----END PGP MESSAGE-----
0951名無しさん@お腹いっぱい ◆40sw6QWs96 NGNG
Pass:"test"
-----BEGIN PGP MESSAGE-----
Version: PGP 8.0.2 - not licensed for commercial use: www.pgp.com

qANQR1DDDQQJAwLq84XOGnUTlmDSwKgB8gMFk2zVkIyrI0AnZPg0tq7UHf1eGa+K
UG78FUHiloqmjPiX+bSzIXQkzjr/NkVp+lKBYrNlAZK+GQMH6MLEX4eh/3+9dHeE
y5nnTSiTT5hYZdSZrtBF7Cs3ViZpoCx3wbYmyOlRbbK2cMf1FZGdRJvaEVYwYmYI
0nAJfR80SM00yp+Zxvkm7U36YDmO3mB706Q4XL4qFz0GXe060tYjC6uDkMWw+Cj/
x3HJKUSvmZw/bpEkEkJLjE8ibX4xdHp4y2GTtuyDKYk3Of7ETYkashlcSEuSL49P
rF+4UvFKhpHV52XLiJU3OubY8HeDCyt+LwNfKzIOkw1SBcg3ATPjIoNt7xjPDsR4
cUWv4dDPLZbQq8qYIka2UiW/LnqBrbaPag+2eHEf7cU1Lz4nbpBPSOBTBbO5XSft
RZIUjzYXohLWmf5DPInYjNf3BpUp6IFGHM+yOMoWf3LsLaq8XX3gLivRJbGFHNw=
=Onw1
-----END PGP MESSAGE-----
0952名無しさん@お腹いっぱい。NGNG
>>951
読めない。

-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.2.1 (MingW32) - GPGshell v2.70

jA0EAwMCqjKiVoJlQeVgycCMfTPeZn1DFlnne8Fsd+NHEjAxCjMTaNRoCj+684iY
TDzzsf5YI4ulTcNPPAJiqv90hP0pVK5iiuydl6mhfRVTqoiGcfaSLwouRGgzzQ3g
21frD9DwI9GEvdff7hl7wpNHnNamLvwsuQzb0LRMl1F1Z2CFoOQJQ2LNR+2Xd0d6
PYpFKV0T15nVTW0WGXSkhm9Ab41jBAt6CxlDpQaQl0B2kVWGpxfw6qFvKgQ5c6BD
aAybOelB3DLQYXZeroNskbrYgGcPQ6zLbAy0xZGRxxUnZL/5vyi5EeDlcvClki1H
NuZyVxPQx2CXtiWALvjE6WL0n7EOEk7DCvKJ8P4VB+RfxFRmTrtD8hz0Gbp6BRd7
kZOl9GARDQ2VdwGm/Wuaxemfs8WKgdUjGHoL/yusE63rN4YyJMzv7ZFXX6ljLX5p
M79ajzyB8+y0aHPsUnk=
=Owdf
-----END PGP MESSAGE-----
0953名無しさん@お腹いっぱい ◆40sw6QWs96 NGNG
>>952
-----BEGIN PGP MESSAGE-----
Version: PGP 8.0.2 - not licensed for commercial use: www.pgp.com

qANQR1DDDQQJAwJ5oPoSPNo+YmDSwM8ButprrTbB3I/H/e1YTZTdAltXYGGftFH4
LMQ2kEIm+csI+YA1RrZtXOwoOk+AsODbYohgqkUWvBT9S86qg8KYX4W/3Jv456ih
c9HsnRPDAGGxrswDPW7tJ9aiabWGjU66FAa+kOpjWKlyH5leh01yN6JhVPcMvyCw
6GiJbgq0RkwDCTS9dHxRrSgl+Ee//JTu+1IU+wXUP5/svxeTNRfSMvSvTdHJpz3c
DSgb/mFh7pCDvKWFK1uvSEgtWgEXVgyUMP4kzE8F73ZLaol3Hraj8Lt4wBlJkeGH
4VjKY+52y3zk97AsuEQf0/agpTwnKBrMh0ZYMzbuWvzfZvJvD5rvwCRf+5vtGYdz
7hbTr5KnK+j5kb95UJGpwc83Ny8WtyNFdPZbSy1G9E2fftHs34JdlD5Nxk9csNW8
XXxFWhk/ULJ4CRNSQA9b2eBqBt3LJwYTMjQaKuGNosa1jdkzDOvLVatHNanyJfkg
Lz9VPq+NbFeyAp5B/vbcCZF2jijI9l2qUDO0sf06U/ikcA6EIVI=
=YH/7
-----END PGP MESSAGE-----


お願いしますm(_ _)m
0954名無しさん@お腹いっぱい。NGNG
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

"Rich Text" ではなく
"Plain Text" でおながいします
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQE+iw6/APsqAp/UiEgRAiRzAJwLJUJ7h64pKdjEwDgmrnaCv7xxrQCfcIK1
H3uWDrJP+JPREnQsKGHAzVg=
=mXDa
-----END PGP SIGNATURE-----
0955名無しさん@お腹いっぱい ◆40sw6QWs96 NGNG
-----BEGIN PGP MESSAGE-----
Version: PGP 8.0.2 - not licensed for commercial use: www.pgp.com

qANQR1DDDQQJAwJLVTzG4OYaQmDSwLwBnvwTFpyaBQTjQIMBfClftBTb5UID3OaZ
RmQkgsFzRGpSXP6IfzXzOhl0iGgmUVA5R+Jx87+kvjCiienlOI6P6KBQEzHkyRp3
6GGD6vx+bEW54Ws425Bt1tWLqKptj3bg9zgwU2JqDxZ+BwX/szd1j84o6O2LG8DH
9qmkBngxczMp8n7jp1kSIQvEcx8x+1t9XG8dApZ4i2ehNU2yPseLT5xLh8fZXhze
G0bfxThItzcTe6snO3VtztytyDHXoNqXg4dmk/12xwAwlWQuwaoUgREoepbEcHL6
F0LW6YNCmn1loKRsA1dOZ0TKy8H+Mr/qs/mHMHo+9aW35HuwUODtzUwQzdVhJl6L
Vh6Hs3pn9xrHrwjpXzfhzcCU5mEMY3RedJPfCUsdfq8iufPvJbhnox+UYf8sVSYb
5Z/1EeEH/I2Az+II9qfdPFwzJiEa5lBbHS4gJZ5odZeq4vUX++BOTrWpxAsk2z1D
vRmPEGjEU+mrMZ9j3ugb1i+O/w==
=TtmS
-----END PGP MESSAGE-----


なんででしょう?
レス数が950を超えています。1000を超えると書き込みができなくなります。