いろいろとネットの情報を参考にしながら、FeliCa LiteのMAC生成アルゴリズムができた。 そのとき、3DES暗号についてなんとなくわかったので、記録を残しておく。 3DESといってもいくつか細かくあるらしく、FeliCa LiteではCBCという方式を使っている。 これは、前ブロックの3DES計算結果を、次のブロックとxorする方式みたいだ。 それは、IVとか初期ベクタとか呼んでいる。 細かい実装は知らないが、1段目でDESエンコード、2段目でそれをDESデコード、3段目でそれをDESエンコードする。 1, 2, 3段目はそれぞれ別の鍵を用いるのが望ましいらしい(FeliCa Liteでは、1と3が同じ)。 鍵が3つとも同じだと、エンコード→デコード→エンコードとなり、DESエンコード1回分と同じになるという。 DESを3回やって、IVを自分でxorしてみたが、ちゃんと同じ結果にな
読み方:トリプルデス 別名:トリプルDES,3DES Triple DESとは、共通鍵暗号方式の1つであるDESで3回暗号化することで、より暗号強度を高める手法のことである。IBM社によって開発された。 手順としては、まず、鍵Aで平文を暗号化し、次に鍵Bで復号化する。この鍵Bでの復号化は、実際には鍵Bでの暗号化の逆のアルゴリズムを適用しており、平文に戻るわけではない。さらにこれに対し、鍵C(鍵Aで行う場合もある)で暗号化を行う。 こうしてできあがった暗号文は、通常のDESでいうと80~112ビット程度の暗号強度を持つと言われている。なお、2回の暗号化では、暗号強度が逆に弱まることが証明されている。
C#で3DES で暗号化・復号化してみました。 初期化ベクタとキーと2つ値が必要なのが分かりにくい所ですね。あとそれらのデータ型がなんなのかも。 using System.IO; using System.Security.Cryptography; using System.Text; namespace TEST.Common.Crypt { public class Crypt { // 鍵 // 128 ビットから 192 ビットのキー長を 64 ビット単位でサポート // つまり16バイトか24バイト // 1234567890123456 //private const string CKEY = "bPE7eIw0OZojj0XZ"; // 123456789012345678901234 private const string CKEY = "a7nH8sMrqDeNti
public ref class TripleDESCryptoServiceProvider sealed : System::Security::Cryptography::TripleDES public sealed class TripleDESCryptoServiceProvider : System.Security.Cryptography.TripleDES [System.Obsolete("Derived cryptographic types are obsolete. Use the Create method on the base type instead.", DiagnosticId="SYSLIB0021", UrlFormat="https://aka.ms/dotnet-warnings/{0}")] public sealed class Tri
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く