abstract public ProgrammingChunk processChunk(boolean encrypt, ProgrammingChunk chunk, byte []key);
private void dataScrambling(boolean encrypt, List<ProgrammingChunk> image, List<MemRange> dataKeysMap){
for(int i=0;i<image.size();i++){
ProgrammingChunk chunk=image.get(i);
MemRange range=MemRange.address2MemRange(dataKeysMap,chunk.getAddress());
if(null!=range){
byte []key=range.key;
image.remove(i);
image.add(i,processChunk(encrypt, chunk, key));
}