ZIP (ファイルフォーマット)
zip アーカイブアイコンは The Unarchiver のアイコンセットを使用しています。 |
|
| 拡張子 | .zip |
|---|---|
| MIME Type | |
| UTI | com.pkware.zip-archive |
| マジックナンバー | PK\003\004PK\005\006(空のアーカイブ)PK\007\008(またがったアーカイブ) |
| 開発者 | フィル・カッツ, PKWARE |
| 種別 | データ圧縮 |
| 拡張 | JAR (EAR, RAR (Java), WAR) Office Open XML (Microsoft) OpenDocument (ODF) XPI (Mozilla 拡張) |
| 国際標準 | PKWARE が提供する APPNOTE |
ZIP (ジップ) は、データ圧縮やアーカイブのフォーマット。パーソナルコンピュータでは一般的なフォーマットである[1]。
目次 |
概要 [編集]
ZIPファイルフォーマット(以下ZIPフォーマット、またはZIP)は複数のファイルを一つのファイルとしてまとめて取り扱うアーカイブフォーマットであり、1つ以上のファイルが格納されているものである。必要に応じて各種ある圧縮アルゴリズムを選択・使用し、ファイルサイズを圧縮して格納することも可能である。
ZIPフォーマットは1989年にフィル・カッツが考案したもので、トム・ヘンダーソンが考案したそれまでのARCフォーマットに置き換わるものとして、PKWAREのPKZIPユーティリティ [2]に実装された。 ZIPフォーマットは現在多くのユーティリティによってサポートされている(ファイルアーカイバのリストを参照)。オペレーションシステムでのサポートとしては、マイクロソフトが1998年以降のWindowsオペレーティングシステムの各バージョンに"圧縮フォルダ" という名前でZIPの機能を組み込んでいるほか、アップル社もMac OS X 10.3以降に他の圧縮フォーマットも含めてZIPの機能を組み込んでいる。
ZIPファイルは一般的に “.zip” か “.ZIP” といった拡張子が付けられる。MIMEタイプはapplication/zip。ZIPフォーマットは、圧縮伸長を主目的としない多くのアプリケーションでも使用されているが、その際、拡張子には個々のアプリケーション固有に“.zip”とは異なる名前が用いられていることが多い。例えば、Java Archiveの拡張子は“.jar”、伺か用アーカイブファイルの拡張子は“.nar”であるが、これらのフォーマットの実態はZIPフォーマットである。他の具体例については「#ソフトにおける固有の拡張子」節を参照のこと。
歴史 [編集]
"zip" ("速さ"を意味する) という名前はフィル・カッツの友人であるロバート・マホーニーの提案によるものであり、従来から有るARCやその他の圧縮フォーマットの圧縮時間よりも、自分たちのプロダクトの方が速いということをほのめかすという意図を持っていた。
.ZIPファイルフォーマット仕様は、PKZIP0.9のパッケージに同梱されていた "APPNOTE.TXT"で初めて公開された。
ZIPフォーマットはオープンフォーマットとしてパブリックドメインでリリースされたものであり、ZIPフォーマットは誰しもが自由に利用でき、個人、団体、組織、あらゆる形態の利用において法的にもモラル的にも全くは制約はない[2]。
PKWAREもまた基本フォーマットをパブリックドメインとしており、誰でも.ZIPファイルを扱うアプリケーションを開発することができる。これは1988年に起こった(アメリカでの)民事訴訟の直接的な結果により導ける結論である[3][4]。同じ見解がFOSS Info-ZIPバージョンのプロダクトに付属するUNIX/LINUXドキュメント内でも見られる。そのドキュメントではzipファイルフォーマット、圧縮フォーマット、.ZIPの拡張子やファイルフォーマットへの小さな変更をパブリックドメインに置いたフィル・カッツへへの感謝の念を示している。
しかしながらPKWAREのサイトにあるAPPNOTE.TXTの最新バージョンには、「しかし、現在の APPNOTEに記載されている特定の技術的性質を持つプロダクトの実装や利用に、強力な暗号化、パッチ、または PKWARE からライセンスを要求される拡張されたテープ操作が含まれている。そのライセンスに関しては PKWAREと連絡を取ってください。」と記されている。
起源 [編集]
詳細は「 フィル・カッツ」を参照
ZIPファイルフォーマットはPKWAREのフィル・カッツが考案し、PKZIPで実装された。ちなみにカッツは以前に「PKXARC」なるアーカイブ・ユーティリティーを公開していたが、システム・エンハンス・アソシエイツ社のARCというユーティリティの著作権を著しく侵害しているとして民事訴訟を起こされている。
よく似た名前のフォーマット [編集]
名前の一部に "zip" という名前を使った標準化仕様やフォーマットがたくさんある。フィル・カッツはどんなアーカイブ種別でも "zip" という名前を使って良いと表明した[要出典]。同じ Deflate 圧縮アルゴリズムを使用していながら、ヘッダー・フッターの異なる物としては、gzip (RFC 1952) や zlib (RFC 1950) などがある。その他、よく似た名前の異なるファイルフォーマットや圧縮アルゴリズムとして 7z、bzip2、rzip などがある。
バージョン履歴 [編集]
.ZIP ファイルフォーマット仕様にはバージョン番号がある。しかし、それは必ずしも PKZIP ツールのバージョン番号とは対応せず、特に PKZIP バージョン 6 以降がそれに該当する。PKWARE は、 PKZIP 製品が先進的な機能を利用してアーカイブを展開できるように予備的な機能を幾度も追加している。しかし、そのようなアーカイブを作成する PKWARE 仕様は PKZIP の次の主要なリリースまで公開されない。他の会社や組織は自分たちのペースで PKWARE の仕様をサポートしている。
PKWARE 仕様による各バージョンの主な機能は以下の通り。
- 2.0: ファイルエントリを Deflate で圧縮可能となった。
- 4.5: 64 ビット ZIP フォーマットが記載された。
- 5.0: DES, Triple DES, RC2, RC4 が暗号化のためにサポートした。
- 5.2: RC2-64 を暗号化のためにサポートした。
- 6.1: 承認されたストレージについて記載した。
- 6.2.0: セントラルディレクトリの暗号化について記載した。
- 6.3.0: Unicode (UTF-8) ファイル名のストレージについて記載した。サポートされるハッシュ、圧縮、暗号化アルゴリズムが追加された。
- 6.3.1: SHA-256/384/512 の標準的なハッシュ値に訂正した。
- 6.3.2: 圧縮メソッド 97 (WavPack) について記載した。
WinZip のバージョン 12.1 から Deflate よりも新しい圧縮メソッド、特に BZip や LZMA、PPMd、Jpeg、Wavpack のメソッドを使用したファイルの拡張子に .zipx が使用されている。Jpeg と WavPack は "最適メソッド" 圧縮が選択されたときに適切なファイル種別に対して適用されている[3][4]。
標準化 [編集]
2010年4月 ISO/IEC JTC 1 で、ZIP 互換の ISO/IEC の国際標準フォーマットを作成するために開始されるプロジェクトを決めるための投票が行われた[5]。「ドキュメントパッケージング」という表題で提案されたプロジェクトは OpenDocument, Office Open XML や EPUB を含む既存の標準規格の利用に適した ZIP 互換の 最小圧縮アーカイブフォーマット と考えられる。
現在の ZIP フォーマットは オープンフォーマット の要求仕様にあわないことがある。それは 目に見える形で公開されたコミュニティ駆動開発 を通して開発されていないからである。オープンな産業機構 や 標準化団体が賛同してメンテナンスされている ものでもない。現在の ZIP フォーマットの一部は フリー なファイルフォーマットの要求仕様にあっていない。誰もが ZIP フォーマットを、如何なる目的であっても金銭的な負担がなく利用できるようにするため、著作権、特許、商標などの制約がない。 [5] PKWARE サイトにある最新の資料は、著作権表示があるが、フォーマット仕様 とその機能拡張がパブリックドメインに置かれていることを認めている。[6]
技術的な情報 [編集]
ZIP は複数のファイルを格納するシンプルなアーカイブフォーマットである。圧縮は zip アーカイブのオプションであり、圧縮が行われる場合はファイル単位に圧縮される。
ZIP は 32 ビットの CRC アルゴリズムを使用し、データの破損に備えて優れた保護機構を提供するためにアーカイブのディレクトリ構造のコピーを2つ持っている。
構造 [編集]
ZIP ファイルはファイルの最後に置かれる セントラルディレクトリ の存在によって認識される。この仕組みにより、セントラルディレクトリの後ろに新たなファイルを追加することが可能である。そのディレクトリは ZIP ファイルに格納されたエントリ(ファイルまたはディレクトリ)の名前のリスト、エントリに関するその他のメタデータ、ZIP ファイルへのオフセット、実際のエントリデータへのポインタを格納している。これにより、ファイルリストを参照するためにアーカイブ全体を読み込む必要がないため、アーカイブのファイルリストを比較的速く表示することが可能である。また ZIP ファイルに格納されているエントリも冗長性の確保のためにこの情報を持っている。
ディレクトリのファイルエントリの順番はそのアーカイブのファイルエントリの順番と同じであるとは限らない。
それぞれのエントリはローカルヘッダにそのファイルの情報を保持している。コメント、ファイルサイズやファイル名、オプションの "拡張" データフィールド、あるいは圧縮、あるいは暗号化されたファイルデータ等で構成されている。"拡張" フィールドは ZIP64 フォーマット、WinZip 互換の AES 暗号化、ファイル属性やより詳細な NTFS や Unix ファイルのタイムスタンプをサポートするために使用される。その他にも "拡張" フィールドを使用して機能拡張することが可能。認識しない拡張フィールドを無視するための機能をZIP ツールに組み込む必要がある。
ZIP フォーマットはファイル内の様々な構造を表すために特別な4バイトの "シグネチャ" を使用する。それぞれのファイルエントリは特別なシグネチャによって目印が付けられる。セントラルディレクトリの開始位置は違うシグネチャで表される。セントラルディレクトリ内の各エントリはまた別の特別な4バイトのシグネチャによって目印が付けられる。
ZIP の仕様には BOF もしくは EOF といった目印がない。多くの場合、ZIP ファイルの最初にあるデータが ZIP エントリであり、そのシグネチャによって簡単に認識できる。但し、ZIP ファイルは ZIP エントリを最初に置く必要はなく、ZIPの仕様においても必要としていない。
ZIP アーカイブを正しく読み込むツールは様々なフィールドやセントラルディレクトリのシグネチャを検査する必要がある。そのディレクトリのみがファイルチャンクを開始する場所を特定するので、そういったツールでエントリを検査する必要はない。ZIP フォーマットはチャンク間に他のデータを含められるのでファイルの検査処理はフォールス・ポジティブになるだろう。 [要出典]
また ZIP の仕様では複数のファイルシステムのファイルにアクセスしてアーカイブを扱うこともサポートされている。もともとは複数の 1.44 MB フロッピーディスク にアクセスすることによる、巨大な zip ファイルの格納を目的としていた。現在、この機能は分割された zip アーカイブをメールで送信したり、その他の転送方法やリムーバブルメディアで使用されている。
DOS の FAT ファイルシステム は2秒単位でタイムスタンプを保持する。ZIP ファイルはこの仕組みを模倣している。結果として ZIP アーカイブ内にあるファイルのタイムスタンプも2秒単位で丸められる。但し、より正確なタイムスタンプを格納するために拡張フィールドを使用することができる。
2007年9月に PKZIP は UTF-8 のファイル名を格納するための仕組みを含む ZIP 仕様のリビジョンをリリースした。それは最終的に ZIP に対するユニコード互換を追加するものである[6]。
ファイルヘッダ [編集]
以下のマルチバイト値はリトルエンディアンである。
| オフセット | サイズ | 内容[6] |
|---|---|---|
| 0 | 4 | ローカルファイルヘッダのシグネチャ = 0x04034b50(ビッグエンディアンでPK\003\004) |
| 4 | 2 | 展開に必要なバージョン (最小バージョン) |
| 6 | 2 | 汎用目的のビットフラグ |
| 8 | 2 | 圧縮メソッド |
| 10 | 2 | ファイルの最終変更時間 |
| 12 | 2 | ファイルの最終変更日付 |
| 14 | 4 | CRC-32 |
| 18 | 4 | 圧縮サイズ |
| 22 | 4 | 非圧縮サイズ |
| 26 | 2 | ファイル名の長さ (n) |
| 28 | 2 | 拡張フィールドの長さ (m) |
| 30 | n | ファイル名 |
| 30+n | m | 拡張フィールド |
拡張フィールドは OS に特化した属性のような様々なオプションデータを含む。それは 16 ビット ID と 16 ビット長のチャンクに分割される。
圧縮データの後ろにデータが続くときがある。汎用目的のビットフラグフィールドの 3 ビット目がセットされている場合、ヘッダの書き込み時に CRC-32 とファイルサイズが分からないことがある。そして、圧縮データの後ろに12 バイトのデータを追加する。ローカルヘッダの CRC-32 とファイルサイズのフィールドはゼロが書き込まれる。
セントラルディレクトリエントリはロールファイルヘッダを拡張したもの。
| オフセット | サイズ | 内容[6] |
|---|---|---|
| 0 | 4 | セントラルディレクトリファイルヘッダのシグネチャ = 0x02014b50(ビッグエンディアンでPK\001\002) |
| 4 | 2 | 作成されたバージョン |
| 6 | 2 | 展開に必要なバージョン (最小バージョン) |
| 8 | 2 | 汎用目的のビットフラグ |
| 10 | 2 | 圧縮メソッド |
| 12 | 2 | ファイルの最終変更時間 |
| 14 | 2 | ファイルの最終変更日付 |
| 16 | 4 | CRC-32 |
| 20 | 4 | 圧縮サイズ |
| 24 | 4 | 非圧縮サイズ |
| 28 | 2 | ファイル名の長さ (n) |
| 30 | 2 | 拡張フィールドの長さ (m) |
| 32 | 2 | ファイルコメントの長さ (k) |
| 34 | 2 | ファイルが開始するディスク番号 |
| 36 | 2 | 内部ファイル属性 |
| 38 | 4 | 外部ファイル属性 |
| 42 | 4 | ローカルファイルヘッダの相対オフセット |
| 46 | n | ファイル名 |
| 46+n | m | 拡張フィールド |
| 46+n+m | k | ファイルコメント |
全てのローカルディレクトリエントリの最後に ZIP ファイルの終わりを表すセントラルディレクトリの終端レコードが続く。
| オフセット | サイズ | 内容[6] |
|---|---|---|
| 0 | 4 | セントラルディレクトリの終端レコードのシグネチャ = 0x06054b50(ビッグエンディアンでPK\005\006) |
| 4 | 2 | このディスクの数 |
| 6 | 2 | セントラルディレクトリが開始するディスク |
| 8 | 2 | このディスク上のセントラルディレクトリレコードの数 |
| 10 | 2 | セントラルディレクトリレコードの合計数 |
| 12 | 4 | セントラルディレクトリのサイズ (バイト) |
| 16 | 4 | セントラルディレクトリの開始位置のオフセット |
| 20 | 2 | ZIP ファイルのコメントの長さ (n) |
| 22 | n | ZIP ファイルのコメント |
この順番の仕組みは ZIP ファイルをワンパスで作成することができるが、通常は最初のセントラルディレクトリを終わりまで読み込んだときに解凍される。
圧縮メソッド [編集]
現在の .ZIP ファイルフォーマット仕様では次のメソッドの詳細が記載されている。stored (無圧縮), Shrunk, Reduced (メソッド 1-4), Imploded, Tokenizing, Deflated, Deflate64, BZIP2, LZMA (EFS), WavPack, PPMd 。最も一般的な圧縮メソッドは DEFLATE で IETF RFC 1951 に記載されている。
圧縮メソッドに挙げられていても、PKWARE Data Compression Library (DCL) Imploding (old IBM TERSE), IBM TERSE (new), IBM LZ77 z Architecture (PFS) の仕様の詳細は記載されていない。
暗号化 [編集]
「#強力な暗号化についての議論」も参照
ZIP はシンプルは パスワード ベースの 共通鍵暗号 をサポートすると仕様に記載されている。但し、重大な脆弱性があることが知られている。特に ランダム数生成器 の単純な実装でも悪い結果を招くケースがあり クリブ に対して脆弱である[7]。
バージョン 5.2 以降の .ZIP ファイルフォーマット仕様には、圧縮 と 暗号化 (例えば AES) を含む新しい機能のメソッドが追加されている、と記載されている。WinZip は AES ベースの標準規格を使用し、それは 7-Zip, XCeed や DotNetZip でも使用されている。しかし、ベンダによっては他のフォーマットを使用するものである[8] PKZIP SecureZIP もまた RC2, RC4, DES, Triple DES 暗号メソッド, Digital Certificate ベースの暗号/認証 (X.509) やアーカイブヘッダ暗号化をサポートする[9]。
ZIP64 [編集]
オリジナルの ZIP フォーマットは、ZIP アーカイブ内のエントリに 65535 の制限があるのと同様に、様々なサイズ(ファイルの圧縮/非圧縮サイズ、アーカイブの合計サイズ)に 4 GiB の制限があった。仕様のバージョン 4.5 (それは特定ツールのバージョン 4.5 と同じではない) では、PKWARE はこういった制限を回避するために 16 EiB (264 バイト) まで増加させた "ZIP64" フォーマット拡張を導入した。ZIP64 サポートは新規に発生したものである。例えば、Windows XP のファイルエクスプローラーは ZIP64 をサポートしないが、 Windows Vista のエクスプローラーではサポートする。同様に DotNetZip や Perl の IO::Compress::Zip, Python の zipfile のようなライブラリは ZIP64 をサポートする。Java の組み込みモジュール java.util.zip は 2010年9月現在ではサポートしていない。今後、OpenJDK に追加されて Java 7 への同梱を予定している[10]。
長所と短所 [編集]
ZIP ファイルのようにファイルを分割して圧縮するとランダムアクセスが可能である。他のデータを読み込むことなく個々のファイルを取り出すことができる。DEFLATE 圧縮の可能性を限定するときでさえ、それぞれのファイルのために違う辞書圧縮を利用するとアーカイブ全体のサイズをより小さくできることがある。
この圧縮の手法は一般的に小さなファイルが大量にあるときのアーカイブとしては適切ではない。ZIP アーカイブフォーマットでは、個々のエントリに関する情報を持つメタデータは圧縮しない。これは、特に個々のエントリのサイズを小さくして、そのエントリ向けのメタデータのサイズを扱うようにアーカイブ可能な最大圧縮比率を設けて制限されているためである。
別の手法としては 圧縮された tar アーカイブ (.tar.gz または .tgz) が使用される。 それはファイルデータとメタデータが gzip で圧縮される1つの単位として圧縮される。この手法の欠点はランダムアクセスの効率が悪くなってしまうことである。
ZIP と他のファイルフォーマットとの組み合わせ [編集]
ZIP ファイルフォーマットにはセントラルディレクトリの後に続くファイルの最後にどんなデータでも含められるコメントがある[6]。さらに、セントラルディレクトリはアーカイブ内の各ファイルの開始位置を表すオフセットを指定するため、最初のファイルエントリへの開始位置に対してゼロ以外のオフセットをセットすることが可能である。
この仕組みにより、ZIP アーカイブの前後どちらでも任意のデータを配置できる上に ZIP アプリケーションがそのアーカイブを読み込める。この仕組みの短所は ZIP アーカイブと他のフォーマットの両方を1つのファイルに追加できるということである。ZIP アーカイブの最後か最初、もしくは中間のどの位置でも他のフォーマットを許容して任意のデータを提供することが可能。WinZip や DotNetZip がサポートする Self-extracting archives (SFX) はこの利点を活用している。そういったファイルは PKZIP AppNote.txt の仕様に準拠した .exe ファイルであり、規格に準拠した zip ツールやライブラリで読み込むことができる。
ZIP フォーマットや ZIP の亜種である JAR フォーマットの特性は、一見普通のファイルに見えるが、コンピューター内部に害を及ぼす Java クラスを隠して悪用することが出来てしまう。例えば、ウェブにアップロードされる GIF イメージがある。これは GIFAR と呼ばれる手法で Facebook のようなウェブアプリケーションに対して効率的な攻撃として知られている[11]。
実装 [編集]
多くの ZIP ツールと ZIP ライブラリは様々なプログラミング環境の上で利用できる。ライセンスは商用や オープンソース のものがある。例えば、WinZip は Windows 上で動作する有名な ZIP ツールである。他にも様々なプラットホームで WinRAR, IZarc, Info-ZIP, 7-Zip ,PeaZipや DotNetZip 等が利用できる。これらのツールのいくつかはライブラリ、またはプログラミングインタフェースを持つ。
オープンソースで開発されているライブラリの例としては GNU gzip プロジェクトや Info-ZIP がある。Java では Java Platform, Standard Edition に標準的な zip ファイルを扱う "java.util.zip" パッケージがある。Zip64File ライブラリは特別に4GBを超える巨大なファイルをサポートして、ランダムアクセスを使用して ZIP ファイルを扱う。Apache Ant ツールには Apache Software License でより完全なツールが実装されている。
.NET アプリケーションでは、Microsoft Public License [12] でソースとバイナリが利用できる DotNetZip [13] と呼ばれる無償のオープンソースライブラリがある。従来のパスワードを用いた ZIP 暗号化、WinZip 互換の AES 暗号化、ユニコード、 ZIP64、コメント、分割アーカイブ、自己解凍アーカイブといった多くの ZIP 機能をサポートする。Microsoft .NET 3.5 ランタイムライブラリは ZIP フォーマットをサポートするクラス System.IO.Packaging.Package [14] を含む。主として ISO/IEC 国際標準 Open Packaging Conventions を使用するドキュメントフォーマットのために設計されている。
ZIP フォーマットの Info-ZIP 実装は、ユーザやグループ ID、ファイルパーミッション、シンボリックリンクのような Unix ファイルシステムの機能のサポートを追加する。Apache Ant の実装は Unix パーミッションが事前に定義されたファイルを作成できる範囲に対して注意を払っている。Info-ZIP の実装も ZIP 圧縮フォーマットに組み込まれたエラー訂正機能の使用方法が分かっている。( IZarc のような)一部のプログラムはエラーがあるファイルの処理中に失敗する可能性がある。
また Info-ZIP Windows ツールも NTFS ファイルシステム パーミッションをサポートする。展開時に NTFS パーミッションを Unix パーミッションへ、もしくはその逆へ変換しようとする。これは潜在的な意図しない結果をもたらすことがある。例として、NTFS ボリューム上で実行権限を付けて作成された .exe ファイルは拒否されることなどが挙げられる。
Windows 圧縮フォルダ [編集]
マイクロソフト Windows の各バージョンは Windows 98 のためにリリースされた Plus! パック以降、エクスプローラーから ZIP 圧縮をサポートしている[15]。マイクロソフトはこの機能を "圧縮フォルダ" と呼んでいる。Windows 圧縮フォルダは全ての ZIP の機能をサポートしていない。例えば、Windows XP または Windows Vista の圧縮フォルダでは読み書きできないユニコードエントリ、ZIP64, AES 暗号化, 分割アーカイブ等がある。そのため、日本語版Windowsではファイル名をMicrosoftコードページ932でエンコードしている。また、Mac OS XのFinder(UTF-8でエンコード)で作成したアーカイブをWindowsで復元すると、ファイル名によっては文字化けする。内容には影響しない。Windows→Macでは問題ない。現在この問題に対応するhotfixが配布されている[16]。
強力な暗号化についての議論 [編集]
2003年に WinZip 9.0 パブリックベータをリリースしたとき、WinZip は独自の AES-256 暗号を導入した。それは違うファイルフォーマットを用いた新たな仕様としてドキュメントに記載された[17]。暗号の標準規格は プロプライエタリ では無いが、 PKWARE は2001年以降、PKZIP 5.0 や 6.0 では使用されていた強力な暗号化仕様 (SES) を含めるように APPNOTE.TXT を更新しなかった。WinZip の技術コンサルタント Kevin Kearney や スタッフイット プロダクトマネージャ Mathew Covington は SES を差し控えるように PKWARE を非難。これに対し、PKZIP チーフ技術オフィサーの Jim Peterson は承認に基づく暗号化規格はまだ完全ではないと主張。しかし、バージョン 4.5 の頃(PKWARE の FTP サイトで確認できる)に公開された最新の APPNOTE.TXT には、SES だけではなく、同時期に存在した PKZIP プロダクトで作成された .ZIP ファイルが用いた Deflate64, DCL Implode, BZip2 も除外された。
この欠点を克服するために PentaZip のような同時期に存在したプロダクトは違うファイルフォーマットに ZIP アーカイブを暗号化する強力な ZIP 暗号化を実装した[18]。
また別の議論では、PKWARE は2003年7月16日に安全な .ZIP ファイルを作成するために強力な暗号と .ZIP を組み合わせるための方法を記載した特許を適用した[19]。
結局 PKWARE と WinZip お互いのプロダクトをサポートすることに同意した。2004年1月21日に PKWARE は WinZip ベースの AES 互換フォーマットをサポートするとアナウンスした[20]。WinZip ベータの次のバージョンでは SES ベースの ZIP ファイルのサポートが行われた[21]。PKWARE は最終的に SES を記載した .ZIP ファイルフォーマット仕様のバージョン 5.2 を公式にリリースした。フリーソフトウェア プロジェクト 7-Zip も (その POSIX 移植された p7zip が行うことで) ZIP ファイルの AES をサポートしている。
ソフトにおける固有の拡張子 [編集]
ソフトウェアによっては、ZIP形式をデータ形式として採用しているものがある。このようなソフトウェアでは、ZIPファイルがそのソフトウェア固有の物であることを示すために専用の拡張子を定義している場合がある。その一部を以下に示す。ただし、圧縮アルゴリズムにzlibを使っているものでも、ZIP互換の格納方式を使っていないものは掲載しない。
- apk
- Android のアプリケーションアーカイブ
- docx, xlsx, pptx
- Microsoft Office 2007で新たに採用された文書フォーマット (Office Open XML)
- epub
- IDPFが提唱する電子書籍の標準フォーマット
- ipa
- iPhoneシリーズをはじめとしたiOS搭載デバイス向けのアプリケーションアーカイブ
- ipg
- iPodゲームのアーカイブファイル
- jar
- Javaのアーカイブファイル
- kmz
- Google Earthの標準ファイル形式。kmlをZIP圧縮したもの。
- nar
- 伺かのINSTALL/1.x仕様に準拠したアーカイブファイル
- odt, ods, odp, odb, odg, odf
- OpenDocumentの文書フォーマット
- smzip
- StepManiaの各種の自動インストール型パッケージファイル
- wgt
- W3C Packaged Web Apps (W3C Widgets) のパッケージファイル。Bada widget、Tizen Web application、Opera widget など。
- wsz
- Winamp用のスキンファイル
- wmz
- Windows Media Player用のスキンファイル
- xpi
- Mozilla Firefox(及びそれをベースとするNetscapeシリーズのウェブブラウザなど)やMozilla Thunderbirdなどの拡張機能(アドオン)のインストーラファイル
関連項目 [編集]
- PKZIP
- アーカイブフォーマットのリスト
- LZW 圧縮メソッド
- ファイルアーカイバの比較
- WinZip
- DEFLATE
- Implode
- Bzip2
- 7-Zip
- PeaZip
- Info-ZIP
- LHA
- CAB
- DGCA
- GCA
- RAR
- ZIPボム
- tar
参考文献 [編集]
- ^ “Jargon File - zip” (2003年12月29日). 2010年11月29日閲覧。
- ^ “Phillip Katz, Computer Software Pioneer, 37”. The New York Times. (Monday, May 1, 2000) 2009年6月14日閲覧。
- ^ “Additional Compression Methods Specification”. WinZip. Mansfield, CT: WinZip Computing, S.L (2009年5月19日). 2009年5月24日閲覧。
- ^ “What is a Zipx File?”. Winzip: Knowledgebase. Mansfield, CT: WinZip Computing, S.L (2010年8月13日). 2010年8月17日閲覧。
- ^ http://www.itscj.ipsj.or.jp/sc34/open/1414.pdf
- ^ a b c d e http://www.pkware.com/documents/casestudies/APPNOTE.TXT
- ^ Stay, Michael. "ZIP Attacks with Reduced Known Plaintext". http://math.ucr.edu/~mike/zipattacks.pdf
- ^ AES Encryption Information: Encryption Specification AE-1 and AE-2
- ^ Application Note on the .ZIP file format
- ^ Shen, Xueming (2009年4月17日). “ZIP64, The Format for > 4G Zipfile, Is Now Supported”. Xueming Shen's Blog. Sun. 2010年9月27日閲覧。
- ^ A photo that can steal your online credentials
- ^ http://www.codeplex.com/DotNetZip/license
- ^ http://www.codeplex.com/DotNetZip
- ^ http://msdn.microsoft.com/en-us/library/system.io.packaging.package.aspx
- ^ http://en.wikipedia.org/wiki/Windows_Millennium
- ^ File names are corrupted after you decompress a .zip file in Windows 7 or in Windows Server 2008 R2
- ^ WinZip - AES Encryption Information
- ^ The .zip standard splinters | InfoWorld | News | 2003-06-10 | By Lincoln Spector, PC World.com
- ^ PKWare seeks patent for .zip file format | InfoWorld | News | 2003-07-25 | By Robert McMillan, IDG News Service
- ^ Software makers patch Zip tiff - CNET News.com
- ^ http://www.theregister.co.uk/2004/01/21/zip_file_encryption_compromise_thrashed/
外部リンク [編集]
- Judgment in favor of SEA in SEA v. PKWARE and Phil Katz
- Technical specifications of the PKZIP file formats from info-ZIP [リンク切れ]
- Current file format specification from PKWARE (including many recent features that are not widely supported)
- 18 Years of ZIP format: Happy Birthday at The Data Compression News Blog
- Comparison of the performances of various methods of data compression (french)
- .NET Zip library - reads and writes ZIP archives.
- ZIP2 file format specification
- Zip Files All The Way Down
- ZIP File Quine
- Limitations of java.util.zip
- At4J - Java implementation of ZIP.
- ZipStorer: A pure C# class to compress and store files in ZIP archives
|
|||||||||||||||||