電子書籍の厳選無料作品が豊富!

赤外線を使った認証システムを作りたいので質問しました。

簡単に説明すると、
発信器で4桁の番号を選択し、信号にして赤外線を使って
受信器に送信すると、設定していた番号と一致すると
ロックが解除されるというものです。

そこで、質問をしたいのは
このプログラムはC言語やアセンブリで作れるのでしょうか?
また、これらの言語で作れない場合はどのような言語で作ればいいのでしょうか?
また、どのようなプログラミングをしたらいいのしょうか?

あと、セキュリティに問題が出てくると思うので
どのようなアイデアがありますか?

質問が多くなってしまいましたが、回答よろしくお願いします。

A 回答 (2件)

> このプログラムはC言語やアセンブリで作れるのでしょうか?



発振器、受信器にそれぞれマイコンを使うことになると思いますので、マイコンを制御するプログラムを書くのにはアセンブリ言語かC言語がベストな選択肢だと思います。(それ以外の手が皆無なので。)

> また、どのようなプログラミングをしたらいいのしょうか?

発振器側では、
1.ボタン操作か何かで4ケタの暗証番号を受け付ける処理
2.暗証番号を何らかの方式で0と1のパターンに符号化する処理(変調処理)
3.変調されたデータに従って発振器の赤外LEDを点滅させる処理

受信器側では
1.フォトトランジスタなどの受光素子から赤外線の強弱を読み出す処理
2.読みだした赤外線の強弱データを暗証番号に戻す処理(復調処理)
3.暗証番号が正しいか判定する処理
4.ロックを解除する処理

> あと、セキュリティに問題が出てくると思うので
> どのようなアイデアがありますか?

赤外線で、一方通行の通信でセキュリティを考えるのは難しいですね。
強いて挙げれば、
1.送信器の内部に時計を持たせ、暗証番号を暗号化する際に暗号化のカギとしてタイムスタンプを用いる。
2.送信器は「タイムスタンプ」「暗号化された暗証番号」「チェックサム」を受信器に送る。
3.受信器は赤外線に乗ったデータを受信したら「チェックサム」を使って外乱光などノイズ等によりデータが化けていないかどうかチェックする。
4.データが化けていなければ、受信器は「タイムスタンプ」をカギとして「暗号化された暗証番号」を平文(暗号化される前の暗証番号)に戻す。

タイムスタンプじゃなくて、単なる乱数でもいいかもしれませんが。
これなら、学習リモコンで学習しようとしても毎回データが変わるので学習できないと思います。
    • good
    • 0

>プログラムはC言語やアセンブリで作れるのでしょうか?



使用する機器しだいでしょう。

>セキュリティに問題が出てくると思うのでどのようなアイデアがありますか?

学習リモコンでコピーされたら終わりですね。
対策はありません。
(まあ、コピー出来ないような長い信号を作成して送信する程度でしょうか。)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!