Hash Chains

แปลโดย : Claude 3 Opus (Pro)

Hash Chains

One of their most promising schemes made use of a hash function, a type of one-way function that scrambles data into a unique and seemingly random string of numbers of a fixed length. Any digital data can be hashed, whether it’s a single letter or an entire book, a music file or a program’s source code. Importantly, the same data will result in the exact same hash every time, but if the original data is altered even a tiny bit, the resulting hash would change unrecognizably. If a single comma is removed from a book, the resulting hash would look nothing like the hash of the original book.

Stornetta and Haber considered that documents could be time-stamped by a special time-stamping service. A document would be hashed together with a timecode indicating when the time-stamp service received it, and this hash would be cryptographically signed by the time-stamping server as a form of proof. To show that a document existed at a certain point in time, the owner of the document could provide the original document and the time-stamp, which anyone could then put through a hash function and verify that an identical hash was indeed signed by the time-stamping server.

Further, Stornetta and Haber speculated that different documents could be chronologically linked in a hash chain. That is, each new document that the time-stamping server received would not only be hashed together with a timecode, but also with the hash of the previous document. This new hash, in turn, would be hashed together with the next document to create the next hash, and so forth. The resulting “chain” of hashes could prove exactly which documents were time-stamped in what order; it would form a chronological “backbone record” of all processed documents.

This did mean, however, that the time-stamping service itself would have to be trusted not to tamper with the backbone record. In theory, this service could make forgeries by hashing and signing the same documents with different time-stamps, and it could recreate a new hash chain to change the chronological order of the documents, or even delete documents from the record altogether.

Relying on such services was quite common in the field of computer science; public keys were typically distributed by a certificate authority that linked these keys to specific identities, for example. Yet, for Stornetta and Haber, this was no ideal solution. They believed that security in the digital realm shouldn’t require trust in any particular person or entity; much like the cryptographic tools at their disposal, time-stamping would ideally stand on its own.

This turned out to be the most challenging part of the problem.

As long as any single entity acted as a time-stamping service, it required trust in that entity, while solving this by adding more entities to create a system of security checks also seemed like a dead end. Even if someone would be tasked with overseeing that the time-stamping service remains honest, everyone would still have to trust that this person doesn’t collude with the time-stamping service to change the records. For the same reason, it wouldn’t really help to add a third person to keep both of them honest, or a fourth, or a fifth . . . This would at best increase the scale of collusion required to forge historic records—but it wouldn’t altogether preclude the possibility.

Stornetta and Haber appeared to have run into a fundamental problem that cryptography could not solve. After weeks of fruitless spitballing, the Bellcore colleagues ultimately saw no other option but to conclude that what they really wanted to achieve could not be done.

As a kind consolation, they decided to publish their findings. Although Stornetta and Haber hadn’t solved the problem of trust, they could now at least show that the problem was unsolvable . . .

แฮชเชน (Hash Chains)

หนึ่งในแผนการที่มีแนวโน้มมากที่สุดของพวกเขาคือการใช้ฟังก์ชันแฮช (hash function) ซึ่งเป็นฟังก์ชันทางเดียว (one-way function) ประเภทหนึ่งที่ทำให้ข้อมูลกลายเป็นสตริงของตัวเลขที่ไม่ซ้ำกันและดูเหมือนสุ่มด้วยความยาวคงที่ ข้อมูลดิจิทัลใดๆ ก็สามารถแฮชได้ ไม่ว่าจะเป็นตัวอักษรเดียวหรือทั้งเล่ม ไฟล์เพลงหรือซอร์สโค้ดของโปรแกรม สิ่งสำคัญคือ ข้อมูลเดิมเมื่อผ่านแฮชจะได้ผลลัพธ์ที่เหมือนกันทุกครั้ง แต่หากข้อมูลเดิมถูกแก้ไขแม้เพียงเล็กน้อย ผลลัพธ์ที่ได้จากการแฮชก็จะเปลี่ยนแปลงจนจำไม่ได้ หากเครื่องหมายจุลภาคเดียวถูกลบออกจากหนังสือ ผลลัพธ์จากการแฮชจะไม่เหมือนกับการแฮชหนังสือเล่มเดิมเลย

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

นอกจากนี้ สตอร์เนตตาและเฮเบอร์ยังคาดเดาว่าเอกสารต่างๆ สามารถเชื่อมโยงกันตามลำดับเวลาในเฮชเชนได้ กล่าวคือ เอกสารใหม่แต่ละฉบับที่เซิร์ฟเวอร์ประทับเวลาได้รับจะไม่เพียงแต่ถูกแฮชพร้อมกับรหัสเวลาเท่านั้น แต่ยังรวมถึงแฮชของเอกสารก่อนหน้านี้ด้วย แฮชใหม่นี้ต่อมาจะถูกแฮชร่วมกับเอกสารถัดไปเพื่อสร้างแฮชถัดไป และต่อๆ ไป "เชน" ของแฮชที่เป็นผลลัพธ์สามารถพิสูจน์ได้อย่างแม่นยำว่าเอกสารใดถูกประทับเวลาตามลำดับใด มันจะสร้าง "บันทึกแกนกลาง" ตามลำดับเวลาของเอกสารทั้งหมดที่ผ่านการประมวลผล

อย่างไรก็ตาม นี่หมายความว่าจะต้องเชื่อใจบริการประทับเวลาเองว่าจะไม่ปลอมแปลงบันทึกแกนกลาง ในทางทฤษฎี บริการนี้สามารถสร้างเอกสารปลอมโดยการแฮชและเซ็นเอกสารเดียวกันด้วยการประทับเวลาที่แตกต่างกัน และมันสามารถสร้างเฮชเชนใหม่เพื่อเปลี่ยนลำดับเวลาของเอกสาร หรือแม้แต่ลบเอกสารออกจากบันทึกไปเลยทีเดียว

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

สิ่งนี้กลายเป็นส่วนที่ท้าทายที่สุดของปัญหา

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

สตอร์เนตตาและเฮเบอร์ดูเหมือนจะเจอปัญหาพื้นฐานที่การเข้ารหัสลับแก้ไม่ได้ หลังจากเสียเวลาหลายสัปดาห์ไปกับการพูดคุยโดยไร้ผล เพื่อนร่วมงานที่ Bellcore ก็ไม่เห็นทางเลือกอื่นนอกจากต้องสรุปว่า สิ่งที่พวกเขาต้องการทำจริงๆ นั้นทำไม่ได้

เพื่อปลอบใจตัวเอง พวกเขาจึงตัดสินใจเผยแพร่ข้อค้นพบของตน แม้สตอร์เนตตาและเฮเบอร์จะไม่ได้แก้ปัญหาเรื่องความไว้วางใจได้ แต่ตอนนี้พวกเขาอย่างน้อยก็แสดงให้เห็นได้ว่าปัญหานี้แก้ไม่ได้...

Last updated