LoginSignup
0

More than 3 years have passed since last update.

posted at

updated at

符号化の検討(暗号化,復号化)

こんにちは。フリーランスの永田です。

年末で飲み会もあり、本日は、仕事、個人のgithubのpush、qiitaの記事、忘年会とスケジュールがぎっしり埋まっているので、休憩時間に今回の記事を書かせていただいています。
その前に最近は、勉強会に積極的に参加させていただいています。
今週も複数の勉強会に出席しました。

昨日,12月7日はメルカリの忘年会,Swiftに参加させtいただきました。
豪華なイス、美味しい食事、共に好きなプログラムということで、楽しかったです。

なるべく、早めに仕事のプログラムを実装したかったので、懇親会は1次会までにして、寝落ちするまで、検討を進めて、本日に挑みました。

ハマればqiitaもかけない。githubもpushできない。忘年会もいけないなど、己の実力勝負になります。
34歳 フリーランス Swift3年目、、、幕の内一歩のデンプシーロールのイメージ

徹底的に毎日、鍛え上げるしか道はないんです。

ということで、話は逸れましたが、符号化の検討を進めて行きます。

符号化とは

別の規則にのっとった異なるデジタルデータに変換、圧縮すること。

今回の目的

Swift4,5にあたり 符号化して、暗号化をオリジナルでできないものか?
という想いでした。

理由はほとんど、暗号化までの実装がライブラリーに頼ったものです。

しかし、認証系、セキュリティーのカテゴリーでは、非常に重要な部分です。
いつなん時、ライブラリーの機能が使えなくなるかもしれません。
(多分使える確率の方が、圧倒的に高いと思いますが、、、、)

実装をする前に、実装する簡単な手順を書き残すというものになります。

単純な手順から、簡単な図を書き、具体的にどのように実装するか?イメージを高めていきます。(実施後図もサイドアップデートします。)

そして、実際の実装は、23日もcocoa勉強会でも同じ項目を記載していますので、
実装レベルに上げていきたいと思います。

 検討内容

暗号化Flow

AES-256,AES128 ー> 適当な256か128ビット長の鍵用意

鍵をエンコードし、さらにバイト列に変換

エンコードの方は、
Base64文字列にエンコードなど。
ここは実装仕様によって型変換を取り決める。

復号化Flow

復号化とは、元のデータに戻すこです。

サーバーはSakuraサーバーを使用します。アプリ側で、暗号化、復号化処理を実装します。

サーバーには、パスワードを送信します。

iosから受信したパスワードを称号して、合っていれば鍵を開けるios側に送信します。

まとめ

仕様がはっきりしていない段階でも検討という部分で仕様が可能かどうか。期間はどれくらいかなどの疑問が生まれます。

その一つ一つを検討段階でタスク化したり、実際に形にして、仕様=>設計=>実装と進めていける部分もありますので、検討能力が高いと、上手くいきやすい部分があると考えました。

繰り返しになりますが、23日のcocoaでの記事で、実装レベルまで上げていきたいと思うます。

貴重なお時間をお読みくださいまして、誠にありがとうございます。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0