企業間のファイルのやり取りにZIPファイルの暗号化がされていることが多いのですが、その暗号は意味がなかったり、弱かったり、余計にセキュリティリスクが高くなっています。ZIPの暗号化が使えないことを証明するにはパスワードを解析するのが一番です。 パスワードが解析できるなら、もうあとからパスワードを送る必要はないのです。 用意するもの Windows PC Windows10を使いました。 GPU できる限り早いやつ ノートPCなので、外付けGPUケースにThunderbolt3でGPUを接続しています。 GTX 2080とケースで 10万円ぐらいかかっています。 CUDA Toolkit あらかじめ入れておきましょう。 hashcat hashcatのWindows版で公式サイトからダウンロードしたもので、バージョンが5.1.0の場合は古いので対応していません。 Windows版のJohn
誰にも見られたくないファイルや、仕事などで厳重に管理しなければならないデータがある場合、通常の保存方法では誰かに情報を盗み取られる心配がつきまといます。無料で使える暗号化仮想ドライブ作成アプリ「VeraCrypt」を使えばパスワードを入力しないと中身を閲覧できない仮想ドライブを作成したり、ストレージを丸ごと暗号化したりできるとのことなので、実際にVeraCryptをインストールして暗号化する手順をまとめてみました。 VeraCrypt - Free Open source disk encryption with strong security for the Paranoid https://www.veracrypt.fr/en/Home.html 目次: ◆1:VeraCryptのインストール手順 ◆2:秘密のファイルをパスワードで保護するための「ファイルコンテナ」を作成する手順 ◆
暗号解読 | サイモン・シン | Amazon サイモン・シンの「暗号解読」を読んでいたら、エニグマの仕組みについて説明があり、意外と実装できそうだったので作ってみた。 ソースコードは GitHub にあげています。 ※以降、識別がしやすいように平文は小文字、暗号文は大文字で表記している 単一換字式暗号 エニグマは、キーボードで入力された1文字を別の1文字に変換して暗号化する。 このように入力された文字を別の文字に変換する暗号を換字式暗号という。 同じ換字式暗号としては、シーザー暗号が有名。 シーザー暗号では、文字を一定数だけずらすことで暗号化する。 たとえば、3文字ずらすシーザー暗号では、「a -> X」「b -> Y」「c -> Z」「d -> A」のように文字を変換する。 3文字ずらすシーザー暗号の変換表 変換表が一種類しか存在しないので、シーザー暗号のような暗号は単一換字式暗号と呼
はじめに 既出のネタですが、自分なりに調べて理解したことを書きます。 ここでは、暗号化やAESがなんであるかについては説明しませんし、説明できるほど詳しくもありません。 もし間違っている点があれば、コメントで指摘していただければ適宜修正致します。 動作テスト環境 pycrypto(外部ライブラリ)を使用していますので、予めpipなどでインストールしておいてください。 OS: Arch Linux (5.1.2-arch1-1-ARCH) 言語: Python 3.7.3 ライブラリ: pycrypto 2.6.1 ソースコード my_aes.py pythonのコードからインポートして使うためのファイルです。 encrypt.py コマンドラインツール: 標準入力からデータを受け取り、標準出力から暗号化されたデータを出力します。 decrypt.py コマンドラインツール: 標準入力から暗
こんにちは。インターン生の春田です。 今回は基本的な内容ですが、ブロックチェーンで「信用」を担保している「公開鍵暗号方式」について説明していきます。 学部の卒論の定期発表で、IT技術に馴染みのないゼミ生や教授に説明した時に使ったレジュメが元になっています。 ※(2018/6/4 改訂) ご指摘をいただき、一部加筆修正しています。修正箇所が多く、読みづらくなってしまうので、改訂箇所はまとめて一番下の節で解説しています。 公開鍵暗号方式 公開鍵暗号方式 は、暗号化技術の一つです。公開鍵暗号方式は、 秘密鍵(Private Key) と 公開鍵(Public Key) という、2種類の対になる鍵のペアで実装されています。ここでいう「鍵」というのは、人間がわかりやすく理解するために抽象化された概念であり、実際には複雑な数字の羅列からできています。 例えば、AさんがBさんに機密情報ファイルをメールで
ハッシュとは、平文から固定長の疑似乱数を生成する演算手法。 暗号化とは、第3者に内容を知られないように、規則に従ってデータを変換すること。 Node.jsでの暗号化とハッシュ モジュールの読み込み Node.jsをインストールすれば、cryptoモジュールが使えます。 次の様にモジュールを読み込みます。
MOONGIFTはオープンソース・ソフトウェアを紹介するブログです。2021年07月16日で更新停止しました もしあなたがスパイで、本国に安全にメッセージを送らないといけないとしよう(そんなシチュエーションがあるかどうかはさておき)。メッセージはテキストだけでなく、文字装飾がないと分からないものだったとしたら、HTMLで送るのが良さそうだ。しかし素のHTMLではネットワークをモニタリングされていたら読まれてしまうかも知れない(そんなシチュエーションがあるかどうかはさておき)。 そんな時に使ってみたいのがStatiCryptになる。暗号化したHTMLファイルを生成するソフトウェアだ。 StatiCryptの使い方 HTMLの作成画面になります。一緒に暗号化キーを決めます。 暗号化した内容は下にあります。これをダウンロードして相手に送ります。 暗号化されたHTMLファイルを開いたところ。 パス
アルファベット順にn文字ずらした文字列を生成する、いわゆるシーザー暗号(Caesar cipher)。 これをLinuxコンソール上でワンライナーで作成させるには、どうすればよいのだろう?と思ったので、少し調べてみた。 とりあえず、以下のようにコマンドを実行することでアルファベットの小文字を任意の数ずらすことが可能だ。 (○にずらす数を入れる) コマンド | tr $(printf %○s | tr ' ' '.' | tac)\a-z a-za-z # アルファベットをずらす コマンド | tr a-z $(printf %○s | tr ' ' '.')\a-z # ずらしたのを戻す [root@BS-PUB-CENT7-01 ~]# echo abcdefg | tr $(printf %1s | tr ' ' '.' | tac)\a-z a-za-z bcdefgh [root@
Androidのアプリで、tokenやユーザの個人情報などの秘匿情報をセキュアに保持するために、Android Keystore を使って暗号化してShared preferenceやsqliteに保持する簡単なコードサンプル。 Android Keystore System Android Keystore Systemを使って情報を暗号化して保持する手順は以下のようになる。 Android Keystoreのロード mKeyStore = KeyStore.getInstance("AndroidKeyStore"); mKeyStore.load(null); KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance( KeyProperties.KEY_ALGORITHM_RSA, KEY_PROVIDER);
import base64 from Crypto import Random from Crypto.Cipher import AES class AESCipher(object): def __init__(self, key, block_size=32): self.bs = block_size if len(key) >= len(str(block_size)): self.key = key[:block_size] else: self.key = self._pad(key) def encrypt(self, raw): raw = self._pad(raw) iv = Random.new().read(AES.block_size) cipher = AES.new(self.key, AES.MODE_CBC, iv) return base64.b64e
PyCryptoを使うとAESやRSAなどで暗号化、復号できる インストール方法1 (READMEファイルに書いてある) PyCryptoからファイルをダウンロードし展開する 展開したディレクトリに移動する $ cd /home/yoshi/download/pycrypto-2.0.1 ビルドする $ python setup.py build インストールする $ sudo python setup.py install 動くかテストする $ python test.py インストール方法2 $ sudo apt-get install python-crypto AESとDESで暗号化 # -*- coding: utf-8 -*- import Crypto.Cipher.AES # キーは16, 24, 32バイトの長さでなければならない obj = Crypto.Cipher.
概要 Pythonで文字列の暗号化を行う場合は、Python Cryptography Toolkitを利用すると簡単に実装ができます。 Python Cryptography ToolkitはGoogle App Engineでもサポートされています。 http://www.amk.ca/python/code/crypto.html http://code.google.com/intl/ja/appengine/docs/python/tools/libraries.html#PyCrypto この記事ではAES-DES,RSAの実装について説明したいと思います。 始めに注意 Google App Engineのサーバに下記のプログラムを配布すれば利用ができますが、 localの場合は最初に http://www.amk.ca/python/code/crypto.html からファ
こんにちは,yaitaimo です. この記事は CAMPHOR- Advent Calendar 2015 の3日目の記事です. RSA 公開鍵暗号は,一度触れて見たがよくわからなかった,という人も居るのでは無いでしょうか.今回はそんな皆さんのために,数学的に一番簡単な筋をたどって,一連の流れを説明したいと思います. 納得感を持って読み終わっていただけたら幸いです. Python 3 を使います. 1. RSA 公開鍵暗号とは 公開鍵暗号は,暗号化と復号に同じ鍵を用いる共通鍵暗号と違い,世界に公開する公開鍵と自分しか知らない秘密鍵の2つの鍵を用いる. この2つの鍵は, 公開鍵で暗号化したものは,秘密鍵でしか復号できない 秘密鍵で暗号化したものは,公開鍵でしか復号できない という性質を持っている. これをうまく利用することで,秘密情報の伝達や認証を行うことが出来る. 今回はこの内の秘密情報
最近マスタリングTCP/IP SSL/TLS編や暗号技術入門を読んでいた.理解を深めるためにGo言語で標準のcryptoパッケージを触り/実装を読みながら読んだ. cryptoパッケージは他の標準パッケージと同様に素晴らしい.Go言語にはどのような暗号化手法が実装されているのか実例を含めてざっとまとめる.なお本文に書ききれなかったものを含め全ての実装例はtcnksm/go-cryptoにある. 共通鍵暗号 まずは共通鍵暗号をみる.共通鍵暗号は暗号化と復号化に同じ鍵を用いる暗号化方式である.共通鍵暗号はブロック暗号とストリーム暗号の2種類に分けることができる.ブロック暗号は特定の長さ単位で暗号化を行う方式であり,ストリーム暗号はデータの流れを順次処理していく方式である. Go言語にはブロック暗号としてDES(Data Encryption Standard),DESを繰り返すtriple-D
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く