アフィン暗号についてのメモ

アフィン暗号の復号化についての情報が、検索してもすぐには見つけられなかったのでメモ。

アフィン暗号は文字 r を2つのキー a,b を用い、E(r)=(a*r+b)%N 式により暗号化、D(r)=((r-b+N*k)/a)%N 式により復号化する方法(Nは文字種数、k は(r-b+N*k)\equiv0 (mod a) を満たす正整数で、a,bは互いに素である必要がある)。


以下は小文字('a'~'z')のみを暗号・復号化する場合の実装例:

const static int N = 26;

// アフィン暗号化
char encode(const char r, const int a, const int b)
{
    if (islower(r)) {
        return ((a*(r-'a') + b) % N) + 'a';
    } else {
        return r;
    }
}

// アフィン復号化
char decode(const char r, const int a, const int b)
{
    if (islower(r)) {
        int t = (r-'a') - b;
        while (t%a != 0) {
            t += N;
        }
        return (t/a) % N + 'a';
    } else {
        return r;
    }
}

右手でのハーフシャワーができるようになった

3日ほど前から、ボールジャグリングを1日30分弱行っている。基本といえるカスケードは完璧にできるようになったが、その後、なかなか上達しないままだった。

今度は、このページを参考にしながら、地道に簡単な技からできるようにしようということで、ハーフシャワーに習得に取り組んできた。

書かれている通りにオーバーザトップの練習からはじめた。最初は当然、勝手がわからず、ボールを落としてばかりで、習得に時間がかかるかと思った。だけど、予想に反して1日でオーバーザトップのコツとつかみ、2日でハーフシャワーを行うことができた。

まだ、安定してできるとは言いがたいので、もう少し練習を続ける。それと、次のリバースカスケードに進むには、左手でもハーフシャワーをできるようにする必要があるようなので、それもやる。

久しぶりに風邪をひいた

昨日の午後あたりから鼻水が水っぽい。風邪をひいたらしい。前回にいつひいたのかは覚えていないが、だいぶ前で、半年ぐらい前だと思う。
大学に入学した当初は3カ月に1回ぐらいはひいていたが、生活のバランスを良くしたら、ひきにくくなった。
今回、風邪をひいた主な要因は寝不足だと思う。
まあ、対して症状はひどくないので、普段通りに行動している。

研究室の机の上を簡単に整理した

先週はシンポジウムに参加するために広島に行って来た。数々の研究発表等を聴いて、思うことがあるが、まだ考えが整理できていない。

考えを整理する前に、乱雑な机の上を整理した。2月末までに出す必要があった論文を書くために、資料を置いていったらいつの間にか汚くなっていた。いつか整理しなければと思いながら、そのまま約2カ月間ほど放置していた。そして、先日、「精神が安定しないのは部屋が汚いからだ」というようなことを何かで読んで、そう言われてみればそうだなと思い、ようやく整理する気分になった。

今日の整理作業は、紙の資料をいらないものといるものに分けて、いらないのを捨てただけだ。なので、いる資料内での整理はできていないので、近いうちにもう一度整理する。

浮き沈み

約4ヶ月ぶりの更新。なんだろうね、自分が大した人間ではないと認識するには充分な体験をしたと思う。

最近はネガティブに考えてしまうときと、ポジティブに考えられるときが交互にやってきて、気持ちの浮き沈みが激しく、安定していない。

今後については、5月中には何かしらの結論をだそうと思っている。今はもっと勉強したいという思いが大きく、許されるのならばその道を進みたい。

もう少しきちんとした文を書けたらな。