zip圧縮の利点はサイズが小さくなるだけじゃないって知っていた?
はじめに
ファイルの圧縮で一番有名なのはzip圧縮でしょう。
他にも有名な圧縮方式として、.rar
や、.7z
、.gzip
などがあります(個人的意見)
圧縮すると表現するのですから、圧縮する理由はファイルサイズを小さくするだけだと思ったら大間違いです。
圧縮のほかの利点は、
- パスワードをかけることができる
- シーケンシャルなファイルになる
- サイズの大きいファイルを小分けにできる
があります
この記事では、これらについて紹介しようと思います。
なお、今回は7zipというソフトを使用して圧縮していくことにします。
利点1 パスワードをかけることができる
ファイルを圧縮する利点に、パスワードをかけることができるというものがあります。
このように、展開する際にパスワードを入力しなければいけなくなり、万が一外部にファイルが流出してもある程度安全にすることができます。
7zipで行う際は、暗号化の部分でできます。
しかし、zip圧縮に関しては、2つ落とし穴があります。
落とし穴1 使用するパスワード
いくらパスワードをかけても、パスワードによっては安全ではなくなります。
2021年で一番使われた危険なパスワード一覧は以下です。
「password」や「123456」などのパスワードは推測されやすく、1sでパスワード特定できるようです。
落とし穴2 暗号化方式
圧縮時にパスワードをかけるとは、中身を暗号化するということです。
その暗号化の方式には複数あり、特にzip圧縮ではデフォルトで安全性が低いという大きな落とし穴があります。
暗号化方式で有名なのは、zip圧縮でデフォルトの「ZipCrypto」と、現在最強方式の「AES256」があります。
結論から書くと、7zipなどのソフトを使ってAES256を使いましょう。
ZipCrypto
前者のZipCryptoについては、
ZipCryptoには様々な問題点があるが、鍵長については96ビットしかない欠点を有する。
どんなに長いパスワードを設定したところで実質的な強度は96ビット以下であり、長いパスワードを設定しても、それより短い他のパスワードで復号できてしまう可能性がある。
という安全性が低いという問題があります。
なので、ZipCryptoでパスワードをかけてzip圧縮したファイルをメールで送ってそのあとパスワードを後から別のメールで送るというPPAPをとっても、zipファイルを総当たり攻撃で解凍することができるという問題があります。
(そもそもzipファイルを送った方法と同じ方法でパスワードを送ることがなぜ安全なのか理解できませんし、zip圧縮することでウイルスソフトをすり抜けてしまうという問題もあるみたいなので根本的な問題はあるみたいですが。)
AES256
ではzip圧縮時にAES256で暗号化するとどうでしょうか。
7zipなどのソフトを使用すればzipファイルにAES256の暗号化をすることができます。
しかし、Unixのunzipコマンドが対応していなく、windowsの標準の展開も対応していません。
そのため、7zipなどのソフトを使用しなければいけないという問題があります。
利点2 シーケンシャルになる
圧縮の利点として、複数ファイルをまとめて1つのファイルにするため、シーケンシャルにファイルをリード・ライトすることができて転送速度が速くなるというメリットがあります。
ファイルの読み書きの仕組み
少し間違いがあるかもしれませんが、説明します。
パソコンではファイルはHDDかSSDに保存されます。
保存の際、ファイルが物理的に01のデータとして書き込まれている場所Aと、その場所を記したファイルBの2つがあります。
データを読み込んだり書き込む際には、まずBにアクセスして保存場所を知り、その後Aの場所で物理的にデータを読み書きします。
BUFFALOより引用
アクセス方法
大きなファイルを読み書きする際は、物理的に連続した場所でデータを読み書き書き込みます。これをシーケンシャルアクセスといいます。
対して複数ファイルを読み書きする際は、ばらばらの場所にあるファイルを読み書きします。これをランダムアクセスといいます。
画像を見てもわかるように、シーケンシャルアクセスでは一回場所を知れば連続して読み書きできるので速度が速いです。
対してランダムアクセスでは、ファイルごとに場所を探し、ファイルを読み書きし、またファイルを探して…としなければいけないため、速度が遅いです。
sandiskより引用
HDD、SSDの速度
SSD、HDDはシーケンシャルアクセスとランダムアクセスで速度の差が大きく、特にHDDで顕著です。
下の画像はHDD、SataSSD、NVMeSSDの順で表示しています。
見方は、画像内の上1行がシーケンシャル、下3行がランダムアクセスで下に行くほどファイルサイズが小さくランダムアクセス性能が試されます。そして左の列がリード、右の列がウライトに対応しています。
HDDではシーケンシャルアクセスはランダムアクセスの170~340倍速いことが分かります。
比較的早いSSDでも10倍以上速いです。
詳しくはこちらの記事をご覧ください。
まとめ
よって、ファイルのバックアップなどで大量のファイルを転送する際は、7zipなどの圧縮ソフトを使用し、元のHDDのファイルをまとめて無圧縮で圧縮し、転送先のHDDに直接保存することで高速にファイルを転送できます。
(もっとも、保存先で中身を見る際には解凍に時間がかかりますが。)
利点3 サイズの大きいファイルを小分けにできる
メールで大きなファイルを送るときなどに、1回に遅れる容量制限に引っかかってしまうことがありますよね。
そんな時に、zip圧縮で分割圧縮することでファイルサイズが小さい複数ファイルに分割することができます。
分割された一つ一つのzipファイルだけでは一部しか展開できませんが、全部集めて展開することで元のファイルに戻すことが可能です。
容量が限られているDVDやBDなどに記録する際にも有効です。
7zipでは分割ボリュームサイズを指定することで分割圧縮することができます。
注意 圧縮してもファイルサイズが変わらないことある
zip圧縮してもほとんどファイルサイズが変わらないことがあります。
その原因は圧縮するファイルが既に圧縮されているからです。
非可逆圧縮
画像だったらjpg
、動画だったらmp4
、音楽ならmp3
などのファイルは、すでに元のファイルを非可逆圧縮したものなので、zip圧縮しても小さくなりません。
可逆圧縮
@ayatty さんの指摘がありましたが、
可逆圧縮したファイル、例えば画像ではpng
、音楽ならflac
などのファイルも、圧縮済みなのでzip圧縮をしてもほとんどサイズは変わりません。
非圧縮
逆に非圧縮のbmp
やavi
、wav
、テキストファイルのtxt
、exe
ファイル、などはzip圧縮することでファイルサイズを半分以下にすることが可能です。
@ayatty さんの指摘がありましたが、
.avi
ファイルは未圧縮のものと、コーデックによって可逆圧縮、非可逆圧縮したものがあります。
もちろん、未圧縮のものに関してはzip圧縮でファイルが小さくなると考えられます。
しかし、私の環境で可逆圧縮コーデックの一つであるUt Video Codec
で保存されたavi
ファイルをzip圧縮したところ、約半分のサイズになりました。
これはおそらく、Ut Video Codec
での圧縮時に圧縮率優先(Predict median)
とデコード速度優先(Predict left)
の設定があるため、後者の設定のファイルだったと考えられます。
未圧縮、可逆圧縮、非可逆圧縮のavi
ファイルのどれかなのかはわからないため、とりあえずavi
フィルはzip圧縮をしてみることをおすすめします。
office
@ayatty さんの指摘で気が付きましたが、
officeのファイルに関しては、古いdoc
、xls
、ppt
に関しては非圧縮ファイルなのでzip圧縮することでファイルサイズを小さくすることができます。
しかし、比較的新しく、現行のdocs
、xlsx
、pptx
に関しては、すでに内部ではzip圧縮をしたファイルなので、新たにzip圧縮してもファイルサイズはほとんど変わりません。
圧縮方法の種類
今までzipファイルについて主に説明してきました。
しかし圧縮方法は他にも山ほどあり、選ぶ際には圧縮率と普及率の2つが重要になってきます。
個人的にはzip
以外には.rar
、7z
、gzip
をよく見かけるかなと思います。
.zip
は普及しているのでどこでも展開圧縮できるけれど、圧縮率が低く、4GB以上のファイルは圧縮できず、安全性に難ありというイメージ。
.rar
はよく配布されていて、圧縮率が高いですが、圧縮には有料ソフトWinRAR(実質無料)が必要という問題があります。(展開は7zipなどほかの無料ソフトで可能)
.7z
は圧縮率が高く、圧縮展開は無料ソフト(7zip)でできて、個人的によく使っています。
.gzip
はlinuxで標準の圧縮方式で、圧縮率等はzipとあまり変わらないそうです。
他にも.lzh
や.cab
など様々な圧縮方法がありますが、詳しくはこちらの記事をご覧ください。
まとめ
圧縮に関する意外なメリットや種類について紹介してきました。
個人的にまとめると、
- 安全性は低くていいから、簡単に展開してほしいなら
.zip
- それ以外ならとりあえず
.7z
- 圧縮ソフトは7zip
という感じです。
Author And Source
この問題について(zip圧縮の利点はサイズが小さくなるだけじゃないって知っていた?), 我々は、より多くの情報をここで見つけました https://qiita.com/yuki_2020/items/8f227c54c077edc40c14著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .