Score:0

การใช้งาน AES-256 อย่างเหมาะสมสำหรับ E_k บล็อกเดียวจากนั้นจึงนำไปใช้กับ AES-GCM

ธง in

วัตถุประสงค์แรกของฉันคือการใช้ AES-GCM ใน PowerShell 5.1 เนื่องจากไม่มีการใช้งานที่ไม่ใช้ไลบรารี dll ภายนอก

ตามสคีมาของการเข้ารหัส GCM: การเข้ารหัส GCM

บล็อก E_k ควรสอดคล้องกับบล็อก 128 บิต และอินพุตถูกเข้ารหัสโดย AES ด้วยคีย์เฉพาะ K

หากในตอนเริ่มต้นฉันต้องการเน้นเฉพาะบล็อก E_k และฉันต้องการใช้อัลกอริทึม AES ที่นั่นโดยตรง มันถูกต้องหรือไม่ที่บอกว่าในกรณีนี้จะไม่มีการใช้โหมด Block Cipher เพราะฉันเน้นเฉพาะที่ตัวบล็อกเอง

ข้อสงสัยเพิ่มเติม: ในกรณีของ GCM หาก E_k แต่ละรายการใช้เป็นอินพุต 12 ไบต์ IV +counter_value และแต่ละบล็อก E_k มีขนาด 16 ไบต์ (128 บิต) IV จะถูกเติมด้วย 0 (หรือค่าอื่นที่กำหนดไว้ล่วงหน้า) สำหรับ 4 ถัดไป ไบต์ถึงขนาด 16 ไบต์? ดังนั้นสำหรับแต่ละบล็อก เรามี เช่น [BLOCK 0] 7808B1A23DDC2F9D90A4BCED00000000; [บล็อก 1] 7808B1A23DDC2F9D90A4BCED00000001; [บล็อก 2] 7808B1A23DDC2F9D90A4BCED00000002; และอื่น ๆ ?

นี้ คำตอบ นำไปใช้ในกรณีของฉันด้วย:

  • สามารถใช้ AES "ดิบ" โดยใช้ ECB สำหรับบล็อก E_k เดียวได้หรือไม่
  • การเติมข้อความธรรมดา (ในกรณีของเราคือ 12-byte IV) มากถึง 16 ไบต์ด้วย 4 ไบต์ของ 0s?

ฉันหวังว่าข้อมูลจะชัดเจน

ขอขอบคุณ

fgrieu avatar
ng flag
คำถามนี้ใกล้เคียงกับคำถามการเขียนโปรแกรมมากเกินไปอย่างไม่สบายใจ ซึ่งอยู่นอก-[หัวข้อ](https://crypto.stackexchange.com/help/on-topic) ที่กล่าวว่าคุณต้องการ[ข้อมูลจำเพาะของ AES-GCM](https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf#page=23)ที่แท้จริง ใช่ AES แบบดิบสอดคล้องกับโหมด ECB และสามารถใช้เพื่อปรับใช้กล่อง $E_k$ ในคำถาม ฉันคิดว่าคำอธิบาย IV ของคุณเป็นแบบแยกส่วน และบล็อกแรกสิ้นสุดใน 00000001h แต่อ่านสเป็คอีกที และฉันไม่เอาผิดกับการเขียน crypto ร้ายแรงใน PowerShell
in flag
@fgrieu ไม่ต้องกังวลกับส่วน "การเขียนโปรแกรม" สำหรับฉันส่วน "ทฤษฎี" นั้นสำคัญ ด้วยข้อมูลนี้ ฉันสามารถไปยังส่วนของการเขียนโปรแกรมได้ด้วยตัวเอง ฉันแค่ไม่เข้าใจว่าทำไมคำอธิบาย IV ของฉันจึงไม่ตรงกัน บล็อกแรกไม่ได้สิ้นสุดใน 00000001h แต่ 00000000h ฉันดำเนินการแก้ไขคำถามและเนื้อหาเพื่อเน้นที่ "ทฤษฎี" มากกว่า "โปรแกรมมิน" ขอบคุณต่อไป
fgrieu avatar
ng flag
ฉันบอกว่า IV ของคุณเป็นแบบ off-by-one เนื่องจากสมการ $J_0 = IV\mathbin\|0^{31}\mathbin\|1$ (เมื่อ $IV$ เป็น 96 บิต ซึ่งตรงกับ 12 ไบต์ของ คำถาม) ในข้อมูลจำเพาะที่เชื่อมโยง อย่างน้อยฉันก็มั่นใจว่า $J_0$ สิ้นสุดใน 00000001h
in flag
ขออภัยอีกครั้ง ใน "บล็อกแรก" สำหรับแท็กการรับรองความถูกต้อง ตัวนับจะเริ่มต้นจาก 1 ฉันตาบอด "เคาน์เตอร์ 0" ทำให้ฉันสับสน คุณถูก. และฉันยังอ่านด้วยว่า "IV ที่ตั้งค่าเป็นศูนย์ไบต์ทั้งหมดอาจทำให้ส่วนหนึ่งของค่า GHASH รั่วไหล" ขอขอบคุณอีกครั้ง.
us flag
`ใช้ AES-GCM ใน PowerShell 5.1 เนื่องจาก.. ` เมื่อฉันเห็นการใช้งานแบบกำหนดเอง ฉันมักจะกังวลเกี่ยวกับการต่อต้านการโจมตีช่องทางด้านข้าง หากคุณกำลังมองหาวิธีแก้ปัญหาที่ปลอดภัยกว่า ทำไมไม่โทรหา e. ช. คำสั่ง OpenSSL?
in flag
@gusto2 ใช่ คุณพูดถูก ในกรณีของฉัน ฉันต้องการลองพึ่งพา dep ภายนอกให้น้อยลง แต่ในความต้องการเฉพาะของฉัน ในความเป็นจริงแล้ว ฉันต้องการเพียงถอดรหัสโดยรับข้อมูลการตรวจสอบสิทธิ์เพิ่มเติม, IV, Dat ที่เข้ารหัส และ Auth Tag เป็นอินพุต ดังนั้นฉันจะนำไปใช้ เพียงเพื่อวัตถุประสงค์ส่วนตัว เฉพาะฟังก์ชันการถอดรหัสแต่เพื่อจุดประสงค์นี้ ฉันต้องทำความเข้าใจให้ดียิ่งขึ้นเกี่ยวกับข้อสงสัยที่ฉันได้อธิบายไว้ในขั้นตอนการเข้ารหัสข้างต้น

โพสต์คำตอบ

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