Score:0

การใช้ HMAC-SHA256(คีย์, ตัวนับ) สำหรับการจัดหาแพดเท่านั้นที่เสี่ยงต่อ Bruteforce หรือไม่

ธง cn
ciphertext1 = hmac-sha256(key, counter1) â (plaintext1 กับ plaintext1 sha1 hash)
ciphertext2 = hmac-sha256(key, counter2) â (plaintext2 พร้อมแฮช plaintext2 sha1)
ciphertext3 = hmac-sha256(key ,counter3) â (plaintext3 พร้อมแฮช plaintext3 sha1)
.
.
.

หมายเหตุ: counterN กำลังเพิ่มขึ้นในขณะที่ (plaintextN กับ plaintextN sha1 hash) ยาวกว่า hmac-sha256 (key, counterN) ดังนั้นจึงเป็นฟังก์ชั่นที่จะดำเนินการต่อ hmac-sha256 ด้วยตัวนับที่เพิ่มขึ้น

สมมติว่าอีฟรู้เคาน์เตอร์และไซเฟอร์เท็กซ์อีฟสามารถทำอะไรได้อีกนอกจาก bruteforce เพื่อค้นหากุญแจ? การซ่อนเคาน์เตอร์จากอีฟจำเป็นหรือไม่? หรืออีฟจะทำลายรหัสนี้โดยไม่ต้องใช้กุญแจ? ขีด จำกัด การใช้งานของอัลกอริทึมนี้เพื่อใช้คีย์เดิมสำหรับ hmac-sha256 ต่อไปคือเท่าใด

หมายเหตุ-2: ฉันไม่ใช่นักเข้ารหัส มันเป็นเพียงความอยากรู้อยากเห็น

หมายเหตุ-3: ความยาวคีย์คือ 256 บิต

kelalaka avatar
in flag
ทำไมคุณเข้ารหัสด้วย HMAC? มันจะช้ากว่าการใช้ KMAC หรือ BLAKE2b เป็น MAC ที่มีคีย์ ... คุณแค่ใช้ HMAC เป็นโหมด CTR คุณสามารถใช้ [แฮชด้วยวิธีนี้](https://crypto.stackexchange.com/q/1656/18298)แทน
cn flag
ใช่ ดูเหมือนว่าคุณพูดถูกเกี่ยวกับความเร็ว และแน่นอนว่าในส่วนของ "AES ได้รับการวิเคราะห์อย่างกว้างขวางมากขึ้น" ทำให้เกิดความสับสน แต่ส่วนนี้ก็ถูกต้องเช่นกัน ฉันคิดว่าฉันควรเรียน BLAKE หรือ KMAC ขอขอบคุณ!
Maarten Bodewes avatar
in flag
ฉันจะไม่ใช้ SHA-1 ด้วยวิธีนี้ หากผู้โจมตีรู้ข้อความธรรมดาและแฮช พวกเขาสามารถทำการโจมตีแบบพลิกกลับเล็กน้อยได้ ดังนั้นฉันคิดว่าคำตอบคือไม่ คุณสามารถแทนที่ SHA-1 ด้วย HMAC บนเคาน์เตอร์ + ciphertext แทน ฉันยังไม่แน่ใจว่าอัลกอริทึมได้รับการอธิบายอย่างดี เนื่องจากมีการใช้ตัวนับทั้งแบบ nonce และเพื่อเข้ารหัสข้อความมากขึ้น แต่นั่นเป็นปัญหากับคำอธิบายมากกว่ารหัสที่ฉันคิด
cn flag
ใช่คุณถูก.ดังนั้นฉันสามารถพูดว่า "hmac-sha256(key, counter) â (ข้อความธรรมดากับ hmac-sha1(ข้อความธรรมดา,may_another_key))" ใช่ไหม และบางทีฉันอาจอธิบายได้ไม่ดี แต่ฉันไม่รู้ว่าฉันสร้างคำอธิบายที่สับสนตรงไหน... หากส่วน "กับ" ทำให้สับสน ฉันหมายถึงใส่ช่องว่างระหว่างข้อความธรรมดาและผลลัพธ์ hmac-sha1 แล้ว xor ด้วยผลลัพธ์ hmac-sha256
cn flag
ฉันโง่ :p "hmac-sha1(ข้อความธรรมดา,may_another_key)" ไม่จำเป็น และฉันตัดสินใจใช้สิ่งนี้: "ciphertext1 = blake3(ตัวนับ, คีย์) â ข้อความธรรมดา" และ "hash = blake3(ciphertext1, another_key)" ส่ง ciphertext1 และแฮช ขอบคุณมาร์เท่นและเคลลากะ ฉันคิดว่าฉันทำไปแล้ว จริงไหม (ขออภัยที่รบกวน)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา