• ベストアンサー

暗号化されています。難しいですがわかりますでしょうか?

社員内でテストがありました。 採点結果が張り出されましたが、氏名欄が「暗号番号」になっています。各人には各人の「暗号番号」が知らされましたが、本人以外は誰のだかわかりません。 A君「社員番号288」=658848 B君「社員番号302」=824494 C君「社員番号301」=569902 です。 この場合、 D君「社員番号7460」は何番でしょうか? 462341か4942か222302か、のいずれかです。

質問者が選んだベストアンサー

  • ベストアンサー
noname#9431
noname#9431
回答No.2

>ランダムに割り当てるということは、対応表が必要なので、考えにくいのです。 コンピュータで処理しているのなら、乱数表1つ作るだけで済むので、簡単なことだと思いますよ。 その乱数表と社員番号との対応を1つきめれば終りだとおもうので。 もし、社員番号から暗合番号を生成する関数があって、 それが連続関数なら、近い数字は近い数にうつるので、 社員番号順に暗合番号をならべたときに暗合番号が大きくなったり小さくなったりと 複雑な挙動をするとなると、それは相当複雑な関数を考えることになるでしょう。 それこそ、社員番号と同じ数だけの乱数を考えるのと同じになります。 もっとも、パラメータを4つ(a,b,c,d)入れて、 y=a+bx+cx^2+dx^3 とすれば、 7460が上の3つのどのパターンにも合うように決められますが。 それより、乱数表とか、あと、氏名の漢字コードからとか、そういった離散的な表からなんか簡単な処理をして暗合番号をつくっていると考える方が妥当だとおもいますね。その場合、上の情報から結論を導き出すことは不可能ですね。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • yaksa
  • ベストアンサー率42% (84/197)
回答No.1

暗証番号が社員番号を暗号化したものである、ていうのは確かなんですか? ふつうに考えれば、暗証番号なんだから、 ランダムな数を割り当てただけ、の可能性が高いと思うのですが。 もしそうなら、考えるのは時間の無駄ですね。

click_pod
質問者

お礼

ありがとうございます。 それ以上に、設定した本人に聞けば「時間の無駄」は防げます。また、適当に並べて連番を振ってもよさそうなものですが、結果は4桁から6桁の番号が振られています。また、ランダムに割り当てるということは、対応表が必要なので、考えにくいのです。試験参加の社員は40名程度ですので01から40で済みます。なのに、わかり辛い複雑な番号を付与しています。これには何かあると思ったのです。付与した本人に聞けない訳はありませんが、その本人に「こういうしくみでしょう」と言ってから聞いてみたいのです。

すると、全ての回答が全文表示されます。

関連するQ&A