Java言語で学ぶデザインパターン入門 の第12章を参考にしました。 Decoratorパターンとは 本書には以下のように記載されています。 オブジェクトにどんどんデコレーションを施していくようなデザインパターン ここでいう”デコレーション”とは、プログラムで…
Java言語で学ぶデザインパターン入門 の第11章を参考にしました。 Compositeパターンとは 本書には以下のように記載されています。 容器と中身を同一視し、再帰的な構造を作るデザインパターン Compositeパターンを説明するために、コンピュータのファイルシ…
Java言語で学ぶデザインパターン入門 の第10章を参考にしました。 Strategyパターンとは 本書には以下のように記載されています。 アルゴリズムをカチッと切り替え、同じ問題を別の方法で解くのを容易にするデザインパターン "strategy”には、"戦略"という意…
Java言語で学ぶデザインパターン入門 の第9章を参考にしました。 Bridgeパターンとは 本書には以下のように記載されています。 「機能のクラス階層」と「実装のクラス階層」を橋渡しする まず、「機能のクラス階層」と「実装のクラス階層」の説明をしていき…
Java言語で学ぶデザインパターン入門 の第9章を参考にしました。 Abstract Factoryパターンとは 本書には以下のように記載されています。 部品の具体的な実装には注目せず、インターフェースに注目し、 そのインターフェースのみで部品を組立て、製品にまと…
Java言語で学ぶデザインパターン入門 の第7章を参考にしました。 Builderパターンとは 本書には以下のように記載されています。 構造を持ったインスタンスを組み上げていくデザインパターン つまり、一気に完成品を作成するのではなく、全体を構成している各…
Java言語で学ぶデザインパターン入門 の第6章を参考にしました。 Prototypeパターンとは 本書には以下のように記載されています。 クラスからインスタンスを生成するのではなく、インスタンスから別のインスタンスを作り出すデザインパターン つまり、new Ho…
Java言語で学ぶデザインパターン入門 の第5章を参考にしました。 Singleton Methodパターンとは 本書には以下のように記載されています。 インスタンスが1個しか存在しないことを保証するパターン つまり、生成するインスタンスの数を1つに制限するデザイン…
Java言語で学ぶデザインパターン入門 の第4章を参考にしました。 Factory Methodパターンとは 本書には以下のように記載されています。 インスタンス生成のための枠組みをスーパークラス側で定め、実装はサブクラスが行う つまり、前回の記事のTemplate Meth…
Java言語で学ぶデザインパターン入門 の第3章を参考にしました。 Templete Methodパターンとは 本書には以下のように記載されています。 スーパークラスで処理の枠組みを定め、サブクラスでその具体的内容を定める。 Templeteには、「雛形」という意味があり…
Java言語で学ぶデザインパターン入門 の第2章を参考にしました。 Adapterパターンとは 本書には以下のように記載されています。 「既に提供されているもの」と「必要なもの」の間のズレを埋めるようなデザインパターン Adapterの元である「adapt」という単語…
Java言語で学ぶデザインパターン入門 の第1章を参考にしました。 Iteratorパターンとは 本書には、以下のように記載されています。 何かがたくさん集まっているときに、それを順番に指し示していき、全体をスキャンする処理を行うもの。 簡単に言うと、for文…
『暗号技術のすべて』の第8章を参考にしました。 今回は、鍵の配送について書いていきます。 鍵配送とは 以前の記事で 紹介した共通鍵暗号では、事前に鍵の共有が必要となります。 その際、鍵の配送を安全に行うことはとても重要なことです。 鍵配送の方法 …
『暗号技術のすべて』の第7章を参考にしました。 ディジタル署名(電子署名)についてです。 ディジタル署名はよく「公開鍵暗号とは対称関係である」といわれますが、そうではないということを説明していきます。 ディジタル署名とは 署名とは、「本人である…
『暗号技術のすべて』の第4章を参考にしました。 初めての具体的な公開鍵暗号であるRSA暗号について書いていきます。 RSA暗号とは 1977年にリベスト、シャミア、エーデルマンによって提唱 初めての具体的な公開鍵暗号 RSA仮定の下でOW-CPA安全 数学的基礎知…
『暗号技術のすべて』の第4章を参考にしました。 この章は、公開鍵暗号について書かれています。 公開鍵暗号とは これまでに紹介したDESやAESのような共通鍵暗号は、事前に送受信者間で共通鍵を共有しなければならないという問題がありました。こうした問題…
『暗号技術のすべて』第3章を参考にしました。 共通鍵暗号のDESやAESについての章ですが、アルゴリズムは様々なサイトで詳細な説明がされているので、私が興味を持ったことのみ書いていきます。 DES Data Ecryption Standard(データ暗号化標準)の略 米国の…
バーナム暗号とは 秘密鍵を使い捨てで用いる共通鍵暗号 1917年にVernamによって、考案 1949年にShannonによって、理論的に解読不可能であることを証明 → 最強の暗号? アルゴリズム バーナム暗号の暗号化、復号には、排他的論理和という演算が用いられていま…
『暗号技術のすべて』の第3章を参考にしました。 古典暗号では、利用シーンが軍事や外交に限られていました。しかし、コンピュータやインターネットが発達した現代では、様々なシーンにおいて、顔を知らない相手とやり取りする必要があります。また、ディジ…
個人的に、暗号=エニグマという印象が強かったので、今回はエニグマについて調べていきます。 エニグマとは 第二次世界大戦でナチス・ドイツが使用 19世紀までは手作業で暗号化が行われていたが、20世紀以降は機械によって行われた → 機械式暗号 ローター(…
『暗号技術のすべて』という本の第2章を参考にしました。 古典暗号とは 暗号 古典暗号 現代暗号 『暗号技術のすべて』においては... コンピュータ誕生以前の暗号 → 古典暗号 それ以降の暗号 → 現代暗号 古典暗号の種類 ヒエログラフ シーザー暗号 コード ス…
2/9,16,17日にブロックチェーンハッカソンに参加してきました! そこで、SolidityというEthereum上で動くスマートコントラクト開発言語に初めて触れたので知識をメモしておきます。 修飾子 アクセス修飾子 アクセス修飾子 内部 継承先 外部 public ◯ ◯ ◯ ext…
昨日のブログでパスワードは ハッシュ化されて保存されていると書きました。 では、なぜ暗号化ではなく、ハッシュ化されるのでしょうか。 それは、パスワードを保存するという目的の上では、ハッシュ化の方が優れているからです。 暗号とは みんな大好きWiki…
これを読んでいるあなたも一度はパスワードを忘れて再設定をしたことがあるでしょう。「再設定なんて面倒だからパスワード教えてよ」と怒りに震えたこともあるでしょう。では、なぜパスワードを再設定しなければならないのか。それはパスワードがハッシュ化…