Algorithm: = Modify_or_Insert_Block (, ). |
Input: the appointed block location , and the new block . |
Output: the new of the updated MHT. |
User: compute ; ; |
transmit to CSP; |
CSP: compute |
if then |
if mark = modify then |
; |
else |
; |
end if |
compute ; |
send to user; |
end if |
User: compute ; |
if then |
compute ; |
if then |
authorize CSP to execute update operation; |
end if |
end if |
CSP:  if mark = modify then |
, , are replaced by , , in the outsourced file ; |
update the MHT stored in cloud by recalculating all the nodes on the path from |
the th leaf node to the ; |
else |
insert , into after , , respectively; |
update the MHT by replacing with the th primordial leaf node that is transformed into |
a parent node having the left-child leaf and the right-child leaf , and then recalculating all the |
nodes on the path from to the ; |
end if |
User: transmit () to TPA; |
TPA: according to the mark, update the MHT stored at TPA side by the same way as CSP; |
send to user the root of the updated MHT , denoted by ; |
User: if then |
update the , stored in her local, with ; |
end if |
return ; |