Thuật toán TrueCrypt nào an toàn nhất?


83

Nếu hiệu suất không đáng lo ngại, thuật toán TrueCrypt nào an toàn nhất để sử dụng?

  • AES
  • Con rắn
  • Ba DES
  • Hai con cá
  • AES-Twofish
  • AES-Twofish-Serpent
  • Con rắn-AES
  • Serpent-Twofish-AES
  • Twofish-Serpent

13
Tất cả đều an toàn, nếu không họ sẽ không có trong sản phẩm. Nhưng sử dụng AES, vì đó là tiêu chuẩn.
Ian Boyd

13
Tôi muốn nói trừ khi có một cơ quan chính phủ theo sau bạn, chất lượng mật khẩu của bạn có nhiều khả năng là một vấn đề hơn thuật toán mã hóa.
Đại tá

3
Điều đó thật kỳ lạ; Tôi có thể đã tuyên thệ tiêu đề đã hỏi đó là nhanh nhất . ಠ_ ఠ
Synetech

Câu trả lời:


37

đây là kết quả của cuộc bỏ phiếu trong vòng chung kết của cuộc thi AES:

Rijndael 86-10 = 76
Serpent 59-7   = 52
Twofish 31-21 = 10
RC6 23-37 = -14
MARS 13-83 = -70 

( http://csrc.nist.gov/archive/aes/round2/comments/20000523-msmid-2.pdf , được liên kết thông qua con rắn truecrypt , cũng đọc cái đó).

vì vậy, vì nhiều lý do, Rijndael trở thành AES, người kế thừa của DES (và 3DES).

và, chỉ vì nó xuất hiện ngày hôm nay trên news.ycombinator.com, câu chuyện về AES:

http://www.moserware.com/2009/09/stick-figure-guide-to-advified.html


62

Sử dụng TrueCrypt 7.0a, phương pháp mã hóa an toàn nhất là: Sử dụng mã hóa xếp tầng AES-Twofish-Serpent với phương thức XTS. Sử dụng thuật toán băm Whirlpool. . đã bị xâm phạm.) QUAN TRỌNG NHẤT là sử dụng mật khẩu RẤT mạnh. 20 đến 30 ký tự, chữ hoa, chữ thường, số, ký hiệu. Sử dụng trình kiểm tra mật khẩu trực tuyến của Microsoft để kiểm tra sức mạnh. Bạn cũng có thể sử dụng Keyfiles để bảo mật hơn mật khẩu của mình.

Tôi khuyên dùng AES-Twofish-Serpent so với Serpent-Twofish-AES vì bạn muốn mã hóa ngoài cùng (AES sẽ là lớp đầu tiên họ cần phá vỡ) là tiêu chuẩn nhất trong ngành. Đó là một trong những thử nghiệm nhiều nhất và đúng và được thử nghiệm nhiều nhất trong số chúng. Ngoài ra, nếu ai đó giả định rằng một tệp được mã hóa bằng AES, thì không có cách nào để thấy rằng đó là mã hóa bằng Twofish ... vì vậy họ làm tất cả công việc này để phá vỡ AES, chỉ để thấy rằng Twofish đang cản đường họ. Và sau đó một lần nữa sau Twofish, họ gặp Serpent, con thú lớn nhất trong số họ (mặc dù nó ít được sử dụng / thử nghiệm hơn AES, nhưng nó vẫn có biên độ bảo mật cao hơn AES rất nhiều)

Nếu bạn sử dụng Keyfiles, tôi khuyên bạn nên có TrueCrypt tạo 3 keyfiles cho bạn. Tạo một keyfile cho mỗi thuật toán băm mà họ cung cấp. Bạn cũng có thể thêm một số tệp .jpg và một số tệp .mp3. Tuy nhiên, tôi chắc chắn sẽ làm cho mỗi keyfile chỉ đọc.

Điều này có lẽ là quá mức cần thiết mặc dù.


