조동사(Modal verb) + have + pp

조동사의 과거형은 시제상으로 과거를 의미하지 않습니다.

조동사 can의 과거형인 could는 형식적으로 can의 과거형이긴 하지만 시제상으로는 과거의 의미를 가지기 보다는 can 보다 좀더 "공손한, 신중한" 의미를 가집니다.

would, might 역시 마찬가지입니다.

조동사를 이용해서 시제상으로 과거를 표현하고자 할 때는 조동사 + have + pp 형태로 사용합니다.
과거의 추측 

may(might) have pp : ~였을지도 모른다.

He may have got lost.

그는 길을 잃었을지도 모른다.

must have pp : ~였음에 틀림없다.

It must have rained during the night.

cannot have pp : ~였을리 없다.

You can't have done it properly.

넌 그걸 제대로 했을리가 없어.

과거의 유감

과거의 유감은 과거에 일을 아쉬워 하는 표현으로 가정법(과거완료) 표현이기도 합니다.

should(ought to) have pp : ~했어야 했다

You should have come a little earlier.

네가 좀 더 일찍 왔어야 했다.

I ought to have drawn you a map.

너에게 약도를 그려 줬어야 했다.

would(could/might) have pp : : ~했을 텐데

He could have helped her.

그는 그녀를 도울 수 있었을 텐데.