Answers:
专注于您的底层文件系统而不是AES属性。以下是MS的列表,其中包含不同文件系统/版本下不同卷大小的默认分配单元。您将无法实现密码块大小与文件系统分配单元大小之间的奇偶校验。实际上,尝试这样做可能会使您的加密在逐个文件的基础上效率降低,除非您的文件非常小。
群集(分配单元)大小实际上与加密几乎没有任何关系 - 您与非加密虚拟磁盘存在完全相同的问题。
无论如何,引用TrueCrypt文档(强调我的):
“ 群集大小
群集是一个分配单位。例如,在FAT文件系统上为一个字节的文件分配一个集群。当文件超出群集边界时,将分配另一个群集。从理论上讲,这意味着群集大小越大,浪费的磁盘空间就越大; 但是,性能越好。如果您不知道要使用哪个值,请使用默认值。“
无论如何,您几乎肯定希望选择与存储TrueCrypt容器的磁盘相同的簇大小,或者可能是偶数倍或其中的一小部分,以便TrueCrypt卷中的集群与底层文件系统上的集群对齐(因此可能与它存储在实际磁盘上的扇区有关)。
除此之外,它基本上只是一个速度/空间权衡。细节会有所不同,具体取决于您使用的文件系统和要存储的文件类型(经验法则:大文件→大型集群,大量小文件→小型集群),但通常默认值应该没问题。
应根据物理介质的扇区大小和文件系统中文件的大小来选择簇大小。由于笔式驱动器是闪存,它使用块和页而不是扇区。
闪存块通常为16KiB或128KiB,页面大小为512B或2048B。较大/较小的工艺闪存芯片使用大块尺寸。因此,可以安全地假设闪存上可接受任何典型的NTFS簇大小,大多数情况下最高可达16KB。闪存是以块为单位写入的,因此除非文件很少被修改或者大小足够大,否则不应选择大于块大小的簇大小。
在讨论文件系统的内容时会更复杂。没有标准做法,我根据我期望的文件类型和它们的平均大小使用设置值。
对于NTFS,4KiB是大型磁盘最常见的,但是当文件很大时会浪费,比如视频文件和高比特率音频。文件系统需要跟踪每个文件使用哪些集群,因此16GiB视频文件在文件表中将有4194304个集群条目。64KiB群集文件系统上的相同文件只需要262144个条目。如果您只期望很少更改的大型文件,请选择可能的最大簇大小。如果文件很小或经常修改,2KiB和16KiB之间是合适的范围。
对于exFAT,32KiB是外部闪存设备最常见的。exFAT在设计时考虑了闪存,32KiB适用于大多数用途,除了较大的不经常修改的文件,它们应该使用更大的集群。此文件系统是新的,并且操作系统兼容性有限。
使用磁盘加密软件与群集大小无关,因为密码块大小小于可用的最小群集大小。
使用磁盘加密软件有很多相关性,有些芯片可以一次读/写32KiB,或者其他大小,无论文件系统是什么簇大小; 磁盘加密软件使用长读/写,就像预加载缓存一样。
可怜的部分是他们中的大部分没有告知这一点,使用低级扫描仪,我看到VeraCrypt使用32KiB读/写操作(在某些Linux上),而文件系统是Ext4(只允许4kiB集群),所以第一次读取了第八次超过非加密,但接下来的7个contiguos读取几乎是瞬时的(也就是说,通过第一次读取缓存)。
所以,是的,使用磁盘加密软件有很多相关性。
我希望我可以将Ext4簇大小设置为32KiB,随着4KiB随机读取速度会快得多,因为VeraCrypt总是读取32KiB,随机4KiB读取浪费了28KiB读取。
请记住,许多加密工具(大多数是完整磁盘)使用大块来读/写,这对于secuential非常有用,但随机可怕。
而且Linux自带的磁盘缓存(预读)也很重要且相关,加密时也会对性能产生负面影响(也就是非加密时)......所有这些都取决于你如何访问数据。
我遵循这个规则:系统盘4KiB非条纹,128Kib如果条纹(大多数如果是SSD); 数据磁盘从32KiB到128KiB,取决于小文件与大文件的比例; 我总是在五种不同的媒体上有五个副本,我手动同步,不再同时连接两次。
警告:AES已损坏(至少高达4096位)。