• 締切済み

排他的論理和

排他的論理和を2回演算すると、元に戻ることを下記の例で確認しなさい。 回答は下記の<2進数>と<16進数>の部分を書き換えなさい。 (1)平文と鍵から暗号文を作りなさい 【平文】  ABC  <16進数> <2進数> 【鍵】   XYZ  <16進数> <2進数>  ---------------------------- 【暗号文】    <16進数> <2進数> (2)暗号文と鍵から平文が復元できることを示しなさい 【暗号文】    <2進数>  <16進数> 【鍵】   XYZ  <2進数>  <16進数> ---------------------------- 【平文】  ABC  <2進数>  <16進数> ヒント:(1)は、平文と鍵を16進数と2進数に書き直し、2進数で排他的論理和を計算し、それを16進数に直せば暗号文を定義できる。平文、鍵、暗号文はどれも16進数6桁になる。 (2)も同様に暗号文と鍵から平文を生成する。 最後に(1)の平文と(2)の平分を比較してみなさい。違っていればもう一度見直しなさい。 どなたか教えてください。 さっぱりわからないです。

みんなの回答

  • R_Earl
  • ベストアンサー率55% (473/849)
回答No.1

2進数の平文10111011と鍵11101001の排他的論理和を取ると、計算結果は01010010です。 ここまでは理解できますか? この計算結果01010010と鍵11101001の排他的論理和を取ると、平文と同じ10111011という2進数が得られます。 この例のように、 『2回排他的論理和を取れば、元に戻る』ということを確認してください というのが、問われている内容です。 というわけで、平文と鍵で排他的論理和を取り(これが(1)の問題)、 その次の(1)の計算結果と鍵で排他的論理和を取って下さい(これが(2)の問題)。

