著者
田中 哲
出版者
一般社団法人情報処理学会
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.7, no.3, pp.51-51, 2014-07-14

本発表ではプログラムを逆方向にも実行可能なプログラミング言語Conservationを提案し,例としてX.509証明書のエンコーダとデコーダを記述する.また応用として,エンコーダを修正して間違った証明書を生成し,既存の暗号ライブラリに対してファジングを行う.通信プロトコルやデータフォーマットなど,データをプロセスの外部で表現するためにはデータをバイト列にエンコードし,また,逆にバイト列をデータにデコードすることが欠かせない.エンコードとデコードは対になる処理であるが,通常は別々に開発するため,正しく対応がとれた実装になるとは限らない.本発表ではプログラムを逆方向にも実行可能なプログラミング言語によりエンコードとデコードをひとつのプログラムとして記述可能とする.それにより常に正しく対応のとれたエンコーダとデコーダが開発できる.また,開発における利点だけでなく,ファジングにも利用できることを示す.This presentation proposes a reversible programming language: Conservation. We implemented encoder and decoder for X.509 certificates as an example program. Also, we modify the encoder to generate wrong certificates and fuzz existing cryptographic library. Implementation for communication protocols and data formats needs encoder (converter from a data structure to a sequence of bytes) and decoder (converter from a sequence of bytes to a data structure). Usually they are implemented individually and not guaranteed to be inverse functions of each other. This presentation explains the language can be used to implement a pair of encoder and decoder with single program. The program can run forward to work as an encoder and run backward as a decoder. The behaviors are guaranteed to be inverse functions. This means correct program can be implemented with less effort. The program can also be used for fuzzing by modifying the encoder.

言及状況

Wikipedia (1 pages, 1 posts, 1 contributors)

編集者: MetaNest
2016-04-10 16:32:08 の編集で削除されたか、リンク先が変更された可能性があります。

収集済み URL リスト