專利名稱:一種動(dòng)態(tài)擴(kuò)展透明加密文件附加信息的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)文件加密解密領(lǐng)域,具體涉及一種動(dòng)態(tài)擴(kuò)展透明加密文件附加 信息的方法。
背景技術(shù):
隨著企業(yè)信息化應(yīng)用的深入,企業(yè)員工大部分工作都在計(jì)算機(jī)上完成,各類報(bào)告、 報(bào)表、設(shè)計(jì)圖紙等重要成果都以電子文件的形式存在,而電子文檔很容易通過(guò)郵件、移動(dòng)存 儲(chǔ)設(shè)備等途徑泄露,給企業(yè)帶來(lái)了很大的安全隱患。為了防止機(jī)密文檔的泄漏,常用的方法 之一是對(duì)機(jī)密文檔進(jìn)行加密,這樣即使文件外泄了,非授權(quán)的用戶也無(wú)法打開文檔。文檔的 加密有兩種常用的方式一種是識(shí)別文件格式(例如Office文檔),只對(duì)已知格式的文檔內(nèi) 容部分進(jìn)行加密,并針對(duì)應(yīng)用程序開發(fā)加解密插件,這種方式的缺點(diǎn)是對(duì)未知類型的文檔 無(wú)法處理;另一種方式是透明加解密。所謂透明,是指對(duì)使用者來(lái)說(shuō)是未知的。當(dāng)使用者在 打開或編輯指定文件時(shí),系統(tǒng)將自動(dòng)對(duì)未加密的文件進(jìn)行加密,對(duì)已加密的文件自動(dòng)解密。 文件在硬盤上是密文,在內(nèi)存中是明文。一旦離開使用環(huán)境,由于應(yīng)用程序無(wú)法得到自動(dòng)解 密的服務(wù)而無(wú)法打開,從而起來(lái)保護(hù)文件內(nèi)容的效果。透明加密技術(shù)就是不管文檔的格式, 在文件驅(qū)動(dòng)層對(duì)文件操作進(jìn)行攔截處理,對(duì)指定類別的文檔在文件寫入文件系統(tǒng)時(shí)候進(jìn)行 加密,在讀出時(shí)候進(jìn)行解密,透明加解密的優(yōu)點(diǎn)是不關(guān)心文件格式,因此對(duì)未知類型的文檔 都可以處理。透明加解密技術(shù)必須在文檔中增加一塊附加的區(qū)域,用于存放文件識(shí)別信息、權(quán) 限信息和其他的需要在加解密驅(qū)動(dòng)程序中使用的信息。如圖1所示,文件被分為兩個(gè)部分, 一部分是文件的附加信息,其長(zhǎng)度固定,存放有文件的文件識(shí)別信息、權(quán)限信息和其他的需 要在加解密驅(qū)動(dòng)程序中使用的信息;另一部分為文件的內(nèi)容部分,其中包含文檔的真實(shí)內(nèi)容。在現(xiàn)有的透明加密技術(shù)中,加密文檔一般在文檔第一次創(chuàng)建或修改的時(shí)候由加解 密驅(qū)動(dòng)生成,生成的過(guò)程如圖2所示,先調(diào)用底層加解密驅(qū)動(dòng)寫入固定長(zhǎng)度的文件附加信 息,然后對(duì)文檔內(nèi)容進(jìn)行加密后寫入文件的內(nèi)容部分。現(xiàn)有的透明加密技術(shù)中文件附加信息的修改流程如圖3所示,該流程一般是由加 解密策略控制模塊發(fā)起的,例如要修改文檔的權(quán)限信息,是由加解密策略控制模塊通知加 解密驅(qū)動(dòng)進(jìn)行修改,加解密驅(qū)動(dòng)按照修改的內(nèi)容重新向長(zhǎng)度固定的文件附加信息區(qū)域?qū)懭?該修改的文件附加信息。現(xiàn)有的透明加密技術(shù)中透明加密文檔文件的寫入流程如圖4所示,文件API向加 解密驅(qū)動(dòng)發(fā)出文件寫的指令,加解密驅(qū)動(dòng)向底層文件驅(qū)動(dòng)讀取附加信息;加解密驅(qū)動(dòng)根據(jù) 是否存在附加信息判斷是否加密文檔,如果不是加密文檔則直接進(jìn)行寫文件操作,操作完 成后向文件API返回寫是否成功;如果根據(jù)附加信息判斷是加密文檔,則進(jìn)一步更具附加 信息進(jìn)行相應(yīng)的判斷和操作,例如進(jìn)行鑒權(quán)等,然后加解密驅(qū)動(dòng)再對(duì)要寫入的內(nèi)容進(jìn)行加 密,將加密后的內(nèi)容要求底層文件驅(qū)動(dòng)寫入文件的內(nèi)容部分,操作完成后向文件API返回寫是否成功?,F(xiàn)有的透明加密技術(shù)中透明加密文檔文件的寫入流程如圖5所示,文件API向加 解密驅(qū)動(dòng)發(fā)出文件讀指令,文件加解密驅(qū)動(dòng)向底層文件驅(qū)動(dòng)要求讀取附加信息;文件加解 密驅(qū)動(dòng)根據(jù)是否存在附加信息判斷該文檔文件是否透明加密文檔文件,如果不是加密文 檔,則向底層文件驅(qū)動(dòng)直接進(jìn)行讀取文件內(nèi)容的操作,操作成功后,直接將讀取的內(nèi)容返回 文件API ;如過(guò)根據(jù)附加信息判斷得到該文檔為加密文檔文件則向底層文件驅(qū)動(dòng)要求讀取 文件的內(nèi)容部分,讀取后根據(jù)附加信息來(lái)進(jìn)行相應(yīng)的判斷和操作,例如鑒權(quán)操作,再對(duì)內(nèi)容 進(jìn)行解密,解密后,向文件API返回解密后的內(nèi)容?,F(xiàn)有透明加解密技術(shù)中存儲(chǔ)附加信息的文件區(qū)域的長(zhǎng)度固定,驅(qū)動(dòng)程序按照固定 格式來(lái)讀取此區(qū)域的數(shù)據(jù)。采用固定長(zhǎng)度附加區(qū)域的優(yōu)點(diǎn)是處理比較簡(jiǎn)單,但缺點(diǎn)是擴(kuò)展 性不足,如果加解密需要用到的文件附加信息比較多,特別是文件的授權(quán)信息占用的長(zhǎng)度 可能是不固定的,如果一個(gè)文件要授權(quán)的人越多,則授權(quán)信息的存儲(chǔ)就需要占用越多的控 件,超出附加信息的固定長(zhǎng)度之后現(xiàn)有技術(shù)將無(wú)法處理,因此只能犧牲一些特性(例如限制 授權(quán)信息的條目數(shù)),在透明加解密驅(qū)動(dòng)中做盡量簡(jiǎn)單的事情。
發(fā)明內(nèi)容
本發(fā)明提供一種動(dòng)態(tài)擴(kuò)展透明加密文件的附加信息的方法,所述透明加密文件包 括用于存儲(chǔ)附加信息的長(zhǎng)度固定的附加信息固定存儲(chǔ)部分和用于存儲(chǔ)文件本身內(nèi)容的文 件內(nèi)容部分,該方法包括
A、在創(chuàng)建透明加密文件時(shí),根據(jù)加密策略計(jì)算文件所需要的附加信息的長(zhǎng)度;
B、根據(jù)附加信息的長(zhǎng)度以及附加信息固定存儲(chǔ)部分的長(zhǎng)度判斷是否需要擴(kuò)展附加信 息的存儲(chǔ)部分,如果是,執(zhí)行步驟C,如果否,執(zhí)行步驟E ;
C、根據(jù)附加信息長(zhǎng)度分配至少一個(gè)附加信息擴(kuò)展存儲(chǔ)部分,向附加信息固定存儲(chǔ)部分 寫入附加信息擴(kuò)展存儲(chǔ)部分在文件中的位置信息以及附加信息擴(kuò)展存儲(chǔ)部分的長(zhǎng)度信息; 向附加信息固定存儲(chǔ)部分寫入附加信息;
D、按照附加信息擴(kuò)展存儲(chǔ)部分在文件中的位置和分配的長(zhǎng)度向該至少一個(gè)附加信息 擴(kuò)展存儲(chǔ)部分寫入的附加信息,直到所有附加信息寫入,執(zhí)行步驟F ;
E、直接向附加信息固定存儲(chǔ)部分寫入所有附加信息;
F、對(duì)文件內(nèi)容進(jìn)行加密,并將加密后的內(nèi)容寫入所述透明加密文件的文件內(nèi)容部分。其中,可以將所有附加信息擴(kuò)展存儲(chǔ)部分的位置信息和長(zhǎng)度信息都寫入所述附加 信息固定存儲(chǔ)部分。也可以向所述附加信息固定存儲(chǔ)部分寫入下一個(gè)附加信息擴(kuò)展存儲(chǔ)部 分的位置信息和長(zhǎng)度信息,在向每一個(gè)附加信息擴(kuò)展存儲(chǔ)部分寫入附加信息時(shí)還寫入位于 其后的下一附加信息擴(kuò)展存儲(chǔ)部分的位置信息和長(zhǎng)度信息,只到最后一個(gè)附加信息擴(kuò)展存 儲(chǔ)部分。如果需要修改附加信息,可以按如下流程進(jìn)行 H01、要求修改附加信息;
H02、計(jì)算修改后的附加信息的長(zhǎng)度;
H03、根據(jù)修改后的附加信息的長(zhǎng)度以及附加信息固定存儲(chǔ)部分的長(zhǎng)度判斷是否需要 擴(kuò)展附加信息的存儲(chǔ)部分;如果是,執(zhí)行步驟H04 ;如果否,直接向附加信息固定存儲(chǔ)部分寫入修改后的附加信息,執(zhí)行步驟H06 ;
H04、判斷是否需要增加新的附加信息擴(kuò)展存儲(chǔ)部分,如果是,執(zhí)行步驟H05 ;如果否, 執(zhí)行步驟H06 ;
H05、根據(jù)附加信息長(zhǎng)度分配至少一個(gè)新的附加信息擴(kuò)展存儲(chǔ)部分,向附加信息固定存 儲(chǔ)部分寫入新的附加信息擴(kuò)展存儲(chǔ)部分在文件中的位置信息以及其長(zhǎng)度信息;
H06、依次向附加信息固定存儲(chǔ)部分以及附加信息擴(kuò)展存儲(chǔ)部分寫入修改后的附加信
息;
H07、調(diào)整透明加密文件的文件內(nèi)容部分的位置。如果需要進(jìn)行文件寫入操作,可以按如下流程進(jìn)行 J01、要求進(jìn)行文件寫入;
J02、讀取文件的附加信息固定存儲(chǔ)部分,判斷是否為加密文檔;如果不是加密文檔,執(zhí) 行步驟J03,如果是加密文檔,執(zhí)行步驟J04 ;
J03、直接將要寫入的文件內(nèi)容寫入文件內(nèi)容部分,并返回寫入是否成功,結(jié)束流程; J04、根據(jù)附加信息固定存儲(chǔ)部分的附加信息擴(kuò)展存儲(chǔ)部分的位置信息和長(zhǎng)度信息來(lái) 讀取所有的附加信息;
J05、根據(jù)附加信息進(jìn)行文件操作權(quán)限鑒權(quán),鑒權(quán)通過(guò)后對(duì)要寫入的文件內(nèi)容對(duì)進(jìn)行加 密,向文件內(nèi)容部分寫入加密后的文件內(nèi)容,并返回寫入是否成功。如果需要讀取文件,可以按如下流程進(jìn)行 KO1、要求讀取加密文件;
K02、讀取文件的附加信息固定存儲(chǔ)部分,判斷是否為加密文檔;如果不是加密文檔,執(zhí) 行步驟K03,如果是加密文檔,執(zhí)行步驟K04 ;
K03、直接讀取文件內(nèi)容部分,并返回讀取是否成功,結(jié)束流程; K04、根據(jù)附加信息固定存儲(chǔ)部分的附加信息擴(kuò)展存儲(chǔ)部分的位置信息和長(zhǎng)度信息來(lái) 讀取所有的附加信息;
K05,、根據(jù)附加信息進(jìn)行文件操作權(quán)限鑒權(quán),鑒權(quán)通過(guò)后讀取文件內(nèi)容部分,并對(duì)讀取 的內(nèi)容進(jìn)行解密,將解密后的文件內(nèi)容返回。將透明加密文件中存儲(chǔ)附加信息的部分分為固定部分和擴(kuò)展部分,解決了現(xiàn)有技 術(shù)中附加信息固定,導(dǎo)致附加信息中不能存放比較多的內(nèi)容,從而限制了透明加解密功能 的問(wèn)題,增加了透明加密技術(shù)的靈活性。
圖1為現(xiàn)有技術(shù)中透明加密文件的結(jié)構(gòu)示意圖; 圖2為現(xiàn)有技術(shù)中透明加密文件的生成流程圖3為現(xiàn)有技術(shù)中透明加密文件的附加信息修改操作的流程圖; 圖4為現(xiàn)有技術(shù)中透明加密文件寫入操作的流程圖; 圖5為現(xiàn)有技術(shù)中透明加密文件讀取操作的流程圖 圖6為本發(fā)明實(shí)施例中的透明加密文件的結(jié)構(gòu)示意圖; 圖7為本發(fā)明實(shí)施例中透明加密文件操作的分層模型的示意圖;圖8為本發(fā)明實(shí)施例中透明加密文件的生成流程圖; 圖9為本發(fā)明實(shí)施例中透明加密文件的附加信息修改操作的流程圖; 圖10為本發(fā)明實(shí)施例中透明加密文件讀取操作的流程圖; 圖11為本發(fā)明實(shí)施例中透明加密文件寫入操作的流程圖。
具體實(shí)施例方式以下結(jié)合附圖詳細(xì)說(shuō)明本發(fā)明的具體實(shí)施方式
。本發(fā)明實(shí)施例對(duì)加密文檔文件結(jié)構(gòu)的改進(jìn)如圖6所示,該實(shí)施例將透明加密文件 中存儲(chǔ)附加信息的部分分為固定部分和擴(kuò)展部分,其中,固定部分的長(zhǎng)度和結(jié)構(gòu)都是固定 的,在此固定部分中存放至少一個(gè)擴(kuò)展部分的位置和長(zhǎng)度。擴(kuò)展部分可以有多個(gè),可以位于 不同的位置,例如,在圖2中,該透明加密文檔就具有兩個(gè)擴(kuò)展部分,一個(gè)緊跟在固定部分 的后面,一個(gè)位于文件的末尾。并且擴(kuò)展部分可以動(dòng)態(tài)增加、刪除,如果附加信息存儲(chǔ)空間 不夠了,就增加新的擴(kuò)展部分,如果附加信息有冗余,可以將多余的擴(kuò)展部分刪除。固定部分中存儲(chǔ)擴(kuò)展部分信息可以采用兩種方式一種是采用鏈表方式,在固定 部分中存放有下一個(gè)擴(kuò)展部分的位置和大小,而指向的下一個(gè)擴(kuò)展部分中有存儲(chǔ)有再下一 個(gè)擴(kuò)展部分的位置和大小,這種方式可以增加任意數(shù)量的擴(kuò)展部分;另一種方式是在固定 部分存放有所有擴(kuò)展部分的位置和大小,這種方式限定了擴(kuò)展部分的數(shù)量,優(yōu)點(diǎn)是操作相 對(duì)簡(jiǎn)單一些。附加信息的固定部分和擴(kuò)展部分在整個(gè)文件中的位置在本發(fā)明中沒(méi)有限制,具體 實(shí)現(xiàn)時(shí)候可以放在文件的頭部、尾部或頭部、尾部各放一部分。本發(fā)明中對(duì)透明加密文件的操作是按照分層模型進(jìn)行的,如附圖7所示。文件操 作被分為應(yīng)用程序?qū)?、操作系統(tǒng)文件API層、加解密驅(qū)動(dòng)層、底層文件驅(qū)動(dòng)層,還設(shè)置有與 加解密驅(qū)動(dòng)層通信的加解密策略控制模塊。每一層看到和操作的文件內(nèi)容是不同的。底層 文件驅(qū)動(dòng)層操作的是物理的文件(把文件中的附加信息和文件真正內(nèi)容看作一個(gè)整體);加 解密驅(qū)動(dòng)層負(fù)責(zé)接收上層的文件操作請(qǐng)求,然后調(diào)用底層文件驅(qū)動(dòng)對(duì)文件進(jìn)行加密寫入或 解密讀出操作,對(duì)文件內(nèi)容操作之前加解密驅(qū)動(dòng)會(huì)首先調(diào)用底層驅(qū)動(dòng)獲取文件附加信息, 進(jìn)行一些判斷和操作(例如判斷是否文檔已加密、判斷文件操作權(quán)限、如果附加信息不存在 就創(chuàng)建并寫入附加信息等等),加解密驅(qū)動(dòng);操作系統(tǒng)文件API層負(fù)責(zé)接收應(yīng)用層的文件操 作,并調(diào)用下層驅(qū)動(dòng)層進(jìn)行文件的操作;應(yīng)用程序?qū)邮蔷唧w的應(yīng)用程序,例如Office程序, 應(yīng)用程序?qū)ξ募牟僮魇峭ㄟ^(guò)調(diào)用操作系統(tǒng)API來(lái)進(jìn)行的。加解密策略控制模塊是用于和 加解密驅(qū)動(dòng)通信,通知加解密驅(qū)動(dòng)修改文檔的加解密策略的(加解密策略的修改最終就是 修改加密文檔的附加信息)。文件結(jié)構(gòu)的不同導(dǎo)致加密文件的創(chuàng)建流程相應(yīng)改變,本發(fā)明的透明加密文件的創(chuàng) 建流程如圖8所示
1)文件API要求加密解密驅(qū)動(dòng)生成的透明加密文檔;
2)加解密驅(qū)動(dòng)首先計(jì)算文件附加信息的長(zhǎng)度,一般創(chuàng)建加密文檔時(shí)候根據(jù)默認(rèn)的加解 密策略就可以計(jì)算得到附加信息的長(zhǎng)度;
3)加解密驅(qū)動(dòng)調(diào)用底層文件驅(qū)動(dòng)向附加信息的固定部分寫入附加信息,如果固定部分長(zhǎng)度已經(jīng)夠用,就不需要擴(kuò)展部分;如果固定部分的長(zhǎng)度不夠用則在寫入時(shí)在附加信息固 定部分中寫入附加信息擴(kuò)展部分在文件中的位置和擴(kuò)展部分長(zhǎng)度;
4)按照擴(kuò)展部分在文件中的位置和分配的長(zhǎng)度向附加信息的各擴(kuò)展部分寫入的附加 信息,直到所有附加信息寫入;
5)加解密驅(qū)動(dòng)對(duì)文檔內(nèi)容進(jìn)行加密;
6)加解密驅(qū)動(dòng)調(diào)用底層文件驅(qū)動(dòng)將加密的文件內(nèi)容寫入文件的內(nèi)容部分。相應(yīng)地,本發(fā)明對(duì)加密文件的附加信息修改流程也進(jìn)行了改進(jìn),如圖9所示
1)加解密策略控制模塊調(diào)用加解密驅(qū)動(dòng)要求修改附加信息;
2)加解密驅(qū)動(dòng)計(jì)算修改后的附加信息長(zhǎng)度;
3)加解密驅(qū)動(dòng)調(diào)用底層驅(qū)動(dòng)向附加信息的固定部分寫入修改后的附加信息,如果固定 部分長(zhǎng)度已經(jīng)夠用,就不需要擴(kuò)展部分;如果固定部分的長(zhǎng)度不夠用則寫入時(shí)在附加信息 固定部分寫入附加信息擴(kuò)展部分在文件中的位置和分配的長(zhǎng)度;
3)按照擴(kuò)展部分在文件中的位置和分配的長(zhǎng)度向附加信息的各擴(kuò)展部分寫入所有的 修改后附加信息,直到所有附加信息寫入;
4)因?yàn)樾薷暮蟮母郊有畔⒌拈L(zhǎng)度可能發(fā)生了變化,導(dǎo)致真正文件內(nèi)容部分的位置也會(huì) 相應(yīng)的發(fā)生變化,因此需要調(diào)整加密文件內(nèi)容部分的位置。在修改附加信息時(shí),還可以根據(jù)修改后的附加信息的長(zhǎng)度判斷是否需要增加新的 存儲(chǔ)附加信息的擴(kuò)展部分,如果不需要,直接向原有的固定部分和擴(kuò)展部分中寫入修改后 的附加信息,如果需要,則根據(jù)附加信息長(zhǎng)度分配至少一個(gè)新的附加信息擴(kuò)展存儲(chǔ)部分,向 附加信息固定存儲(chǔ)部分寫入新的附加信息擴(kuò)展存儲(chǔ)部分在文件中的位置信息以及其長(zhǎng)度 信息,之后再向所有的固定部分和擴(kuò)展部分中寫入修改后的附加信息。為了實(shí)現(xiàn)透明加密的目的,透明加密技術(shù)還必須在程序讀寫文件時(shí)改變程序的讀 寫方式。使密文在讀入內(nèi)存時(shí)程序能夠識(shí)別,而在保存時(shí)又要將明文轉(zhuǎn)換成密文。與對(duì)透明 加密文檔文件附加信息存儲(chǔ)結(jié)構(gòu)的改進(jìn)對(duì)應(yīng),本實(shí)施還改進(jìn)了對(duì)于加密文件內(nèi)容的讀取、 寫入方法,按照?qǐng)D6所示改進(jìn)的加密文件結(jié)構(gòu),透明加密文件讀取和寫入流程分別如圖4、5 所示。圖10具體說(shuō)明對(duì)于加密文件的文件讀取流程
1)文件API讀取文件附加信息的固定部分,判斷是否為加密文檔;
2)如果不是加密文檔,則加解密驅(qū)動(dòng)直接讀取文件內(nèi)容返回給上層調(diào)用者,結(jié)束讀取 流程;
3)如果是加密文檔,則加解密驅(qū)動(dòng)根據(jù)附加信息固定部分中記錄的附加信息擴(kuò)展部分 信息來(lái)讀取附加信息的擴(kuò)展部分;
4)加解密驅(qū)動(dòng)讀取文件的真正內(nèi)容;
5)讀取固定部分和擴(kuò)展部分的所有附加信息后,根據(jù)附加信息進(jìn)行相應(yīng)的文件操作權(quán) 限鑒權(quán);
6 )鑒權(quán)通過(guò)后,加解密驅(qū)動(dòng)對(duì)讀取的文件真正內(nèi)容進(jìn)行解密,并返回給上層調(diào)用者。圖11具體說(shuō)明對(duì)于加密文件的文件寫入流程為
1)首先加解密驅(qū)動(dòng)讀取文件附加信息的固定部分,判斷是否為加密文檔
2)如果不是加密文檔,則加解密驅(qū)動(dòng)直接寫入文件真正內(nèi)容,并返回寫入是否成功
83)如果是加密文檔,則加解密驅(qū)動(dòng)根據(jù)附加信息固定部分中記錄的附加信息擴(kuò)展部分 信息來(lái)讀取附加信息的擴(kuò)展部分;
4)加解密驅(qū)動(dòng)根據(jù)附加信息進(jìn)行相應(yīng)文件操作權(quán)限鑒權(quán);
5)鑒權(quán)通過(guò)后,加解密驅(qū)動(dòng)對(duì)文件的真正內(nèi)容進(jìn)行加密;
6)加解密驅(qū)動(dòng)通過(guò)底層文件驅(qū)動(dòng)寫入加密后的文件,并返回寫入是否成功。本發(fā)明的方法可以在透明加密文檔的文件附加信息中擴(kuò)展存放更多信息,解決了 現(xiàn)有技術(shù)中附加信息固定,導(dǎo)致附加信息中不能存放比較多的內(nèi)容,從而限制了透明加解 密功能的問(wèn)題,增加了透明加密技術(shù)的靈活性。以上所述僅為本發(fā)明的較佳實(shí)施例,并不用于限制本發(fā)明,凡在本發(fā)明精神和原 則之內(nèi)所做的任何修改、等同替換和改進(jìn)等,均包含于本發(fā)明的保護(hù)范圍之內(nèi)。
9
權(quán)利要求
1.一種動(dòng)態(tài)擴(kuò)展透明加密文件附加信息的方法,所述透明加密文件包括用于存儲(chǔ)附加 信息的長(zhǎng)度固定的附加信息固定存儲(chǔ)部分和用于存儲(chǔ)文件本身內(nèi)容的文件內(nèi)容部分,其特 征在于包括A、在創(chuàng)建透明加密文件時(shí),根據(jù)加密策略計(jì)算文件所需要的附加信息的長(zhǎng)度;B、根據(jù)附加信息的長(zhǎng)度以及附加信息固定存儲(chǔ)部分的長(zhǎng)度判斷是否需要擴(kuò)展附加信 息的存儲(chǔ)部分,如果是,執(zhí)行步驟C,如果否,執(zhí)行步驟E ;C、根據(jù)附加信息長(zhǎng)度分配至少一個(gè)附加信息擴(kuò)展存儲(chǔ)部分,向附加信息固定存儲(chǔ)部分 寫入附加信息擴(kuò)展存儲(chǔ)部分在文件中的位置信息以及附加信息擴(kuò)展存儲(chǔ)部分的長(zhǎng)度信息; 向附加信息固定存儲(chǔ)部分寫入附加信息;D、按照附加信息擴(kuò)展存儲(chǔ)部分在文件中的位置和分配的長(zhǎng)度向該至少一個(gè)附加信息 擴(kuò)展存儲(chǔ)部分寫入的附加信息,直到所有附加信息寫入,執(zhí)行步驟F ;E、直接向附加信息固定存儲(chǔ)部分寫入所有附加信息;F、對(duì)文件內(nèi)容進(jìn)行加密,并將加密后的內(nèi)容寫入所述透明加密文件的文件內(nèi)容部分。
2.如權(quán)利要求1所述的方法,其特征在于步驟C中向附加信息固定存儲(chǔ)部分寫入該 附加信息擴(kuò)展存儲(chǔ)部分在文件中的位置信息以及該附加信息擴(kuò)展存儲(chǔ)部分的長(zhǎng)度信息包 括將所有附加信息擴(kuò)展存儲(chǔ)部分的位置信息和長(zhǎng)度信息都寫入所述附加信息固定存儲(chǔ) 部分。
3.如權(quán)利要求1所述的方法,其特征在于步驟C中向附加信息固定存儲(chǔ)部分寫入該 附加信息擴(kuò)展存儲(chǔ)部分在文件中的位置信息以及該附加信息擴(kuò)展存儲(chǔ)部分的長(zhǎng)度信息包 括向所述附加信息固定存儲(chǔ)部分寫入下一個(gè)附加信息擴(kuò)展存儲(chǔ)部分的位置信息和長(zhǎng)度 信息,在向每一個(gè)附加信息擴(kuò)展存儲(chǔ)部分寫入附加信息時(shí)還寫入位于其后的下一附加信息 擴(kuò)展存儲(chǔ)部分的位置信息和長(zhǎng)度信息,只到最后一個(gè)附加信息擴(kuò)展存儲(chǔ)部分。
4.如權(quán)利要求1所述的方法,其特征在于在所述步驟F后還包括H01、要求修改附加信息;H02、計(jì)算修改后的附加信息的長(zhǎng)度;H03、根據(jù)修改后的附加信息的長(zhǎng)度以及附加信息固定存儲(chǔ)部分的長(zhǎng)度判斷是否需要 擴(kuò)展附加信息的存儲(chǔ)部分;如果是,執(zhí)行步驟H04 ;如果否,直接向附加信息固定存儲(chǔ)部分 寫入修改后的附加信息,執(zhí)行步驟H06 ;H04、判斷是否需要增加新的附加信息擴(kuò)展存儲(chǔ)部分,如果是,執(zhí)行步驟H05;如果否, 執(zhí)行步驟H06 ;H05、根據(jù)附加信息長(zhǎng)度分配至少一個(gè)新的附加信息擴(kuò)展存儲(chǔ)部分,向附加信息固定存 儲(chǔ)部分寫入新的附加信息擴(kuò)展存儲(chǔ)部分在文件中的位置信息以及其長(zhǎng)度信息;H06、依次向附加信息固定存儲(chǔ)部分以及附加信息擴(kuò)展存儲(chǔ)部分寫入修改后的附加信息;H07、調(diào)整透明加密文件的文件內(nèi)容部分的位置。
5.如權(quán)利要求1所述的方法,其特征在于在所述步驟F后還包括J01、要求進(jìn)行文件寫入;J02、讀取文件的附加信息固定存儲(chǔ)部分,判斷是否為加密文檔;如果不是加密文檔,執(zhí) 行步驟J03,如果是加密文檔,執(zhí)行步驟J04 ;J03、直接將要寫入的文件內(nèi)容寫入文件內(nèi)容部分,并返回寫入是否成功,結(jié)束流程; J04、根據(jù)附加信息固定存儲(chǔ)部分的附加信息擴(kuò)展存儲(chǔ)部分的位置信息和長(zhǎng)度信息來(lái) 讀取所有的附加信息;J05、根據(jù)附加信息進(jìn)行文件操作權(quán)限鑒權(quán),鑒權(quán)通過(guò)后對(duì)要寫入的文件內(nèi)容對(duì)進(jìn)行加 密,向文件內(nèi)容部分寫入加密后的文件內(nèi)容,并返回寫入是否成功。
6.如權(quán)利要求1所述的方法,其特征在于在所述步驟F后還包括 KO1、要求讀取加密文件;K02、讀取文件的附加信息固定存儲(chǔ)部分,判斷是否為加密文檔;如果不是加密文檔,執(zhí) 行步驟K03,如果是加密文檔,執(zhí)行步驟K04 ;K03、直接讀取文件內(nèi)容部分,并返回讀取是否成功,結(jié)束流程; K04、根據(jù)附加信息固定存儲(chǔ)部分的附加信息擴(kuò)展存儲(chǔ)部分的位置信息和長(zhǎng)度信息來(lái) 讀取所有的附加信息;K05,、根據(jù)附加信息進(jìn)行文件操作權(quán)限鑒權(quán),鑒權(quán)通過(guò)后讀取文件內(nèi)容部分,并對(duì)讀取 的內(nèi)容進(jìn)行解密,將解密后的文件內(nèi)容返回。
全文摘要
本發(fā)明公開一種動(dòng)態(tài)擴(kuò)展透明加密文件附加信息的方法,所述透明加密文件包括用于存儲(chǔ)附加信息的長(zhǎng)度固定的附加信息固定存儲(chǔ)部分和用于存儲(chǔ)文件本身內(nèi)容的文件內(nèi)容部分,通過(guò)在創(chuàng)建透明加密文件時(shí)計(jì)算附加信息長(zhǎng)度,在附加信息長(zhǎng)度超出附加信息固定存儲(chǔ)部分時(shí)分配附加信息擴(kuò)展存儲(chǔ)部分,在固定存儲(chǔ)部分中存儲(chǔ)擴(kuò)展存儲(chǔ)部分的相關(guān)位置信息和長(zhǎng)度信息,使得透明加密文件附加信息的存儲(chǔ)能夠進(jìn)行動(dòng)態(tài)擴(kuò)展,提高了透明加密技術(shù)的靈活性。
文檔編號(hào)G06F21/24GK102073830SQ20111000575
公開日2011年5月25日 申請(qǐng)日期2011年1月12日 優(yōu)先權(quán)日2011年1月12日
發(fā)明者劉永波 申請(qǐng)人:深圳昂楷科技有限公司