2
Bạn nói sử dụng 20-30 ký tự, nhưng đó không phải là quá mức? Thậm chí 10 ký tự viết thường sẽ là 26 ^ 10 = 141.167.095.653.376 kết hợp (4 triệu năm với một lần kiểm tra mỗi giây). Quá đủ tốt chắc chắn?
Dan W

12
@Dan W: Tại một kiểm tra mỗi giây, chắc chắn. Tuy nhiên, mặc dù các phương pháp băm thay đổi rất nhiều về hiệu suất, phần cứng cấp tiêu dùng đến gần hơn rất nhiều để kiểm tra hàng tỷ mật khẩu mỗi giây. Mật khẩu chữ thường mười ký tự của bạn sẽ bị bẻ khóa trong vài giờ.
Marcks Thomas

7
Lý do của bạn cho thứ tự tầng không có ý nghĩa gì. Kẻ tấn công sẽ phải vượt qua từng lớp (mỗi lớp sử dụng một khóa độc lập), bất kể AES là đầu tiên hay cuối cùng.
jjlin

15

Các mật mã xếp tầng (AES-Twofish-Serpent, v.v.) nên an toàn nhất. Dữ liệu của bạn được mã hóa bằng một thuật toán, sau đó đầu ra từ đó được mã hóa bằng thuật toán thứ hai, đầu ra của nó được mã hóa bằng thuật toán thứ ba. Theo tài liệu TrueCrypt , mỗi thuật toán sử dụng một khóa khác nhau, mỗi thuật toán được lấy từ cụm mật khẩu của bạn.

Nếu một lỗ hổng được tìm thấy trong một (hoặc hai) mật mã này, dữ liệu của bạn sẽ vẫn được bảo mật, vì kẻ tấn công vẫn không thể phá vỡ các mật mã còn lại.


8
Tôi muốn nói thêm rằng nếu chỉ chọn một mật mã, Serpent có khả năng bảo mật nhất, nhưng chậm hơn đáng kể so với AES (lưu ý rằng lựa chọn của Chính phủ về hiệu suất Tiêu chuẩn mã hóa nâng cao, không chỉ bảo mật).
bwDraco

5

Hoặc AES-Twofish-Serpent hoặc Serpent-Twofish-AES. Nhưng AES thường xuyên là đủ.


5

Rijndael giành chiến thắng trong cuộc thi AES chủ yếu vì đây là phần cứng nhanh nhất và dễ thực hiện nhất, chứ không phải vì nó "an toàn nhất". Twofish và Serpent thường được coi là an toàn hơn, nhưng vì chúng là tất cả vô cùng vững chắc, đó là một tuyên bố rất chủ quan. Và tất nhiên, mã hóa bằng nhiều thuật toán sẽ còn "an toàn" hơn , nhưng sẽ giảm tốc độ hơn nữa.

Một lần nữa, tất cả đều chắc chắn, vì vậy lời khuyên của tôi là chỉ nên đi với bất kỳ máy nào nhanh nhất trên máy của bạn (thường là AES).


1

Tôi đã đọc rằng các thuật toán xâu chuỗi với nhau có thể dẫn đến bảo mật yếu hơn do thuật toán được sử dụng để theo dõi các thuật toán khác.

Hơn nữa, hiệu quả và tốc độ sẽ có một cú hích lớn nếu bạn sử dụng một trong những mật mã kết hợp.

Tôi muốn giới thiệu Rijndael (AES) hoặc Serpent và nếu bạn muốn nó an toàn: yếu tố quan trọng nhất là chìa khóa, vì vậy hãy tạo một khóa rất dài với ít nhất một trong mỗi bộ ký tự chữ hoa, chữ số và chữ thường.


1

Mặc dù có một số nguy hiểm khi xếp chồng nhiều mật mã lại với nhau, Truecrypt dường như xử lý chúng tốt nhất có thể. Nó không thêm bất kỳ bản rõ nào vào đầu ra của mật mã đầu tiên và nó sử dụng các khóa độc lập cho mỗi loại bằng cách kết hợp các thuật toán khác nhau lại với nhau để tăng tính bảo mật.

