2016-11-17 9 views
0

私は、アフィン暗号をテキストファイルから読み取ろうとしました。私の.txtファイルには、2つのキー:alphabetaが含まれています。 Alphaは奇数である必要があります。これはgcd(alpha, 26)==1 であり、ランダムキーを生成します。ここに私のコードです:アファイン暗号はC言語で同じ鍵を得ます

beta = rand() % 26; 

しかし、暗号化が正しく機能しません。たとえば、暗号化された単語"bahar"は、暗号化されたときに"XWDWN"という単語に表示されますが、開始は"M"ではなく、"X"である必要があります。キーはalpha = 3beta = 9ですが、私のコードはkey (1, 22) alpha=1 beta=22です。常にアルファが選択されました"1"。などの例(1, 17)ためのもう一つの暗号化...

+0

を暗号化する方法です。 )putcは長い間開発されていますので、疑問はありません;)数字の手紙を作るのに65の代わりに '' A ''を使う – Garf365

+0

なぜアルファが常に1であるのか分かりませんが、暗号化をしています違う。これは暗号化がE(x)= alpha * x + betaのように見える方法です。あなたの暗号化は次のようになります:E(x)=(x + beta)+(65 * alpha) –

+0

アルファが13の場合、あなたは解読できません。 –

答えて

1

は、これは、私はあなたが想像どのように正常に動作しなくputc` `考える

putc(((toupper(p) - 'A')*alpha + beta) % 26 + 'A', cipher); 
+0

このように 'putc((toupper(c)-β-65)* r)%26 + 65、解読);' –

関連する問題