Tạo yêu cầu hỗ trợ
Đăng nhập Đăng ký
Locker support Locker support
Kết quả

No results found.

Trang chủ Locker Whitepaper Security Fundamentals Thuật toán khởi tạo khóa PBKDF2
Vietnamese English
Thuật toán khởi tạo khóa PBKDF2

Thuật toán PBKDF2 (Password-based Key Derivation Function 2) SHA-256 được sử dụng để khởi tạo Khóa mã hóa từ Mật khẩu chính của người dùng. Mật khẩu chính sẽ được mã hóa, bằng một giá trị ngẫu nhiên là địa chỉ email của người dùng và kỹ thuật băm, một cách cục bộ trên máy của người dùng, trước khi gửi đến máy chủ Locker. Khi máy chủ Locker nhận được Mật khẩu chính đã mã hóa, mật khẩu đó sẽ được mã hóa một lần nữa với một giá trị ngẫu nhiên an toàn (khởi tạo từ Thuật toán sinh số ngẫu nhiên CSPRNG), cùng với kỹ thuật băm, và sau đó được lưu trữ trong cơ sở dữ liệu của Locker.

Số lần lặp mặc định được sử dụng với thuật toán PBKDF2 là 100.001 lần lặp trên máy người dùng, và sau đó là 216.000 lần lặp bổ sung khi được lưu trữ trên máy chủ của Locker (với tổng số 316.001 lần lặp theo mặc định).

 
Notion image

Thuật toán PBKDF2 có 5 tham số đầu vào:

key=PBKDF2(password,salt,iter_count,hash_func,key_len)key = PBKDF2(password, salt, iter\_count, hash\_func, key\_len)

Trong đó:

  • passwordpassword : mật khẩu chính của người dùng.
  • saltsalt : cryptographic salt, ở đây Locker sử dụng email người dùng làm salt đầu tiên.
  • iter_countiter\_count : số vòng lặp.
  • hash_funchash\_func : thuật toán băm với đầu ra dài h_lenh\_len.
  • key_lenkey\_len : độ dài mong muốn của key.

Khóa KK sẽ được chia làm các khối dài tối đa h_lenh\_len. Với mỗi khối KHi{KH}_i,

  1. Sử dụng hàm băm iter_countiter\_count lần với đầu vào là passwordpasswordsaltsalt, với saltsalt đầu tiên là email người dùng, các saltsalt sau là đầu ra của lần băm trước:
    1. H1=hash_func(password,email)H_1=hash\_func(password, email)

      H2=hash_func(password,H1)H_2=hash\_func(password, H_1)

      ......

      Hiter_count=hash_func(password,Hiter_count1)H_{iter\_count}=hash\_func(password, H_{iter\_count-1})

  1. Thực hiện phép XORXOR với tất cả các đầu ra HiH_i từ bước 1:
    1. KHi=H1H2...Hiter_count{KH}_i = H_1 ⊕H_2⊕...⊕H_{iter\_count}.

  1. Cuối cùng, tất cả các khối KHi{KH}_i nối lại với nhau sẽ cho ra khóa KK:
    1. K=KH1KH2...KHkey_len/h_lenK = {KH}_1||{KH}_2||...||{KH}_{key\_len/h\_len}

 
 
Trang này có hữu ích với bạn??
Không
Tham gia cộng đồng của chúng tôi