Tôi sẽ rõ ràng về 3DES mặc dù. Sau khi đọc trang Truecrypt liệt kê các lựa chọn thuật toán, nó thậm chí không liệt kê ba DES để gần đây họ có thể xóa nó.


3
Đối với những người quan tâm đến một cuộc thảo luận sâu hơn về "mối nguy hiểm" trong việc xếp tầng nhiều mật mã, hãy kiểm tra chủ đề này: crypto.stackexchange.com/questions/6486/ trộm
Tiago

Một trách nhiệm chính của 3DES là nó rất chậm so với các mật mã hiện đại hơn, trong khi tốt nhất là cung cấp bảo mật tương tự. (3DES có thể giúp bạn bảo mật tới 112 bit do gặp phải trong các cuộc tấn công ở giữa, trong khi AES-128 hiện giúp bạn bảo mật khá gần với 128 bit với thông lượng tốt hơn nhiều.) Ngoài ra, việc sử dụng các khối 64 bit của DES là một trách nhiệm do sự khuếch tán hạn chế có thể với các khối nhỏ hơn.
một CVn

0

Bạn có thể hình dung sử dụng một từ khóa ngắn hơn nếu bạn đang sử dụng các keyfiles và nếu bạn không lo lắng về các lần truy cập hiệu suất, sử dụng AES Twofish và Serpent sẽ gây đau đầu cho những người cố gắng truy cập vào tài liệu được mã hóa. Nhưng cũng đừng bỏ qua rằng bạn cũng có thể lấy một tệp được mã hóa và đặt nó vào bên trong tệp được mã hóa lớn hơn. Bằng cách này, bạn có thể "cho phép" những kẻ tấn công của bạn nhìn vào container bên ngoài và để chúng nghĩ rằng chúng có toàn bộ container. Trong thực tế, họ không có gì cả. Vui lòng đặt một cái gì đó hơi mờ trong tệp bên ngoài, nhưng không có gì thực sự gây ra vấn đề cho bạn. Tôi nghĩ rằng một loạt các bức ảnh khiêu dâm sẽ phù hợp với dự luật này, đây là điều mà ai đó muốn che giấu, và như vậy, bạn có một lý do tốt đẹp. Container bên ngoài không tiết lộ rằng container bên trong thậm chí còn tồn tại. Đặt vật liệu thực tế của bạn bên trong thùng chứa bên trong. Thậm chí tốt hơn là làm cho container bên ngoài "yếu" với mật khẩu không đủ và không có keyfile. Hãy để những kẻ tấn công của bạn nghĩ rằng họ đã phá vỡ mã hóa của bạn, và nhún vai và nói, "Chết tiệt, bạn tốt, bạn đã khiến tôi chết vì quyền lợi."


0

Phân tích mật mã công khai tốt nhất cho mỗi loại, giả sử 256 biến thể (độ phức tạp thời gian cao hơn là tốt hơn, nhưng tất cả các loại hãy cẩn thận):

  • Rijndael: 2 ^ 254,4 độ phức tạp thời gian (bỏ qua các cuộc tấn công quan trọng liên quan sẽ không có vấn đề ở đây)
  • Serpent: 12 vòng 32, 2 ^ 228,8 độ phức tạp thời gian (nhưng yêu cầu 2 ^ 118 nguyên đơn đã biết)
  • Twofish: 6 vòng 16 (nhưng yêu cầu 2 ^ 51 nguyên đơn được chọn)
  • 3DES: 2 ^ 118 (với 2 ^ 32 nguyên đơn đã biết; lưu ý, 3DES sử dụng 168 bit, vì vậy lực lượng vũ phu là 2 ^ 168 thay vì 2 ^ 256)

