求关键字搜索算法(在一个超长字节数组中找另一字节数组)解决思路

求关键字搜索算法(在一个超长字节数组中找另一字节数组)
如题。
现有一个大文件,每次我读大约100M到缓存,即
BYTE pBuf[100000000];
ULONGLONG nByteRead = fs.Read(pBuf,sizeof(pBuf));
现在我要在缓存中查询一个关键字数组,如:BYTE pKey[5] = {0xF1,0xF2,0x2E,0x3C,0x40}。
也就是说在pBuf[100000000]中查询pKey[5],请各位仁兄不吝赐教,有无高效算法指点一二,不胜感激!


------解决方案--------------------
BYTE *pFound = NULL;
for (int i = 0; i < 100000000; i++)
{
    if (pKey[0] == pBuf[i] && pKey[1] == pBuf[i+1] && pKey[2] == pBuf[i+2] && pKey[3] == pBuf[i+3] && pKey[4] == pBuf[i+4])
    {
        MessageBox(NULL, _T("Found it."), NULL, MB_ICONINFORMATION);
        pFound = &pBuf[i];
        break;
    }
}