これは以前の質問よりも広い質問ですが、関連しています。
ADFGVXやVIC cipherなどの旧式の暗号システムを Ruby で実装したいと考えています。これらの暗号システムは、置換 (Caesar などの単一アルファベットまたは Vigenere などの多アルファベット) や転置 (単純、二重) などのより一般的なシステムの上に構築されています。私の質問は、暗号システムとキーの両方を処理するクラスの階層をどのように作成するかということです。
Vigenere < Substitution < SimpleCipher のようなものですか? キーはどうですか?一部の置換キーは使用前に圧縮されます (「ARABESQUE」は「ARBESQUE」になります) が、ほとんどの移調キーはそうではありません。
現在、私は非常に基本的な設計ドキュメント( basicと言いました) を持っていますが、考えてみると、満足のいく方法を見つけることができないようです。
実装は Ruby で行いますが、設計で多重継承を使用する必要がない限り、それは Ruby 自体に関するものではありません。
ここMercurialでの概念実証(まだ実行可能ではなく、おそらく間違っている) 。