title: CRC16 collision (2 CRC values of blocks of different size)
body: <p><strong>The Problem</strong></p>
  
  <p>I have a textfile which contains one string per line (linebreak \r\n). This file is secured using CRC16 in two different ways.</p>
  
  <ol>
  <li>CRC16 of blocks of 4096 bytes</li>
  <li>CRC16 of blocks of 32768 bytes</li>
  </ol>
  
  <p>Now I have to modify any of these 4096 byte blocks, so it (the block)</p>
  
  <ul>
  <li>contains a specific string</li>
  <li>does not change the size of the textfile</li>
  <li>has the same CRC value as the original block (same for the 32k block, that contains this 4k block)</li>
  </ul>
  
  <p>Depart of that limitations I may do any modifications to the block that are required to fullfill it as long as the file itself does not break its format. I think it is the best to use any of the completly filled 4k blocks, not the last block, that could be really short.</p>
  
  <p><strong>The Question</strong></p>
  
  <p>How should I start to solve that problem? The first thing I would come up is some kind of bruteforce but wouldn't it take extremly long to find the changes that will result in both CRC values stay the same? Is there probably a mathematical way to solve that?</p>
  
  <p>It should be done in seconds or max. few minutes.</p>