馬 珂
長期以來,人們對圖書或期刊編輯的印象可能就是刻板的文字加工,認為就是手拿涂改液,對錯別字或標點符號修修補補,且被冠以“文字的搬運工”的稱號。這實在是對編輯工作的最大誤解。一名合格的期刊編輯,要擁有的知識是多方面的,包括專業知識方面的、文學知識方面的、語言文字方面的、社會常識方面的,以及標準規范方面的。編輯工作就是通過綜合運用自身多方面的知識,在和作者充分溝通的前提下,對文章的結構、語序與文字,甚至部分內容等進行調整,以達到改善文章結構、提升文章質量的目的。
筆者從圖書編輯轉型從事學術期刊編輯多年,逐步適應和熟悉了期刊的工作流程和約稿要求,也對如何獲得一篇與期刊整體水平、定位方向相匹配的稿件有了較為深刻的認識。很多學術論文,通過筆者對結構、語序和文字,甚至部分內容的耐心和細致的調整,質量上有了明顯的提高,定位也更加明確,充分得到了論文作者的肯定和認可。本文從筆者處理過的上百篇論文中挑選出一篇,詳細描述了該篇論文的編輯加工過程。本文的目的是想通過該篇論文加工過程的詳細描述來反映筆者如何運用多種知識來幫助作者改善文章結構,提升文章質量。此外,筆者也想借助本文與同行交流編輯工作經驗、分享編輯加工過程,讓作者了解編輯的日常工作,體會編輯工作的瑣碎所帶來的快樂和成就。
2017年12月,筆者收到了江西理工大學一名老師的投稿,標題是“基于糾錯碼的HASH函數的設計及分析”[1]。文獻[1]立足于網絡安全領域的底層技術HASH函數,探討了基于糾錯碼的HASH函數在迭代輪數、HASH值長度、塊大小等方面的綜合改進。文獻[1]符合期刊選題方向,也有在技術上的創新之處,具有一定的發表價值,因此通過了期刊的審核。然而,在文獻[1]審核通過后筆者發現,除了結構較為模糊,需要調整之外,在內容上也需要進行提升。基于糾錯碼的HASH函數與其應用領域區塊鏈有很直接的聯系,如果把當時的研究熱點區塊鏈融合進去,將會對文獻[1]質量有很大的改善。本著對稿件負責、對作者負責和對期刊負責的念頭,筆者把這個想法和作者進行了溝通,并由此產生了一系列的改動過程。本文就是基于這一系列的改動過程,經過提煉和總結而完成的。
剛收到的《基于糾錯碼的HASH函數的設計及分析》這篇文章的主體結構如下(以下用“初始結構”表示):
0 引言
1 MD5算法介紹
2 MD5算法的安全性研究
3 基于糾錯碼的HASH算法
3.1 糾錯碼簡介
3.2 基于糾錯碼的HASH散列函數構造
4 基于糾錯碼的HASH函數的安全性
5 結束語
MD5算法是相當成熟的HASH算法,也是應用最廣泛的HASH算法,因此在實際應用當中受到了重大安全威脅。作者以MD5算法為例,通過探討MD5算法的安全性,設計基于糾錯碼的HASH函數,以提升HASH函數的安全性,這樣的寫作思路無可厚非。但這樣的一篇文章在筆者看來,只是一篇中規中矩的一般技術性文章,從文章深度和與當時的實際聯系來看,都還是有些不夠的。
此外,文獻[1]還凸顯了一個重大問題,就是在每個章節內部邏輯不清晰、描述混亂,需要在結構上做一番更細致的調整。
2017年,區塊鏈技術如火如荼,被認為是繼蒸汽機、電力、互聯網之后的下一代顛覆性核心技術。大量文獻對這個可能重新定義世界的技術從其技術本身到應用都做了詳盡的剖析。但無論區塊鏈技術如何被熱議和探討、其應用前景如何被看好和期待,都應認識到,區塊鏈的基礎核心技術是HASH函數。因此,在看到這篇文章時,筆者就有了將“HASH函數”和“區塊鏈”結合到一起的想法,希望將文獻[1]改動描述為在區塊鏈應用環境下的HASH函數的設計及分析,以提升稿件深度和與現實的連接緊密性,從而增加文獻[1]的可讀性和被關注度。可以說,這樣的想法稍稍帶偏了作者的初衷,但筆者還是就這個想法和作者進行了溝通,得到了作者的同意和認可。于是,在經過作者的修改和調整后,文獻[1]的主體結構變成了如下形式(以下用“結構1”表示):
0 引言
1 區塊鏈技術
1.1 區塊鏈的定義
1.2 區塊鏈技術瓶頸
2 HASH算法介紹
3 HASH算法的安全性研究
4 基于糾錯碼的HASH函數
4.1 糾錯碼簡介
4.2 基于糾錯碼的HASH函數構造
4.3 HASH函數在區塊鏈技術中的重要性
5基于糾錯碼的HASH函數的安全性
6 結束語
從結構1的第1章和4.3節來看,作者的確增加了區塊鏈的相關內容,同時把初始結構的第1、2章關于MD5算法的介紹改為結構1的第2、3章對HASH函數的介紹。這樣的改動在初始結構的基礎上有了一定的提升,但仔細讀后,還有較大的不足。主要原因如下:
1)4.3節可以刪去。該節詳細描述了HASH函數在區塊鏈中的應用原理,而文獻[1]主要關注如何通過改進HASH函數來改進區塊鏈技術,這部分內容已經在1.2節有所體現。
2)第2章“HASH算法介紹”實際上是MD5算法的介紹,單獨放置有帶偏主題的感覺。該部分的內容和位置有待考量。
3)需要對第5章進行調整。作者在該部分對基于糾錯碼的HASH函數的安全性進行了詳細描述,同時里面還有很多關于實驗分析方面的內容,邏輯結構上顯得較為混亂。
綜合上述的判斷和分析,就有了第二次的結構調整。
改動后的結構如下所示(以下用“結構2”表示)。
0 引言
1 Hash算法面臨的威脅
2 區塊鏈技術中的Hash算法
3 基于糾錯碼的HASH函數
3.1 糾錯碼簡介
3.2 基于糾錯碼的HASH函數構造
3.2.1 MD5算法構造過程
3.2.2 本文算法構造過程
4 基于糾錯碼的HASH函數的安全性分析
5 實驗分析
6 結束語
從結構2來看,文獻[1]做了大幅度的調整,這是筆者和作者在對文獻[1]內容做了更深入的研讀之后所得到的結果。改動具體分析如下。
2.2.1 對結構1的第1、3章的調整
結構1的第1章“區塊鏈技術”主要描述區塊鏈技術存在的瓶頸,并指出這些技術瓶頸可以通過改進HASH算法來克服。結構1的第3章“HASH算法的安全性研究”中描述了針對HASH函數的攻擊主要有哪些,也就引出當前HASH算法所面臨的重大安全威脅。這兩部分的內容恰好構成本文研究基于糾錯碼的HASH函數的背景。因此筆者把這兩部分內容改成:
1 Hash算法面臨的威脅
2 區塊鏈技術中的Hash算法
結構2的第1章“Hash算法面臨的威脅”是結構1的第3章“HASH算法的安全性研究”經過調整的內容。結構2的第2章“區塊鏈技術中的Hash算法”是對結構1的第1章“區塊鏈技術”中1.1節“區塊鏈的定義”和1.2節“區塊鏈的技術瓶頸”內容的整合,整合后的內容更加凝聚和精煉,尤其在該部分末尾增加了如下一段:
基于當前Hash算法所面臨的安全威脅以及區塊鏈技術瓶頸對Hash算法優化的需求,文章提出一種基于糾錯碼的Hash函數的設計方案,以提高Hash算法自身的安全性,并改善區塊鏈技術運行速度慢和存儲空間占用大的問題。
這段既是對文獻[1]研究背景的概括,也起到了引出第3章“基于糾錯碼的HASH函數”的作用。更重要的是,第2章把當前最重要的HASH算法的應用——區塊鏈——融入了文獻[1]的研究當中。
2.2.2 對結構1的第2章的調整
結構1的第2章“HASH算法介紹”中重點詳細介紹了MD5算法,目的是要基于MD5算法引出對Hash函數構造的改進。但把這部分內容單獨放置使得與文獻[1]所提出的Hash函數的構造對比性不夠強烈,文獻[1]結構上兩部分內容分隔過遠也影響了文獻[1]的可讀性。因此,筆者把這部分內容作為結構2的3.2.1節“MD5算法構造過程”放到結構2的3.2節“基于糾錯碼的HASH函數構造”之下,并將結構1的4.2節“基于糾錯碼的HASH函數構造”的內容調整放入結構2的3.2.2節“本文算法構造過程”。這樣,通過3.2.1節和3.2.2節兩個小節,使得既通過MD5算法交待了原來HASH算法的不足,也強調了文獻[1]所改進的HASH算法的優勢。
2.2.3 對結構1的第5章的調整
結構1的第5章“基于糾錯碼的HASH函數的安全性分析”中主要對文獻[1]所提出的基于糾錯碼的HASH算法的安全性進行分析。由于原文是大段的敘述,使得這部分內容顯得沒有層次,無法使讀者清晰了解本部分各段落的內容,導致讀者閱讀上的晦澀和困難。因此,筆者先是把這部分的一些內容提取出來,在結構2的第4章《基于糾錯碼的HASH函數的安全性分析》中主要講述理論上如何體現HASH算法的安全性;另外單獨設置第5章“實驗分析”描述安全的HASH算法應該滿足哪些性能,主要從雪崩效應和信息熵對比兩個方面來描述。即調整為如下形式:
4 基于糾錯碼的HASH函數的安全性分析
5 實驗分析
1)雪崩效應
2)信息熵對比
然而,在經過更加細致的閱讀和分析之后,筆者對這兩部分的內容有了更深入的理解,即這兩部分的內容整體上還是對文獻[1]所提出的HASH算法的安全性分析,只是分析的角度有所不同。因此,就有了第三次結構調整。
改動后的結構如下所示(以下用“結構3”表示)。
0 引言
1 Hash算法面臨的威脅
2 區塊鏈技術中的Hash算法
3基于糾錯碼的HASH函數
3.1 糾錯碼簡介
3.2 基于糾錯碼的HASH函數構造
3.2.1 MD5算法構造過程
3.2.2 本文算法構造過程
4 基于糾錯碼的HASH函數的安全性分析
4.1 理論分析
4.2 雪崩效應分析
4.3 信息熵分析
5 結束語
這次調整將結構2中的第4章和第5章整合,從理論、雪崩效應和信息熵3個方面分析HASH函數的安全性,無論從結構還是內容上都更加清晰和一目了然。
至此,文獻[1]通過大幅度的3次結構調整,形成了最終的框架。只從最終的框架,就能使讀者把握文獻[1]的寫作思路,了解文獻[1]的構成,知道文獻[1]的大體內容,從而對文獻[1]的內容和質量作出判斷。更重要的是,文獻[1]巧妙地嵌入了區塊鏈的內容,和文獻[1]本身內容有機地結合在一起,這在當時是非常具有前瞻性的了。
本文第2章討論了文獻[1]大的結構調整,在小節與小節之間筆者也進行了細致的安排和處理。這些工作是在做文獻[1]大結構調整時同步進行的,目的也是為了提高文獻[1]的可讀性,使文獻[1]的邏輯性更強。下面筆者以結構2中的3.2.1節“MD5算法構造過程”和3.2.3節“本文算法構造過程”為例,討論小節與小節之間所涉及的結構和內容的調整。
2.2.2 節說過,在結構1中,第2章“HASH算法介紹”介紹了MD5算法的構造,具體分為如下幾個部分:
1)填充消息
2)劃分分組
3)MD緩沖區的初始化
4)數據處理
5)輸出散列值
在結構1的4.2節“基于糾錯碼的HASH函數構造”中介紹了文獻[1]對HASH函數構造的改進。對HASH函數構造的改進是在MD5算法的基礎上進行的,因此要先介紹MD5算法的構造,才能引出文獻[1]對HASH函數構造進行了怎樣的改進。從內容上看,這兩部分是有連貫性的,適宜放到一處進行對比和描述。因此,和作者商量之后,筆者調整出了結構2中的如下形式,并讓作者依此結構修改了文章內容。
3.2 基于糾錯碼的HASH函數構造
3.2.1 MD5算法構造過程
3.2.2 本文算法構造過程
文獻[1]算法就是構造基于糾錯碼的Hash函數,作者在描寫結構2中的3.2.2節內容時,只談了糾錯碼選擇基于的原則和根據這個原則所得到的檢測結果,至于基于MD5算法的哪里進行改進、如何改進沒有說明。這樣3.2.1節和3.2.2節從內容上就完全割裂了。此外,單從字數上看,3.2.2節篇幅遠遠小于3.2.1節,作為這篇文章的核心部分來說,偏離了重心,失去了主次,因此也需要重新調整。
筆者仔細閱讀了結構2中的3.2.1節和3.2.2節,發現3.2.1節中MD5算法構造的步驟5)“輸出散列值”內容應該放在3.2.2節,其論述的正是文獻[1]算法的原理和所針對的MD5算法的不足。筆者按此想法進行了調整,在3.2.1節中只單純地從添加填充位、附加消息長度值、初始化MD緩沖區和數據處理這4個步驟來講述MD5算法的構造,然后把步驟5)整合到3.2.2節,使得3.2.2節內容更加充實。在3.2.2節,文獻[1]首先論述文獻[1]算法如何通過糾錯碼的生成矩陣構造加法常數表,以達到更好的混淆效果;然后論述MD5算法因加法常數求取缺陷,使得其容易受到差分攻擊;接著論述針對MD5算法的缺陷,文獻[1]算法的糾錯碼的選擇原則,以及根據該原則如何構造使得生成的加法常數隨機性最大化的生成矩陣;最后論述將構造的加法常數表嵌入文獻[1]算法進行檢驗。
經過3.2.1節和3.2.2節的局部調整之后,文獻[1]的可讀性、邏輯性大大增強,既交待了原理,也突出了重點,做到了局部內容敘述的完整和清晰。
歷時一周,文獻[1]經過3次大的結構調整,也經過細節上的修改和完善,最終以結構3的形態于2018年1月在《信息網絡安全》的第1期上刊發。相較于文獻[1]剛投稿的形態,文獻[1]達到了結構清晰、論述完整的目的,質量明顯提高,同時也具備了時代先進性和技術前沿性。本文詳細描述了筆者在對文獻[1]加工時的思想歷程和修改過程,在編輯工作方式和方法上提供了大量空間與同行進行交流和探討。筆者希望通過本文反映編輯工作實際,并幫助作者提供更接近出版要求的文章。所謂“仁者見仁智者見智”,如果本文能在同行中引發共鳴和思考,也不失為一件樂事。