質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

暗号化

ネットワークを通じてデジタルデータをやり取りする際に、第三者に解読されることのないよう、アルゴリズムを用いてデータを変換すること。

Q&A

解決済

1回答

346閲覧

RSA暗号のプログラムを作っている途中なのですが、秘密指数を導出するところでFloating point exception: 8とでます

kttt

総合スコア3

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

暗号化

ネットワークを通じてデジタルデータをやり取りする際に、第三者に解読されることのないよう、アルゴリズムを用いてデータを変換すること。

0グッド

0クリップ

投稿2020/05/03 13:16

編集2020/05/03 13:26

``言語はc言語です
コード
int gcd(long f,long e){

long r=1;

while(r!=0){
r=f%e;
f=e;
e=r;
}

return f;

}

int main(void){

long x;
long y;
long x1 = 1;
long x2 = 0;
long x3;
long y1 = 0;
long y2 = 1;
long y3;
long e;
long f;
long result1 = e;
long result2 = f;
long result3;
long t;
long hirabun;
long p;
long q;
long flag=0;
long i;
long n;

long d;

printf("平文となる数字を入力してください:");
scanf("%ld",&hirabun);
printf("pを入力してください:");
scanf("%ld",&p);
printf("qを入力してください:");
scanf("%ld",&q);
for( i=2;i<p;++i ) {
if( p%i==0 ) {
flag = 1;
break;
}
}

if( flag==0 )
printf("%ld は素数です。\n",p);
else
printf("%ld は素数ではありません。\n",p);

// return 0;

for( i=2;i<q;++i ) {
if( q%i==0 ) {
flag = 1;
break;
}
}

if( flag==0 )
printf("%ld は素数です。\n",q);
else
printf("%ld は素数ではありません。\n",q);

n=pq;
f=(p-1)
(q-1);

printf("gcd(f,e)=1となるeを入力してください:");
scanf ("%ld",&e);
if(gcd(f,e)==1)
printf("gcd(f,e)=1です\n");
else
printf("違います");

while(1){
t = result1 / result2;
x3 = x1 - (tx2);
y3 = y1 - (t
y2);
result3 = result1 - t*result2;
if(result3==1){
if(y3<0){
return y3+e;
}
return y3;
}
x1 = x2;
y1 = y2;
result1 = result2;
x2 = x3;
y2 = y3;
result2 = result3;
}
return 0;

printf("秘密指数dは%ldです\n",x1);

}

この場合秘密指数はz2が0のときのx1でいいですよね? また質問内容以外でおかしなところがあったらご指摘お願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Yasumichi

2020/05/03 13:20

コードが見にくいのでコードを書くMarkdown記法で表してもらえると見やすくなります。 対応しているMarkdownの記法を知りたい https://teratail.com/help#about-markdown ```c ここにコードを入れる ``` みたいな感じです。
guest

回答1

0

ベストアンサー

result1とresult2が初期化されてない(正確に言うと初期化されてない変数を使って初期化されてる)せいでしょう
いずれにしてもreturnの使い方も間違ってるので思ったようには動きません。それを含めて一度条件式の検討が必要だと思います。
ちなみに現状では秘密鍵はx3です。

投稿2020/05/03 14:51

yudedako67

総合スコア2047

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kttt

2020/05/07 02:09

ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問