関連するQ&A

  • 条件分岐での排他的な論理和について

    $aが 'abc' 'xyz' 以外の時に実行したい場合の条件分岐。 ついついこんな風に書いて間違えてしまいます。 if( $a ne 'abc' || $a ne 'xyz' ){...} 上記だと論理和左側のneが真を返すので、右側の条件を見てくれないから仕方なくunlessを使います。 unless( $a eq 'abc' || $a eq 'xyz' ){...} でも私、unlessが嫌いなんです。 if文で書く最も処理が高速でスマートな方法教えて下さい。 部分一致ではないので正規表現は使いたくありませんが 比較演算子を使うより正規表現を使ったほうが処理が高速な場合は正規表現も有りでお願いします。

    • ベストアンサー
    • Perl
  • 排他的論理和について

    PHPで排他的論理和を使っているのですが、サーバによって挙動が異なっています。 $a= -5748825183 $b= 160952 の時に、 $a^$b とすると、基本的に結果は「-1454008551」になっているようですが、いくつかのサーバは「-2147322696」になってしまいます。 なぜこのような挙動になるのでしょうか? 何かPHPやサーバの設定で、注意しなければならいところがあるのでしょうか? 非常に訳のわからない挙動になっており、アドバイスをいただければと思います。 色々調べましたが、PHPでビット演算子を使うことはあまりない(?)ようで、基本的な情報しか見つけられませんでした。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • (論理咳,論理和,排他的論理和)基本情報処理の問題

    今基本情報処理の勉強をしているのですが、 論理咳,論理和,排他的論理和の問題で、いまいちわからない部分がありますので教えてください。 【問題】 ビット数が等しい任意のビット列aとbに対して、等式=bと同じことを表すものはどれか。  ここで、AND,OR,XORはそれぞれ,ビットごとの論理咳,論理和,排他的論理和を表す。 ア a AND b = 00…0  イ a OR b = 11…1 ウ a XOR b = 00…0 エ a XOR b = 11…1 解答  「ウ a XOR b = 00…0」 となっているのですが  この質問に出ている 「00…0」 or 「11…1」は何を表しているのでしょうか?    「00…0」 = 全てのビットが0になる  「11…1」 = 全てのビットが1になる  という意味を指しているのでしょうか?

  • 論理演算

    8桁の2進数10110111の最上位(最左端)のビットだけを0にするには、8桁の2進数01111111と、どのような論理演算を行えばよいか。 選択肢 (1)論理積 (2)論理和 (3)否定論理積 (4)否定論理和 という問題の答えと、なぜそうなるかを教えて下さる方いませんか。 よろしくお願いします。

  • 排他的論理和の問題

    以下の問題の回答を読んでも意味がわかりません。どなたか、もっと詳しく説明お願いします。 【問】 任意の8ビットのデータXと、8ビットのデータ00001111をビット毎に排他的論理和をとった結果はどれか。ここで、各1ビットのデータAとデータBの排他的論理和をとったCの値は次のように表される。また、データの左方を上位、右方を下位と呼ぶ。 A B C ‐‐‐‐‐‐‐‐ 0 0 0 0 1 1 1 0 1 1 1 0 【選択肢】 ア、Xの上位4ビットすべての0、1が反転し、下位4ビットは全て1になる。 イ、Xの上位4ビットすべての0、1が反転し、下位4ビットはそのまま残る。 ウ、Xの上位4ビットはすべて0で、下位4ビットすべての0、1が反転する。 エ、Xの上位4ビットはそのままで、下位4ビットすべての0、1が反転する。 【解】 エ 【解説】 問題文中の表からもわかるように、データBのある1桁の値が0だった場合、データAの値はそのままです。一方で、データBのある1桁の値が1であると、データAの値は必ず反転します。データBのビット列は、00001111ですから、データAの上位4ビットはそのまま、下位4ビットは全て反転すると考えられます。 解説の「~データAの値は必ず反転します」までは理解できるのですが、なんでいきなりデータBのビット列が00001111なのか意味が分かりません。これは表から読み取るもの?それともこの問題でデータBがデータXということを示しているのでしょうか。 情報系素人なもので、助言よろしくお願い致します!

  • どなたか、この問題を解いて教えてください。。

    基本情報技術者試験の勉強中なのですが、この例題が、解説を読んでもわかりません。項目は論理演算です。どなたか、教えていただけないでしょうか? 【問題】 8ビットのデータの下位2ビットを変化させずに、上位6ビットのすべてを反転させる論理演算はどれか? ア 16進数03と排他的論理和をとる イ 16進数03と論理和をとる ウ 16進数FCと排他的論理和をとる エ 16進数FCと論理和をとる 【答え:ウ】 【解説】16進数FCは11111100です。排他的論理和を取ると、上位6ビットは反転され、下位2ビットはそのままとりだせます。 と、書いてあります。2進数に変換するまではわかるのですが、排他的論理和を取るというのは、どういうことなのでしょうか? すみませんが、宜しくお願いします。

  • 排他的論理和のみを用いて回路を表現

    排他的論理和回路(X-OR)のみを用いて、他の回路(AND、OR、NOTなど)を表現するという問題を解いています。 ブール代数からの変換等を用いてX-ORの形になるように色々と変換していますが、変換の通りだけでも種類がたくさんあるので、どうもうまくいきません。 類似問題として、NAND回路、NOR回路への変換は、教科書に記載されており、否定要素もあったのですぐにNOTから変換でき、AND、ORへつなげることができました。 せめてNOTの変換だけでもわかれば、AND、ORもすぐに理解できそうなのですが、X-ORのみの構成では、入力が0のときに1が出力される組み合わせが思いつきません。 ヒント、アドバイス等ありましたらよろしくお願いします。

  • 論理演算に関する質問です。

    (遥かの昔に学ばせて頂いた筈なのでしょうけれども、) 「『排他的論理和』では、 条件群の内の1つだけの肯定が全体の肯定になる」、 という意味合いでしか『排他的論理和』を私は覚えていませんので、 たとえ下記ページの解説を読みましても、残念乍ら、 其処の計算問題を解けないものですから、 畏れ入りますが、『排他的論理和』の計算方法を教えて下さいませ。 http://www.ap-siken.com/kakomon/23_toku/q2.html

  • RSA暗号

    どのトピックかがいまいちわからないのでこのトピックに質問を載せさせて頂きます。 いま、大学の課題でRSA暗号をパソコンで実装する という課題に取り組んでいます。 2桁以上の素数を選んで、その素数から暗号化鍵と復号化鍵を選んでアスキーコードを暗号化するという初歩的なものなので、実用性は全くありませんが… プログラムはできたのですが 暗号化鍵と復号化鍵を生成して 暗号化を行って複合化を行うと 元の平文に戻らない鍵のペアがあるらしいのです。 そういうときってあるのでしょうか?

  • AES暗号方式について

    AES暗号化方式では,秘密鍵(共通鍵)を用いてランダムに生成したセッション鍵で暗号化し,さらにそのセッション鍵を暗号化する. 復号化する場合は,逆の手順で平文に戻す と認識しています. これを踏まえて以下の質問に回答いただけると幸いです. 1.上の認識は間違っていないでしょうか? 2.暗号文を復号するには,暗号化時に生成したセッション鍵の値と秘密鍵が必要であると言えますか? 3.秘密鍵が漏れなければセッション鍵が漏れても問題ありませんか? 以上,3点についてご教授いただけると幸いです. よろしくお願いします.