Không còn nghi ngờ gì nữa, 3DES là kém an toàn nhất, nhưng điều đó không nhất thiết làm cho nó không an toàn (loại bỏ mối quan tâm cửa sau chưa được công bố thông thường). Tuy nhiên tôi sẽ tránh nó. Tất cả các thuật toán khác thường được coi là an toàn. Việc xác định sự hiện diện của một cửa hậu được đặt có chủ ý trong bất kỳ trong số chúng có khả năng yêu cầu Snowden phát hành thêm tài liệu. Và thành thật mà nói, nếu bất kỳ ai trong số 3 người đứng đầu đã có một cửa hậu, đó sẽ là một tiết lộ tuyệt đối về bom đạn. Với hồ sơ theo dõi của anh ấy, cá nhân tôi rất vui khi cho rằng họ vẫn an toàn.


3DES với ba khóa độc lập (168 bit vật liệu chính) dễ bị tấn công trong cuộc gặp gỡ trung bình, điều đó có nghĩa là bảo mật hiệu quả là khóa 112 bit. vi.wikipedia.org/wiki/Triple_DES#Securance
CVn

0

Năm 2001, Viện Tiêu chuẩn và Công nghệ Quốc gia (NIST) đã đưa ra Tiêu chuẩn Mã hóa Nâng cao (AES) và lọt vào danh sách năm ứng cử viên (thông qua nhiều hội nghị ứng cử viên) với các thuật toán đối lập để thể hiện tiêu chuẩn. Mật mã Serpent là một trong số đó, thu được danh hiệu bảo mật cao, nhưng cuối cùng trở thành á quân, với mật mã Rijndael. Trong khi điều này diễn ra vài năm trước, nó cung cấp một cái nhìn hấp dẫn về mã hóa dữ liệu điện tử và sự đánh đổi giữa hiệu suất và bảo mật. Thật thú vị, hiệu suất đã thắng!

So với năm ứng cử viên khác, mật mã Serpent có hệ số an toàn cao nhất 3,56, khá tốt khi xét đến thực tế rằng ứng dụng tốt nhất tiếp theo là mật mã Twofish với hệ số an toàn là 2,67. Rijndael-256 có hệ số an toàn là 1,56

https://www.100tb.com/blog/security-performance-serpent-codes-rijndael/

https://veracrypt.codeplex.com/wikipage?title=Serpent


-1

