まず初めに『~しているかもしれない』という表現から確認してみましょう。
『~しているかもしれない』のように現在の可能性について表現するときは、may もしくは might を使います。may と might はいわゆる助動詞の仲間です。
may と might の意味はほぼ同じと考えて問題ありません。
厳密に言うと、might の方が可能性の確度が若干下がるニュアンスを含むようですが、あまり気にするようなところではないでしょう。
may と might は助動詞ですから、直後に置かれる動詞は原形となっている必要があります。
<例文1>
She may be having dinner now.
彼女は今頃夕食の最中かもしれない。
<例文2>
They might know where it is.
彼らはどこにそれがあるか知っているかもしれない。
might は文法的には may の過去形に相当します。
may が『~しているかもしれない』というように現在の可能性を表し、一方、might が『~したかもしれない』のように過去の可能性を意味するのであれば、話はシンプルだったのですが、なぜか might は may と同じ意味を持っています。
では、過去の可能性『~したかもしれない』は、どう表現されるかと言うと、以下のようになります。
may/might + have + 過去分詞: ~したかもしれない
<例文3>
I might have lost the receipt for gas.
私はそのガソリンの領収書を紛失したかもしれない。
<例文4>
He may not have been performing his best.
彼は本調子じゃなかったのかもしれない。
このように「may/might + have + 過去分詞」の形から、現在完了形のような雰囲気が感じ取れそうですが、これは完了形とは無関係です。単純に過去形になっているのだなと理解して問題ないです。