Điểm:2

Làm cách nào để có hàm băm ánh xạ từ phần tử nhóm sang chuỗi nhị phân có kích thước nhất định trong charm-crypto?

lá cờ mq

Tôi đang đối mặt với một vấn đề trong lập trình với charm-crypto thư viện. Các hàm băm để ghép nối các phần tử nhóm trong charm-crypto chỉ có thể ánh xạ từ một chuỗi sang một trường cụ thể: $\mathbb Z_r$, $G_1$ hoặc $G_2$.

Ví dụ: $$\begin{align} H_1: \{0, 1\}^*\to\ &G_1\ H_2: \{0, 1\}^*\to\ &Z_r\ H_3: \{0, 1\}^*\to\ &G_2\ \end{align}$$

Tôi đang triển khai sơ đồ mã hóa khóa công khai không có chứng chỉ với tìm kiếm từ khóa từ bài nghiên cứu này. Và trong thuật toán này trong phần thiết lập toàn cầu, tôi muốn có một hàm băm như $H_4: G_2\to \{0, 1\}^n$ trong một thời gian dài $n$ tức là ánh xạ từ phần tử nhóm sang chuỗi nhị phân có độ dài $n$. Trong trường hợp này nhóm $G_2$ bao gồm các điểm trên một đường cong elip.

Ai đó có thể vui lòng hướng dẫn tôi cách triển khai ánh xạ băm không $H4$ trong charm-crypto? Tôi sẽ biết ơn vì bất kỳ sự giúp đỡ nào về vấn đề này.

kelalaka avatar
lá cờ in
Tôi tự hỏi tại sao loại giấy này lại được lưu hành khắp nơi. Chúng tôi có hai câu hỏi về điều này, hãy để tôi tìm kiếm. [1](https://crypto.stackexchange.com/q/87012/18298) và [2](https://crypto.stackexchange.com/q/86375/18298)
ashizz avatar
lá cờ mq
Cảm ơn bạn @kelalaka Tôi sẽ xem qua những thứ này.
fgrieu avatar
lá cờ ng
Bất cứ điều gì sai với: nếu $r\in G_2$, chúng tôi xác định $H_4(r)$ là $\operatorname{SHAKE256}(R,n)$ trong đó $R$ là đại diện duy nhất của $r$ dưới dạng chuỗi bit và $\ tên toán tử{SHAKE256}$ như được định nghĩa trong [FIPS 202](https://doi.org/10.6028/NIST.FIPS.202)?
ashizz avatar
lá cờ mq
@fgrieu Không chắc nó có hoạt động không. tôi sẽ phải kiểm tra nó
Điểm:2
lá cờ ng

Tôi muốn một hàm băm như $H_4: G_2\to \{0, 1\}^n$ trong một thời gian dài $n$ tức là ánh xạ từ phần tử nhóm sang chuỗi nhị phân có độ dài $n$. Trong trường hợp này nhóm $G_2$ bao gồm các điểm trên một đường cong elip.

Nếu $r\in G_2$, chúng ta có thể định nghĩa $H_4(r)$ như $\operatorname{SHAKE256}(R,n)$ ở đâu $R$ là một duy nhất đại diện của $r$ dưới dạng chuỗi bit và $\operatorname{SHAKE256}$ như được định nghĩa trong FIPS 202.

Một cách để có được $R$: nếu điểm $r$ có tọa độ Descartes $(x,y)$ trong lĩnh vực $\mathbb F_p$ với $p$ nguyên tố, $2^{8(\ell-1)}<p<2^{8\ell}$, $0\le x<p$, $0\le y<q$, sau đó chúng ta có thể sử dụng $R=\operatorname{I2OSP}(x,\ell)\mathbin\|\operatorname{I2OSP}(y,\ell)$ ở đâu $\operatorname{I2OSP}$ là chuyển đổi big-endian tiêu chuẩn thành chuỗi octet (như được sử dụng trong ví dụ: PKCS#1). Điều này có thể được điều chỉnh cho các lĩnh vực khác.

Nếu $\operatorname{SHAKE256}$ được sử dụng để xây dựng các giá trị băm khác $H_1$, $H_2$, $H_3$, nên thêm tiền tố vào đầu vào của $\operatorname{SHAKE256}$ với các hằng số riêng biệt.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.