Vì không có cuộc tấn công nào được biết đến chống lại AES khiến khả năng cưỡng bức vũ phu trở nên khả thi (ref: https://en.wikipedia.org/wiki/Advified_Encoding_Stiteria#Known_attacks ), trừ khi bạn mong muốn các cơ quan 3 chữ cái dành toàn bộ sức mạnh tính toán của mình cho lần tiếp theo thiên niên kỷ để bẻ khóa ổ đĩa của bạn, AES là con đường để đi. Phiên bản cuối cùng của TrueCrypt cũng như các nhánh của nó hỗ trợ AES-NI, trên Core i7 3770 của tôi cung cấp thông lượng trên 2,5 GB / giây.

Kết nối của bạn với địa chỉ IP được quảng cáo bởi tên miền này sử dụng mã hóa AES trên hầu hết các trình duyệt (mặc dù CloudFlare giữ khóa mà trình duyệt của bạn nhìn thấy, giải mã và mã hóa lại dữ liệu của bạn trước khi gửi nó đến máy chủ StackExchange, vì vậy đừng sử dụng TrueCrypt của bạn / VeraCrypt / Mật mã được mã hóa cho mật khẩu StackExchange của bạn bởi vì nếu nói 3 cơ quan thư là để bẻ khóa ổ đĩa của bạn, họ sẽ chặn mật khẩu của bạn tại proxy CloudFlare và thử trước đó trước khi thử dùng vũ lực không bao giờ hoạt động).


-2

Tôi khuyên bạn nên sử dụng hàm băm Whirlpool với các thuật toán này vì nó mạnh nhất.

Đối với các thuật toán mã hóa, bạn nên sử dụng một tầng. Tôi đề nghị AES, Twofish, Serpent. AES khá yếu (so với các thuật toán khác nhưng là nhanh nhất) và là tiêu chuẩn công nghiệp do đó sẽ có hiệu quả như một lớp bên ngoài. Twofish thậm chí còn mạnh hơn và sau khi giải mã lớp AES, sẽ có một lớp khác (Twofish) thậm chí còn mạnh hơn. Serpent là mạnh nhất và dòng thác này chứng tỏ hiệu quả.

Một số thông tin bổ sung: Đối với mật khẩu, NSA có một máy tính lượng tử có thể giải mã rất nhanh. Tôi sẽ không tin tưởng NSA (họ đã thiết kế AES). Tôi muốn giới thiệu tối thiểu 40 chữ cái, chữ thường và chữ hoa, số, ký hiệu và không có từ trong từ điển hoặc thông tin cá nhân (ngày sinh, v.v.) và bạn có thể sử dụng keyfiles. Nếu bạn gặp rủi ro từ một kẻ thù, hãy sử dụng các tính năng từ chối hợp lý được tích hợp trong TrueCrypt.


Không có cuộc tấn công điện toán lượng tử nào được biết đến trên AES. Máy tính lượng tử không nhanh hơn máy tính nhị phân của chúng tôi. Họ chỉ khác nhau.
Mark Lopez

NSA không thiết kế AES. AES được thiết kế bởi một cặp nhà mật mã người Bỉ dưới tên Rijndael, đã được các nhà mật mã trên toàn thế giới xem xét (và đánh mạnh) . Nếu bạn định tham gia vào trò lừa đảo bằng giấy thiếc, ít nhất hãy hiểu đúng sự thật của bạn. Ngoài ra, AES không có gì để làm với mật khẩu.
CVn

Đối với từ chối hợp lý, có một lập luận thuyết phục tại sao điều đó sẽ không hoạt động trong thực tế trong Câu hỏi thường gặp về cryptsetup Linux , phần 5.18 "Điều gì về Từ chối hợp lý?" cũng chạm vào nó trong phần 5.2 "LUKS có không an toàn không? Mọi người có thể thấy tôi có dữ liệu được mã hóa!". Theo một nghĩa nào đó, đó là một biến thể của xkcd.com/538 (yay, một cách sử dụng hợp pháp cho liên kết xkcd).
CVn

-2

AES

Rijndael (Hiện tại THE AES) là thuật toán tốt nhất.

Từ https://crypto.stackexchange.com/questions/24307/why-is-aes-unbreakable :

Đầu tiên, người ta không nói rằng AES là không thể phá vỡ, chỉ đơn thuần là không có cuộc tấn công nào được biết đến hiện nay làm giảm chi phí tính toán đến mức khả thi. Cuộc tấn công tốt nhất hiện nay vào AES-128 thực hiện 2 ^ 126.1 hoạt động, nếu chúng ta có một máy tính (hoặc cụm) hiệu quả hơn hàng triệu lần so với bất kỳ máy tính hiện tại nào và có thể hoạt động ở giới hạn Landauer nhiệt động lực học, sẽ phải mất tới 234 petajoules chỉ để tăng một truy cập thông qua mọi giá trị quan trọng. Đó là khoảng một nửa mức tiêu thụ điện hàng năm của Na Uy. Trên thực tế, việc tính toán một vòng AES tốn nhiều lần năng lượng.

Hai con cá

Từ Wikipedia :

Twofish là một mật mã khối khóa đối xứng với kích thước khối 128 bit và kích thước khóa lên tới 256 bit. Đó là một trong năm người vào chung kết cuộc thi Tiêu chuẩn mã hóa nâng cao, nhưng nó không được chọn để chuẩn hóa. Twofish có liên quan đến khối mật mã khối trước đó.

Các tính năng đặc biệt của Twofish là việc sử dụng các hộp S phụ thuộc khóa được tính toán trước và lịch trình khóa tương đối phức tạp. Một nửa khóa n-bit được sử dụng làm khóa mã hóa thực tế và nửa còn lại của khóa n-bit được sử dụng để sửa đổi thuật toán mã hóa (hộp S phụ thuộc khóa). Twofish mượn một số yếu tố từ các thiết kế khác; ví dụ, biến đổi giả giả Hadamard (PHT) từ họ mật mã SAAX. Twofish có cấu trúc Feistel giống như DES. Twofish cũng sử dụng ma trận tách khoảng cách tối đa.

Trên hầu hết các nền tảng phần mềm, Twofish chậm hơn một chút so với Rijndael (thuật toán được chọn cho Tiêu chuẩn mã hóa nâng cao) cho các khóa 128 bit, nhưng nó có phần nhanh hơn đối với các khóa 256 bit.

Con rắn

Từ Wikipedia :

Serpent là một mật mã khối khóa đối xứng từng là người vào chung kết trong cuộc thi Tiêu chuẩn mã hóa nâng cao (AES), nơi nó được xếp thứ hai sau Rijndael. Serpent được thiết kế bởi Ross Anderson, Eli Biham và Lars Knudsen.

Giống như các lần gửi AES khác, Serpent có kích thước khối là 128 bit và hỗ trợ kích thước khóa là 128, 192 hoặc 256 bit. [2] Mật mã là một mạng hoán vị thay thế 32 vòng hoạt động trên một khối gồm bốn từ 32 bit. Mỗi vòng áp dụng song song một trong tám hộp S 4 bit đến 4 bit 32 lần. Serpent được thiết kế sao cho tất cả các hoạt động có thể được thực hiện song song, sử dụng các lát 32 bit. Điều này tối đa hóa sự song song, nhưng cũng cho phép sử dụng công việc phân tích mật mã mở rộng được thực hiện trên DES.

Serpent đã thực hiện một cách tiếp cận thận trọng đối với bảo mật, chọn một mức bảo mật lớn: các nhà thiết kế coi 16 vòng là đủ để chống lại các kiểu tấn công đã biết, nhưng chỉ định 32 vòng là bảo hiểm chống lại những khám phá trong tương lai về tiền điện tử. Báo cáo chính thức của NIST về cuộc thi AES đã phân loại Serpent có biên độ bảo mật cao cùng với MARS và Twofish, trái ngược với biên độ bảo mật đầy đủ của RC6 và Rijndael (hiện là AES). Trong cuộc bỏ phiếu cuối cùng, Serpent có số phiếu bầu tiêu cực ít nhất trong số những người vào chung kết, nhưng lại giành được vị trí thứ hai chung cuộc vì Rijndael có nhiều phiếu tích cực hơn, yếu tố quyết định là Rijndael cho phép thực hiện phần mềm hiệu quả hơn nhiều.

SHA còn tốt hơn MDA, Whirpool, v.v. Nhưng họ đã tìm ra cách để phá vỡ SHA. Ở đó có SHA-2 (HMAC). Một lần nữa họ tìm thấy một cách để phá vỡ nó. Ở đó có SHA-3 (Kakee hoặc đại loại như thế này). Nhưng trong TrueCrypt, VeraCrypt, CodesShed hoặc TrueCryptNext không tồn tại SHA-3 .--------------------------- Nguồn: Bất kỳ nơi nào trong bộ nhớ của tôi ;-)

AES-Twofish-Serpent + SHA-512 = ALGORITHM TỐT NHẤT VÀ HASH CHO TrueCrypt VÀ OTHERS.


-3

Sau khi tìm kiếm nhanh, tôi muốn nói AES 256 bits.

Tôi sẽ tránh Triple AES và Triple blowfish. Chạy cùng một thuật toán nhiều lần có thể dẫn đến ít bảo mật hơn sau đó sử dụng thuật toán gốc một lần.

nguồn


1
Có vẻ đáng tin như đầu cơ, nhưng Triple DES chắc chắn được tăng cường bởi nhiều đường chuyền. (Trừ khi các nhà thiết kế của việc thực hiện cơ bản làm cho một sai lầm ngớ ngẩn và không "EK2 (DK1 (EK1 (plaintext)))" như Simon Singh đã làm trong thách thức cypher của mình: P)
RJFalconer

5
1) Nguồn của bạn là một trò đùa. Một bài diễn đàn ngẫu nhiên. 2) Không có lý do để tin rằng mã hóa ba với các khóa khác nhau sẽ làm suy yếu mã hóa.
CodeInChaos
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.