Có, bạn có thể sử dụng nó. Theo định nghĩa, kẻ tấn công sẽ không thể đưa ra chữ ký trên không tí nào tin nhắn cụ thể mà không cần khóa riêng. Vì vậy, nếu đúng như vậy thì chữ ký thực sự có thể được sử dụng làm khóa đối xứng và tôi biết một trường hợp nó được sử dụng như vậy (hoặc ít nhất là bí mật, thay vì khóa bí mật).
Tuy nhiên, bạn nên cẩn thận khi làm như vậy. Một số thuật toán chữ ký là không xác định và điều đó có thể làm phức tạp mọi thứ. Trong trường hợp xấu nhất, nó có thể làm cho thuật toán chữ ký hoàn toàn không an toàn. Tốt nhất, bạn có thể phải thay đổi thói quen tạo chữ ký để đưa vào một hạt giống hoặc giá trị ngẫu nhiên. Nó cũng sẽ yêu cầu bạn lưu trữ hạt giống hoặc giá trị ngẫu nhiên đó và điều đó có thể đi ngược lại yêu cầu trường hợp sử dụng của bạn. Lưu ý rằng nếu bất cứ điều gì về việc tạo số ngẫu nhiên bị thay đổi - thuật toán, cơ chế trích xuất hoặc trích xuất số nguyên - thì bạn có thể sẽ nhận được khóa sai (và vâng, tôi đã thấy điều này xảy ra).
Tuy nhiên, nếu bạn sử dụng phiên bản RSA xác định (đệm PKCS#1 v1.5) hoặc ECDSA xác định thì bạn sẽ ổn thôi.
Tuy nhiên, bạn có quyền sử dụng KDF sau dữ liệu. Khóa đối xứng phải trích xuất tất cả tính ngẫu nhiên trong chữ ký để được bảo mật (có thể theo sau là mở rộng khóa để có kích thước phù hợp, nhưng điều đó thường không bắt buộc).
mật mã
tuy nhiên thường được sử dụng trên mật khẩu. Điều đó tốt, nhưng có lẽ bạn không cần muối hoặc yếu tố công việc để kéo dài khóa (vì dù sao mức độ ngẫu nhiên trong chữ ký cũng phải đủ cao). Vì vậy, nó là tốt nếu mật mã
là bắt buộc, nhưng thông thường bạn muốn sử dụng KBKDF chẳng hạn như HKDF hoặc chỉ HKDF-Extract.
Nếu bạn có quyền truy cập vào giá trị khóa riêng, bạn cũng có thể sử dụng KDF trên đó.
Tôi chắc chắn khuyên bạn nên sử dụng thuật toán tạo chữ ký ít nhất có cùng độ mạnh với khóa đối xứng. Tất nhiên, điều tương tự cũng xảy ra với chức năng KDF; bạn có thể tìm thấy chi tiết tại keylength.com.
Hơn nữa, bạn có thể muốn lưu ý rằng mật mã đối xứng khó bị tấn công bằng một máy tính lượng tử chính thức, trong khi các thuật toán bất đối xứng thì không (mặc dù sơ đồ này có thể khó bị tấn công hơn so với sơ đồ tạo chữ ký chung, tùy thuộc vào cách nó được sử dụng ).
Tuy nhiên, một lưu ý triển khai khác: các chức năng tạo chữ ký không yêu cầu bạn giữ bí mật chữ ký. Chẳng hạn, một mô-đun phần cứng có thể giữ một khóa đối xứng dẫn xuất thông thường bên trong HSM. Mặt khác, nó có thể xuất chữ ký mà không gặp rắc rối vì giá trị chữ ký là giả sử để được công khai.
Các cuộc tấn công kênh bên vào giá trị chữ ký cũng có thể xảy ra, thật khó để nói trước. Vì vậy, mặc dù về mặt lý thuyết, kế hoạch này hợp lý, nhưng vẫn rất không nên làm như vậy trừ khi không còn cách nào khác.